aboutsummaryrefslogtreecommitdiff
path: root/cmd
AgeCommit message (Collapse)Author
2026-03-14Refactor ban management behind BanMgr interfaceJeff Halter
Extract ban logic into a BanMgr interface with two implementations: - BanFile: file-based YAML storage with support for IP, username, and nickname bans (backwards-compatible with legacy format) - RedisBanMgr: Redis-backed implementation with permanent and temporary ban support, using fail-safe deny-on-error behavior This replaces scattered Redis calls in API handlers, transaction handlers, and server connection logic with unified interface calls, removing the Redis dependency from the API server constructor and enabling ban functionality for both file-only and Redis deployments.
2025-11-29Ran goimports -w . to tidy upJeff Halter
2025-11-22Add optional TLS support for encrypted client connectionsJeff Halter
- Add TLSConfig and TLSPort fields to Server struct - Add WithTLS option function for configuration - Add ServeWithTLS and ServeFileTransfersWithTLS methods - Update ListenAndServe to start TLS listeners when configured - Add -tls-cert, -tls-key, -tls-port command-line flags - Fix data race in rateLimiters map access with mutex - Add TLS documentation with certificate generation instructions
2025-11-18Update BannerFile doc comment in default config.yamlJeff Halter
2025-07-04Fix file handle close warnings by ignoring return valuesJeff Halter
Updated all file close operations to use anonymous functions that ignore return values to satisfy golangci-lint errcheck warnings.
2025-06-30Improve error handling consistency in main.goJeff Halter
- Fix incorrect error message for banner loading - Convert all error logging to structured format - Remove server shutdown during config reload failures
2025-06-26Replace filepath.Join with path.Join for Windows compatibilityJeff Halter
Replace all instances of filepath.Join with path.Join across the codebase to improve Windows compatibility following the guidance from https://github.com/golang/go/issues/44305. Key changes: - Replaced filepath.Join with path.Join in 14 files - Updated import statements appropriately - Resolved variable shadowing issues where function parameters named 'path' were conflicting with the path package - Maintained filepath imports where needed for OS-specific functions like filepath.Walk, filepath.IsAbs, filepath.Dir, and filepath.Base All tests pass, confirming the changes maintain functionality while improving cross-platform compatibility.
2025-06-25Refactor copyDir and findConfigPath functions in main.goJeff Halter
- Refactor copyDir: Add proper error handling, resource cleanup with defer, true recursion, better permissions (0755), and separation of concerns - Refactor configSearchPaths -> findConfigPath: Add directory validation, better naming, and clearer documentation - Add comprehensive test suite for all functions with 100% test coverage - Remove panic in copyDir, replace with proper error propagation - Fix resource leaks by using defer for file cleanup
2025-05-22Update main.goTheo Knez
2024-08-04Delete cmd/mobius-hotline-server/mobius/config/Files/hello.txtJeff Halter
2024-08-04Create About This Area.txtJeff Halter
2024-07-28Improve human readability of account config filesJeff Halter
2024-07-27Fix missing version in Docker and Makefile buildJeff Halter
2024-07-26Make Bonjour optional and disabled by defaultJeff Halter
Bonjour doesn't seem happy inside Docker, so I'm making it optional and off by default.
2024-07-26Limit guest permissionsJeff Halter
Limit default guest permissions to: File System Maintenance * Can Download files * Can Download folders * Can Upload Files * Can Upload Folders Messaging * Can Send Messages News * Can Read Articles * Can Post Articles Chat * Can Initiate Private Chat * Can Read Chat * Can Send Chat Misc * Can Use Any Name
2024-07-26Register server address on local network with BonjourJeff Halter
2024-07-21Clean up loggingJeff Halter
2024-07-18Add support for trackers that require a passwordJeff Halter
2024-07-18Add initial HTTP API endpointsJeff Halter
2024-07-17Extensive refactor, quality of life enhancementsJeff Halter
* Added ability to reload config, agreement, news, and user accounts without restarting the server by sending SIGHUP to the running process * Added ability to use modern unix or windows line breaks in Agreement.txt and MessageBoard.txt instead of classic MacOS `\r` breaks. * Extensive refactor towards swappable backends for the active server state * Extensive refactored towards making the hotline package generic and re-usable for alternate server implemenations * Fix bug where users whose accounts have been deleted would not be disconnected
2024-07-09Extensive refactor and clean upJeff Halter
2024-06-26Fix Windows compatibility for -init flagJeff Halter
2024-06-24Refactoring, cleanup, test backfillingJeff Halter
2024-06-17Clean up various linter warningsJeff Halter
2024-06-15Replace hardcoded version with ldflag usageJeff Halter
2024-06-15Refactoring and cleanupJeff Halter
* Split CLI client into separate project * Convert more functions to follow common Golang idioms e.g io.Reader, io.Writer * Use ldflags for versioning * Misc cleanup and simplification
2024-06-10Replace zap logger with slogJeff Halter
2024-06-01If no predefined default path for server config, look in the current dirCharlotte Koch
2024-03-28Add cmdline flag to specify network interfaceJeff Halter
2023-11-20Refactor client to use slog and pass context (#107)Jeff Halter
* Refactor client to use slog and pass context * Bump CI golang version
2023-04-19Ran 'golangci-lint run -E gocritic,whitespace --fix' 🤞Jeff Halter
2023-04-19Replace deprecated rand.Seed usageJeff Halter
2023-03-26Initial refactor to split client from protocol packageJeff Halter
2022-11-05Register with Gloarbline 1.9.7 client default trackersJeff Halter
2022-11-03Add comment clarifying usage of NewsDateFormat config optionJeff Halter
2022-11-03Add optional logging to fileJeff Halter
2022-07-04Add basic stat countersJeff Halter
2022-06-29Replacement banner imageAde Thompson
New banner image for default hotline server installs incorporating Mobius branding.
2022-06-26Fix example IgnoreFiles filterJeff Halter
'^\.*' works on macOS but is ignoring all files on Linux.
2022-06-25Add config option to specify ignored filename patternsJeff Halter
2022-06-21Add example banner.jpgJeff Halter
2022-06-21Add support for server bannerJeff Halter
2022-06-21Improve user-friendliness of default configJeff Halter
2022-06-20Convert hardcoded path separators to filepath.JoinJeff Halter
2022-06-20Add initial support for resource and info forksJeff Halter
2022-06-19Mobius 38 - improve config dir flag.Ben Abernathy
2022-06-12Add default client bookmark to Mobius serverJeff Halter
2022-06-12Simplify the behavior of init with an existing configJeff Halter
Old behavior: if config dir found, exit with message New behavior: if config dir found, log a message and continue This simplifies the process for new users.
2022-06-10Add cmdline arg to initialize a default configJeff Halter
2022-06-09Remove accidental commitJeff Halter