server_version is detected by the installer. When set, the panel lists this
cluster as the read-only system instance on the Databases page. The file is
looked up at GISILA_DATABASE_FILE, then /etc/gisila/database.yaml, then
./database.yaml.
direct runs the agent as is (the worker is root). sudo prefixes sudo --non-interactive. dev stubs the agent out (Docker development stack). The worker unit forces direct.
GISILA_ARTIFACT_DIR
/var/lib/gisila/artifacts
Upload storage. Both services read it.
GISILA_BACKUP_DIR
/var/lib/gisila/backups
Database backup storage.
NODE_ID
short hostname
Node identifier, reserved for multi-node setups.
APP_PORT_RANGE_MIN, APP_PORT_RANGE_MAX
4000, 4999
Written by the installer, but app ports are currently chosen per app (1024 to 65535) and not limited by this range.
Sandboxed (NoNewPrivileges, ProtectSystem=strict, …). One isolate per CPU on a shared port. Ordered after a local postgresql/redis-server if present, never Requires= them.
gisila-worker.service
/usr/local/bin/gisila-worker as root
Runs queued jobs through the agent, plus the cron, metrics, health, backup and alert loops. PartOf=gisila-panel.service.
gisila-apps.target
Groups every app unit (gisila-app_<id>.service) for bulk start and stop.
Hostname written into the panel’s Nginx vhost and used for the superuser email.
ISSUE_TLS=1
Run certbot for PANEL_DOMAIN once Nginx is up.
ENABLE_STUDIO=1
Mount GisilaStudio. On a re-run, 0 or 1 flips it in the existing .env.
GISILA_ALLOW_INSECURE=1
Turn the connection-security refusals into warnings. Test machines only.
SKIP_OS_CHECK=1
Skip the Ubuntu/Debian version check (unsupported).
Prebuilt installer only:
Variable
Description
VERSION
Release to install (default latest, falling back to the newest prerelease when no stable release exists).
RELEASE_FILE
Install from a local release tarball.
RELEASE_URL, GITHUB_REPO
Download from another URL or repository.
Source installer only:
Variable
Description
BUILD_FRONTEND=1
Rebuild the web UI from source (needs Node.js and pnpm) instead of using the committed build.
Both installers are idempotent. A re-run rewrites database.yaml, updates the
Redis keys in .env only when you pass Redis settings, and replaces the
binaries.
Upgrade to a release with backup and automatic rollback. Options VERSION, RELEASE_FILE, FORCE, SKIP_DB_BACKUP, ROLLBACK, BACKUP. See Back up and upgrade.
infra/uninstall.sh
Remove the panel. --apps also removes apps, --purge drops the panel database and role (same host) and gisila:* Redis keys, --all does both.
infra/build-release.sh
Build the release tarball (maintainers).
scripts/dev.sh
Docker development stack: up, logs, down, reset. The worker runs with AGENT_MODE=dev.