Skip to content

Commit 20b7c22

Browse files
committed
docs(docker): simplify linux startup and default compose mode
1 parent 1da3ed1 commit 20b7c22

3 files changed

Lines changed: 60 additions & 5 deletions

File tree

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
SLIMEVR_VERSION=19.0.0-rc.1
22
WEBGUI_PORT=8080
3+
COMPOSE_FILE=docker-compose.linux.yml

README.md

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@
77

88
Run [SlimeVR Server](https://github.com/SlimeVR/SlimeVR-Server) and its Web GUI in Docker with a setup that works across Linux, macOS, and Windows, plus an optimized Linux hotplug mode for direct USB tracker usage.
99

10+
## Quick Start (Linux)
11+
12+
1. Install Docker + Compose (`docker compose version` should work).
13+
2. Run:
14+
15+
```bash
16+
docker compose up -d --build
17+
```
18+
19+
3. Open:
20+
21+
```text
22+
http://localhost:8080
23+
```
24+
25+
Stop:
26+
27+
```bash
28+
docker compose down
29+
```
30+
31+
This repo defaults to Linux USB hotplug mode, so no extra `-f ...` flags are needed.
32+
1033
## Features
1134

1235
- Auto-downloads `slimevr.jar` and `slimevr-gui-dist.tar.gz` from official releases
@@ -43,12 +66,24 @@ Edit `.env`:
4366
```env
4467
SLIMEVR_VERSION=19.0.0-rc.1
4568
WEBGUI_PORT=8080
69+
COMPOSE_FILE=docker-compose.linux.yml
4670
```
4771

72+
`COMPOSE_FILE` selects which compose file is used by default.
73+
74+
> On Linux, keep this enabled for direct USB tracker access.
75+
> On macOS/Windows, change it to `COMPOSE_FILE=docker-compose.yml`.
76+
4877
## Run
4978

5079
### Option A: Cross-platform default (Linux/macOS/Windows)
5180

81+
```bash
82+
COMPOSE_FILE=docker-compose.yml docker compose up -d
83+
```
84+
85+
Or set it in `.env` and run:
86+
5287
```bash
5388
docker compose up -d
5489
```
@@ -58,7 +93,7 @@ This mode uses explicit port mappings and is the recommended default for Docker
5893
### Option B: Linux USB hotplug mode (recommended for direct USB trackers)
5994

6095
```bash
61-
docker compose -f docker-compose.yml -f docker-compose.linux.yml up -d
96+
docker compose -f docker-compose.linux.yml up -d
6297
```
6398

6499
This mode enables host networking and mounts `/dev` + `/run/udev` for resilient USB/HID reattach behavior.
@@ -119,7 +154,7 @@ docker compose up -d --build
119154
For Linux hotplug mode:
120155

121156
```bash
122-
docker compose -f docker-compose.yml -f docker-compose.linux.yml up -d --build
157+
docker compose -f docker-compose.linux.yml up -d --build
123158
```
124159

125160
## Credits
@@ -136,4 +171,4 @@ MIT
136171
BTC: `bc1qrd3mexqu43qn0597d248725kdp3tr28252q64p`
137172

138173
<!-- AUTO-UPDATE-DATE -->
139-
**Last updated:** 2026-04-02
174+
**Last updated:** 2026-04-03

docker-compose.linux.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,36 @@
11
services:
22
slimevr:
3+
build:
4+
context: ./slimevr
5+
args:
6+
SLIMEVR_VERSION: ${SLIMEVR_VERSION}
7+
container_name: slimevr
8+
restart: unless-stopped
9+
environment:
10+
- LIBGL_ALWAYS_INDIRECT=0
311
network_mode: host
412
privileged: true
513
devices:
614
- /dev/dri:/dev/dri
7-
ports: []
815
group_add:
916
- dialout
1017
- video
1118
volumes:
19+
- slimevr-config:/root/.config/dev.slimevr.SlimeVR
20+
- slimevr-gui:/gui_mount
1221
- /dev:/dev
1322
- /run/udev:/run/udev:ro
1423

1524
nginx:
25+
build: ./nginx
26+
container_name: slimevr_gui
27+
restart: unless-stopped
28+
environment:
29+
WEBGUI_PORT: ${WEBGUI_PORT}
1630
network_mode: host
17-
ports: []
31+
volumes:
32+
- slimevr-gui:/usr/share/nginx/html:ro
33+
34+
volumes:
35+
slimevr-config:
36+
slimevr-gui:

0 commit comments

Comments
 (0)