Redo the download/website host as a normal app under containers/ (dogfooded — the
project hosts its own downloads on LibrePortal), instead of the bespoke repo-root
thing. Modeled on speedtest: standard getlibreportal.{config,sh,svg} +
docker-compose.yml (tagged template) so it plugs into the app scan + install
dispatch (installGetlibreportal) like every other app. nginx serves ./data (the
app data dir) — no special /web.
- getlibreportal.config: features category, public (login=false — it's a download
host), no backup (regenerable), healthcheck on.
- docker-compose.yml: nginx:alpine, ./data:ro docroot + ./nginx.conf, traefik tags.
- nginx.conf: install.sh + latest.json no-cache; tarball/.sha256/.minisig immutable.
- publish.sh: assembles the docroot (built site + install.sh + dist/<channel>) into
a target data dir; run on a full repo checkout (site/ + dist/ are host-side).
- exec bits set on the run-directly scripts (make_release.sh, install.sh, publish.sh).
- .gitattributes: dropped the stray 'getlibreportal export-ignore' (the no-slash
pattern would also have excluded containers/getlibreportal — the app must ship);
data/ gitignored.
Verified: app discovered by the site catalog (32 apps), installGetlibreportal matches
the dispatch name, and the full release->publish flow yields a docroot with the
website + install.sh + the signed/checksummed stable channel. The actual app-install
run + DNS/TLS for get.libreportal.org are operational steps (need a real host).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
47 lines
2.5 KiB
Plaintext
47 lines
2.5 KiB
Plaintext
#
|
|
# =============================================================================
|
|
# GENERAL CONFIGURATION
|
|
# =============================================================================
|
|
# APP_NAME = name of application for use in scripts
|
|
# COMPOSE_FILE = default for no app_name in docker-compose file name, app if there is
|
|
# BACKUP = if true, include this application in backup operations
|
|
# HEALTHCHECK = if true, default docker health checks for that container will be enabled
|
|
# AUTHELIA = if true, use Authelia authentication, if false turned off.
|
|
# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
|
|
#
|
|
CFG_GETLIBREPORTAL_APP_NAME=getlibreportal
|
|
CFG_GETLIBREPORTAL_BACKUP=false
|
|
CFG_GETLIBREPORTAL_BACKUP_STRATEGY=auto
|
|
CFG_GETLIBREPORTAL_COMPOSE_FILE=default
|
|
CFG_GETLIBREPORTAL_HEALTHCHECK=true
|
|
CFG_GETLIBREPORTAL_AUTHELIA=false
|
|
CFG_GETLIBREPORTAL_HEADSCALE=false
|
|
#
|
|
# =============================================================================
|
|
# METADATA
|
|
# =============================================================================
|
|
CFG_GETLIBREPORTAL_CATEGORY="features"
|
|
CFG_GETLIBREPORTAL_TITLE="LibrePortal Downloads"
|
|
CFG_GETLIBREPORTAL_DESCRIPTION="Website + signed-release host"
|
|
CFG_GETLIBREPORTAL_LONG_DESCRIPTION="Serves the LibrePortal website, the install.sh bootstrap, and signed/checksummed release artifacts — i.e. the get.libreportal.org host. Populate its docroot with containers/getlibreportal/publish.sh."
|
|
CFG_GETLIBREPORTAL_URL="https://get.libreportal.org"
|
|
CFG_GETLIBREPORTAL_ACTIONS="configure|install|restart|shutdown|uninstall"
|
|
#
|
|
# =============================================================================
|
|
# NETWORK CONFIGURATION
|
|
# =============================================================================
|
|
# DOMAIN = number of domain from the general config, useful when using multiple domains
|
|
# WHITELIST = if true only allow whitelisted ips on traefik, if false allow all
|
|
#
|
|
CFG_GETLIBREPORTAL_DOMAIN=1
|
|
CFG_GETLIBREPORTAL_WHITELIST=false
|
|
CFG_GETLIBREPORTAL_NETWORK=default
|
|
#
|
|
# =============================================================================
|
|
# PORT CONFIGURATION
|
|
# =============================================================================
|
|
# PORT_ = app|name|external:internal|access|protocol|login|traefik|webui|title|path|slug
|
|
# login MUST stay false — this is a public download host (no basic-auth).
|
|
#
|
|
CFG_GETLIBREPORTAL_PORT_1="getlibreportal-service|webui|random:80|public|tcp|false|true|true|Downloads|/|getlibreportal"
|