The Rallly CLI (Documentation Index
Fetch the complete documentation index at: https://support.rallly.co/llms.txt
Use this file to discover all available pages before exploring further.
rallly.sh) is the single entry point for day-to-day operations on a self-hosted instance. It ships with the self-hosted stack and should be run from the stack directory (e.g. /opt/rallly for installer-based setups).
Commands
Applying configuration changes
After editing.env, apply changes with:
Updating
lukevella/rallly:4 tag, so update will bring you the latest compatible 4.x release. To pin to a specific version or follow a different major, set RALLLY_IMAGE in .env (see Configuration).
Backup and restore
Backup
./backups/ as timestamped .sql.gz files. Copy these off the server regularly — they are your main recovery artifact.
The backup captures the PostgreSQL database. Uploaded files (avatars, etc.) are stored in the
garage-data Docker volume; back that up separately if you rely on uploads.Restore
Stop the app first so it releases its database connections, drop and recreate an emptyrallly database, stream in the dump, then restart:
Logs
Stream all services:web, db, garage, traefik):
Troubleshooting
SSL certificate is not being issued
Let’s Encrypt can take up to a minute on first start. Check:- The domain’s DNS
Arecord resolves to the server’s public IP. - Ports 80 and 443 are open in the server’s firewall.
./rallly.sh logs traefikfor ACME errors.
Port 80 or 443 already in use
Another service (nginx, apache, another Docker stack) is bound to the port. Stop it or reconfigure it to leave 80/443 free — Traefik needs both.Containers keep restarting
Check the failing service’s logs:- Missing or invalid
.envvalues (e.g. emptySECRET_PASSWORD, unreachable SMTP). - Database is still initialising on first boot — usually resolves within a few retries.
Database connection errors on first boot
PostgreSQL takes a few seconds to initialise. The app retries automatically. If errors persist, inspect./rallly.sh logs db.