# Mobius
-Cross-platform command line [Hotline](https://en.wikipedia.org/wiki/Hotline_Communications) server and client
+Mobius is a cross-platform command line [Hotline](https://en.wikipedia.org/wiki/Hotline_Communications) server, client, and library developed in Golang.
-[](https://circleci.com/gh/jhalter/mobius/tree/master)
+The project aims to support Hotline functionality from versions v1.2.3 and >v1.5 (e.g. threaded news and folder transfers).
-# Installation
+## Project status
-### Mac OS X
+### Server
-#### Client
+* Near feature complete
- brew install jhalter/mobius-hotline-client/mobius-hotline-client
+### Client
-#### Server
+* Early stage with functionality for chat and news posting only
+
+# Getting started
+
+### Mac OS
+
+For Mac OS the easiest path to installation is to install through Homebrew.
+
+#### Client
brew install jhalter/mobius-hotline-client/mobius-hotline-client
-### Linux
+After installation `mobius-hotline-client` installed to `/usr/local/bin/mobius-hotline-client` and should be in your $PATH.
-Download a compiled release for your architecture from the Releases page
+The client config file is in `/usr/local/etc/mobius-client-config.yaml`
-### Windows
+Run `mobius-hotline-client -help` for usage options.
- TODO
+#### Server
-# Build
+ brew install jhalter/mobius-hotline-server/mobius-hotline-server
-To build from source, run
-`make build`
+After installation `mobius-hotline-server` installed to `/usr/local/bin/mobius-hotline-server` and should be in your $PATH.
-# Features
+The server config file directory is under `/usr/local/var/mobius` which by default contains:
-* Hotline 1.2.3
+ /usr/local/var/mobius/config/MessageBoard.txt
+ /usr/local/var/mobius/config/config.yaml
+ /usr/local/var/mobius/config/ThreadedNews.yaml
+ /usr/local/var/mobius/config/Agreement.txt
+ /usr/local/var/mobius/config/Users/guest.yaml
+ /usr/local/var/mobius/config/Users/admin.yaml
-## Usage
+Edit `/usr/local/var/mobius/config/config.yaml` to change your server name and other settings.
-### Precompiled binaries
-To get started quickly, download the precompiled binaries for your platform:
+Edit `/usr/local/var/mobius/config/Agreement.txt` to set your server agreement.
-* [Linux]()
-* [Mac OS X]()
+Run `mobius-hotline-server -help` for usage options.
+
+### Linux
-## Compatibility
+Download a compiled release for your architecture from the Releases page
-The server has been tested with:
- * Hotline Client version 1.2.3
- * Hotline Client version 1.8.2
- * Hotline Client version 1.9.2
- * Nostalgia
+### Windows
-### Build from source
+ TODO
- make build
+### Docker
+To run the Mobius server from Docker with a local directory mounted for config and files, follow these steps:
-# TODO
+1. Clone this repo: `git clone https://github.com/jhalter/mobius.git`
+2. Copy the config dir somewhere `cp -r cmd/mobius-hotline-server/mobius/config ~/mobius-config`
+3. Build the Docker image: `docker build . -t mobius-hotline-server:latest`
+4. Run the image:
+ `docker run --rm -p 5500:5500 -p 5501:5501 -v ~/mobius-config:/usr/local/var/mobius/config mobius-hotline-server:latest`
-* Implement 1.5+ protocol account editing
-* Implement folder transfer resume
-* Implement file transfer queuing
-* Map additional file extensions to file type and creator codes
-* Implement file comment read/write
-* Implement user banning
-* Implement Maximum Simultaneous Downloads
-* Maximum simultaneous downloads/client
-* Maximum simultaneous connections/IP
-* Implement server broadcast
-* Implement statistics:
- * Currently Connected
- * Downloads in progress
- * Uploads in progress
- * Waiting Downloads
- * Connection Peak
- * Connection Counter
- * Download Counter
- * Upload Counter
- * Since
+### Build from source
-# TODO - Someday Maybe
+To build from source, run:
-* Implement Pitbull protocol extensions
\ No newline at end of file
+ make build-client
+ make build-server