feat(docker): add guided install and saved one-command updates
CI / check (push) Successful in 53s
CI / deploy (push) Successful in 1m9s
CI / publish-container (push) Successful in 46s

This commit is contained in:
Simo committed 2026-09-09 20:49:05 +02:00
1 parent 8dc187483c
commit 27447ce029
11 files changed
+395 -7

No files matched your search

+44
View File
@@ -217,6 +217,50 @@ local `/swf/c_images/album1584` fallback. Public URL resolution uses runtime `AP
After changing `.env`, recreate the container; an image rebuild is not required.
`NEXT_PUBLIC_CMS_RELEASE` deliberately remains compiled into the image.
### Guided installation from this repository
On a Linux host with Docker Engine, the Compose plugin, Git and `flock` available:
```bash
git clone https://gitlab.epicnabbo.nl/remco/EpicNext-Cms.git
cd EpicNext-Cms
bash cms install
```
The wizard asks for your public URL, delivery method, hotel name, existing database
connection, Redis and avatar imager. It generates an authentication secret and
creates `.env` with private permissions. An existing `.env` is preserved; review
its `APP_URL`, `AUTH_URL`, RCON and optional original Laravel `APP_KEY` when moving
an existing hotel. This installs the CMS, not the Habbo database, emulator, Redis
or reverse proxy. Point HTTPS at port 3002 before running the final public check.
The wizard may request sudo to prepare persistent directories for UID/GID 33;
it does not recursively change ownership of existing assets.
Choose **prebuilt** to download the images specified by this repository in
`docker-image.txt`, without entering a registry namespace or commit tag. Choose
**source** when building your own fork on the installation host. Private packages
still require `docker login` on that host. Maintainers must update `docker-image.txt`
if the publication registry or namespace changes.
After installation, update with:
```bash
bash cms update
```
The updater pulls the configured Git upstream, loads `.docker-install`, uses the
matching application/migration images and verifies the running release locally
and at the saved public URL. If publication for the new commit is still running,
it stops before replacing the current container; run the same command after CI
succeeds. Existing application rollback remains available on a failed cutover;
database migrations are not reversed.
`bash cms install --configure-only` saves configuration without preparing runtime
directories or starting containers. Neither `.env` nor `.docker-install` is
committed or sent in Docker build contexts. Existing users of
`bash scripts/docker-update.sh` retain the previous behavior when no wizard
profile exists; explicit `CMS_IMAGE_REPOSITORY`/`CMS_PUBLIC_URL` overrides still work.
To publish from Gitea:
Gitea packages belong to an account or organization, independently of repository