]>
Commit | Line | Data |
---|---|---|
6e16e926 | 1 | <picture> |
a3ca1960 | 2 | <source media="(prefers-color-scheme: dark)" srcset="dark_logo.png"> |
3 | <source media="(prefers-color-scheme: light)" srcset="light_logo.png"> | |
4fad3266 | 4 | <img src="dark_logo.png" alt="Mobius Logo"> |
6e16e926 | 5 | </picture> |
6 | ||
6988a057 JH |
7 | # Mobius |
8 | ||
2a46179f | 9 | Mobius is a cross-platform command line [Hotline](https://en.wikipedia.org/wiki/Hotline_Communications) client and server implemented in Golang. |
6988a057 | 10 | |
2a46179f | 11 | The goal of Mobius server is to make it simple to run a Hotline server on macOS, Linux, and Windows, with full compatibility for all popular Hotline clients. |
6988a057 | 12 | |
2a46179f | 13 | The goal of the Mobius client is to make it fun and easy to connect to multiple Hotline servers through a [cool retro terminal UI](https://github.com/jhalter/mobius/wiki/Mobius-Client-Screenshot-Gallery). |
6988a057 | 14 | |
2a46179f | 15 | ## Getting started |
69fceb2e | 16 | |
2a46179f JH |
17 | ### Docker |
18 | ||
d4207f0d JH |
19 | ### Docker |
20 | ||
21 | To quickly run a Hotline server with ports forwarded from the host OS to the container, run: | |
22 | ||
23 | docker run --rm -p 5500:5500 -p 5501:5501 ghcr.io/jhalter/mobius:latest | |
2a46179f | 24 | |
d4207f0d | 25 | You can now connect to localhost:5500 with your favorite Hotline client and play around, but all changes will be lost on container restart. |
2a46179f | 26 | |
d4207f0d | 27 | To serve files from the host OS and persist configuration changes, you'll want to set up a [bind mount](https://docs.docker.com/storage/bind-mounts/) that maps a directory from the host into the container. |
2a46179f | 28 | |
d4207f0d | 29 | To do this, create a directory in a location of your choice on the host OS. For clarity, we'll assign the path to the `HLFILES` environment variable and re-use it: |
69fceb2e | 30 | |
d4207f0d JH |
31 | ``` |
32 | export HLFILES=/home/myuser/hotline-files | |
33 | mdkir $HLFILES | |
34 | ||
35 | sudo docker run \ | |
36 | --pull=always \ | |
37 | --rm \ | |
38 | -p 5500:5500 \ | |
39 | -p 5501:5501 \ | |
40 | -v $HLFILES:/usr/local/var/mobius/config \ | |
41 | ghcr.io/jhalter/mobius:latest \ | |
42 | -init | |
43 | ``` | |
44 | ||
45 | It's a good security practice to run your server as a non-root user, which also happens to make editing the configuration files easier from the host OS. | |
46 | ||
47 | To do this, add the `--user` flag to the docker run arguments with a user ID and group ID of a user on the host OS. | |
48 | ||
49 | `--user 1001:1001` | |
69fceb2e | 50 | |
2a46179f JH |
51 | You'll now find a configuration directory on your host OS populated with a default configuration: |
52 | ||
53 | ``` | |
54 | ❯ ls -al $HLFILES | |
55 | total 32 | |
56 | drwxr-xr-x 8 jhalter staff 256 Jun 12 17:11 . | |
57 | drwxr-x---+ 49 jhalter staff 1568 Jun 12 17:11 .. | |
58 | -rw-r--r-- 1 jhalter staff 38 Jun 12 17:11 Agreement.txt | |
59 | drwxr-xr-x 3 jhalter staff 96 Jun 12 17:11 Files | |
60 | -rw-r--r-- 1 jhalter staff 19 Jun 12 17:11 MessageBoard.txt | |
61 | -rw-r--r-- 1 jhalter staff 15 Jun 12 17:11 ThreadedNews.yaml | |
62 | drwxr-xr-x 4 jhalter staff 128 Jun 12 17:11 Users | |
63 | -rw-r--r-- 1 jhalter staff 313 Jun 12 17:11 config.yaml | |
64 | ``` | |
65 | ||
66 | Edit `config.yaml` to get started personalizing your server. | |
69fceb2e | 67 | |
69fceb2e JH |
68 | ### Mac OS |
69 | ||
2a46179f | 70 | For Mac OS the easiest path to installation is through Homebrew. |
6988a057 JH |
71 | |
72 | #### Client | |
73 | ||
2a46179f | 74 | To install the client: |
69fceb2e | 75 | |
2a46179f | 76 | brew install jhalter/mobius-hotline-client/mobius-hotline-client |
69fceb2e | 77 | |
2a46179f | 78 | Then run `mobius-hotline-client` to get started. |
69fceb2e | 79 | |
6988a057 JH |
80 | #### Server |
81 | ||
2a46179f JH |
82 | To install the server: |
83 | ||
bbecef95 | 84 | brew install jhalter/mobius-hotline-server/mobius-hotline-server |
6988a057 | 85 | |
2a46179f | 86 | After installation `mobius-hotline-server` will be installed at `$HOMEBREW_PREFIX/bin/mobius-hotline-server` and should be in your $PATH. |
69fceb2e | 87 | |
2a46179f | 88 | The server config file directory is under `$HOMEBREW_PREFIX/var/mobius` which by default contains: |
69fceb2e | 89 | |
2a46179f JH |
90 | /opt/homebrew/mobius/config/MessageBoard.txt |
91 | /opt/homebrew/var/mobius/config/config.yaml | |
92 | /opt/homebrew/var/mobius/config/ThreadedNews.yaml | |
93 | /opt/homebrew/var/mobius/config/Agreement.txt | |
94 | /opt/homebrew/var/mobius/config/Users/guest.yaml | |
95 | /opt/homebrew/var/mobius/config/Users/admin.yaml | |
69fceb2e JH |
96 | |
97 | Edit `/usr/local/var/mobius/config/config.yaml` to change your server name and other settings. | |
98 | ||
99 | Edit `/usr/local/var/mobius/config/Agreement.txt` to set your server agreement. | |
100 | ||
101 | Run `mobius-hotline-server -help` for usage options. | |
102 | ||
6988a057 JH |
103 | ### Linux |
104 | ||
d8e28ebc | 105 | Download a compiled release for your architecture from the Releases page or follow build from source instructions |
6988a057 JH |
106 | |
107 | ### Windows | |
108 | ||
109 | TODO | |
110 | ||
69fceb2e | 111 | ### Build from source |
6988a057 | 112 | |
69fceb2e | 113 | To build from source, run: |
6988a057 | 114 | |
2a46179f JH |
115 | make all |
116 | ||
117 | Then grab your desired build from `dist` |