]> git.r.bdr.sh - rbdr/mobius/blame - README.md
Remove user from Dockerfile
[rbdr/mobius] / README.md
CommitLineData
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 9Mobius is a cross-platform command line [Hotline](https://en.wikipedia.org/wiki/Hotline_Communications) client and server implemented in Golang.
6988a057 10
2a46179f 11The 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 13The 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
21To 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 25You 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 27To 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 29To 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```
32export HLFILES=/home/myuser/hotline-files
33mdkir $HLFILES
34
35sudo 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
45It'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
47To 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
51You'll now find a configuration directory on your host OS populated with a default configuration:
52
53```
54❯ ls -al $HLFILES
55total 32
56drwxr-xr-x 8 jhalter staff 256 Jun 12 17:11 .
57drwxr-x---+ 49 jhalter staff 1568 Jun 12 17:11 ..
58-rw-r--r-- 1 jhalter staff 38 Jun 12 17:11 Agreement.txt
59drwxr-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
62drwxr-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
66Edit `config.yaml` to get started personalizing your server.
69fceb2e 67
69fceb2e
JH
68### Mac OS
69
2a46179f 70For Mac OS the easiest path to installation is through Homebrew.
6988a057
JH
71
72#### Client
73
2a46179f 74To install the client:
69fceb2e 75
2a46179f 76 brew install jhalter/mobius-hotline-client/mobius-hotline-client
69fceb2e 77
2a46179f 78Then run `mobius-hotline-client` to get started.
69fceb2e 79
6988a057
JH
80#### Server
81
2a46179f
JH
82To install the server:
83
bbecef95 84 brew install jhalter/mobius-hotline-server/mobius-hotline-server
6988a057 85
2a46179f 86After installation `mobius-hotline-server` will be installed at `$HOMEBREW_PREFIX/bin/mobius-hotline-server` and should be in your $PATH.
69fceb2e 87
2a46179f 88The 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
97Edit `/usr/local/var/mobius/config/config.yaml` to change your server name and other settings.
98
99Edit `/usr/local/var/mobius/config/Agreement.txt` to set your server agreement.
100
101Run `mobius-hotline-server -help` for usage options.
102
6988a057
JH
103### Linux
104
d8e28ebc 105Download 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 113To build from source, run:
6988a057 114
2a46179f
JH
115 make all
116
117Then grab your desired build from `dist`