Add pre-built image installer and release tarball system

New install method: curl one-liner downloads a lightweight release
tarball (~9 MB) and runs the config wizard. No git clone needed,
no TypeScript compilation — pulls pre-built images from Gitea registry.

- docker-compose.prod.yml: production compose without build blocks or
  source code volume mounts; IMAGE_TAG defaults to latest
- scripts/install.sh: curl-friendly installer (downloads tarball,
  extracts, runs config.sh)
- scripts/build-release.sh: creates release tarball from dev repo
  with only runtime files (configs, scripts, docs, empty data dirs)
- config.sh: release-mode detection (VERSION file + no .git dir),
  auto-sets IMAGE_TAG=latest and NODE_ENV=production
- upgrade.sh: release-mode upgrade path (downloads new tarball from
  Gitea Releases API instead of git pull, always uses registry mode)
- upgrade-check.sh: release-mode version check via Gitea API
- .gitignore: exclude releases/ and api/dist/
- Docs: updated getting-started with pre-built install instructions

Bunker Admin
This commit is contained in:
2026-03-22 20:34:49 -06:00
parent f550423c3f
commit 8e6f0996de
10 changed files with 1996 additions and 32 deletions

9
.gitignore vendored
View File

@@ -51,14 +51,21 @@ docker-compose.override.yml
core.*
*/core.*
# MkDocs core binary
# MkDocs core binary and container-generated assets (owned by root, not stashable)
/mkdocs/core
/mkdocs/assets/
# Upgrade artifacts
/logs/
/backups/
.upgrade.lock
# Release tarballs (generated by build-release.sh)
/releases/
# API compiled output (generated by tsc, baked into Docker images)
/api/dist/
# Control Panel runtime data (managed deployments + backups)
/changemaker-control-panel/instances/
/changemaker-control-panel/backups/