]> git.r.bdr.sh - rbdr/mobius/blob - README.md
Remove user from Dockerfile
[rbdr/mobius] / README.md
1 <picture>
2 <source media="(prefers-color-scheme: dark)" srcset="dark_logo.png">
3 <source media="(prefers-color-scheme: light)" srcset="light_logo.png">
4 <img src="dark_logo.png" alt="Mobius Logo">
5 </picture>
6
7 # Mobius
8
9 Mobius is a cross-platform command line [Hotline](https://en.wikipedia.org/wiki/Hotline_Communications) client and server implemented in Golang.
10
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.
12
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).
14
15 ## Getting started
16
17 ### Docker
18
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
24
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.
26
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.
28
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:
30
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`
50
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.
67
68 ### Mac OS
69
70 For Mac OS the easiest path to installation is through Homebrew.
71
72 #### Client
73
74 To install the client:
75
76 brew install jhalter/mobius-hotline-client/mobius-hotline-client
77
78 Then run `mobius-hotline-client` to get started.
79
80 #### Server
81
82 To install the server:
83
84 brew install jhalter/mobius-hotline-server/mobius-hotline-server
85
86 After installation `mobius-hotline-server` will be installed at `$HOMEBREW_PREFIX/bin/mobius-hotline-server` and should be in your $PATH.
87
88 The server config file directory is under `$HOMEBREW_PREFIX/var/mobius` which by default contains:
89
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
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
103 ### Linux
104
105 Download a compiled release for your architecture from the Releases page or follow build from source instructions
106
107 ### Windows
108
109 TODO
110
111 ### Build from source
112
113 To build from source, run:
114
115 make all
116
117 Then grab your desired build from `dist`