Build local release artifacts and prepare Compose deployment [skip ci]
This commit is contained in:
1 parent
6deff62a3a
commit
52de8c3031
25 files changed
+137
-23
No files matched your search
@@ -0,0 +1,40 @@
|
||||
# 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.
|
||||
|
||||
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.
|
||||
@@ -71,6 +71,6 @@ gradle -p integrations -Ploader=forge -PmcVersion=1.21.1 :forge:build
|
||||
gradle -p integrations -Ploader=fabric -PmcVersion=26.3 :fabric:build
|
||||
```
|
||||
|
||||
Substitute `fabric`/`forge` and the exact version as required. JARs are in the selected module's `build/libs/`. `-PreleaseVersion=X.Y.Z` stamps the artifact and metadata. The **Server integrations** workflow builds the full matrix and uploads each JAR; **Release** attaches them beside the Windows installer.
|
||||
Substitute `fabric`/`forge` and the exact version as required. JARs are in the selected module's `build/libs/`. `-PreleaseVersion=X.Y.Z` stamps the artifact and metadata. The locally built 0.4.0 matrix for 1.20.1, 1.21.1, and 26.3 plus Paper is in [`release-artifacts/0.4.0`](../release-artifacts/0.4.0/README.md), with SHA-256 checksums. The **Server integrations** workflow can rebuild the matrix when Actions usage is available again.
|
||||
|
||||
Before production, test a valid login, wrong password, disabled account, denied group, missing launcher launch, panel outage, name-change/reconnect with the same inventory, chat count, heartbeat retry, and restart on a copy of your server world. Build/API tests do not replace a live Minecraft client/server compatibility check with your modpack.
|
||||
Reference in new issue
Block a user