45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# Docker Compose deployment
|
|
|
|
This deployment builds the panel and web UI from the checked-out source. It does
|
|
not need GitHub Actions or a published GHCR image.
|
|
|
|
1. Install Docker Engine with the Compose plugin on a Linux host. Point a DNS
|
|
name at that host and arrange HTTPS through your reverse proxy.
|
|
2. Check out the commit you want to deploy, then copy `.env.example` to `.env`.
|
|
Set `ADMIN_PASSWORD` to a unique password and `PUBLIC_URL` to the public
|
|
`https://` URL. Set `SCOPENET_TRUSTED_PROXIES` only to the IP addresses of
|
|
proxies that send forwarding headers.
|
|
3. Run:
|
|
|
|
```bash
|
|
docker compose config --quiet
|
|
docker compose up -d --build
|
|
docker compose ps
|
|
docker compose logs --tail=100 panel
|
|
```
|
|
|
|
The panel listens on `PANEL_PORT` (default `8080`). Docker checks
|
|
`/scopenet-panel healthcheck` inside the container. Wait for `healthy` in
|
|
`docker compose ps` before directing players to it. If `ADMIN_PASSWORD` is
|
|
blank on first start, the generated password appears in the panel logs.
|
|
|
|
To show a 2D world map and claim land in the launcher, install BlueMap on the
|
|
game server and configure its public web address in the panel. See
|
|
[Live map setup](live-map.md).
|
|
|
|
The named `panel-data` volume holds the database, uploads, hosted launcher
|
|
downloads, and the generated JWT signing key. Preserve that volume when
|
|
upgrading. To back it up, stop the panel, archive the volume with a temporary
|
|
container, then start it again:
|
|
|
|
```bash
|
|
docker compose stop panel
|
|
docker run --rm -v scopenet-mc_panel-data:/data:ro -v "$PWD":/backup alpine tar czf /backup/panel-data.tar.gz -C /data .
|
|
docker compose up -d
|
|
```
|
|
|
|
If your Compose project has a different name, use the volume name shown by
|
|
`docker volume ls`. To upgrade, pull the desired commit and run
|
|
`docker compose up -d --build` again. Do not use `docker compose down -v` unless
|
|
you intend to delete the panel data.
|