This guide installs Rallly using the Rallly CLI. It bundles the app, a PostgreSQL database, S3-compatible object storage, and an HTTPS reverse proxy — everything runs on one machine with no extra setup. If you’d rather use a managed database or object store, see External services.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.
Already running Rallly from a hand-edited
docker-compose.yml or config.env? Follow the upgrade guide to move onto the new stack without losing data.Requirements
- A server with at least 2 GB RAM
- Docker 19.03+ with Compose v2
- Ports 80 and 443 open on the server (bundled proxy only — see External reverse proxy if you’re bringing your own)
- A domain name with a DNS
Arecord pointing to the server’s IP - An SMTP server for sending emails (e.g. Resend, Postmark, Mailgun, Brevo)
Use a transactional email provider. We don’t recommend running your own SMTP server — deliverability depends on IP reputation, SPF/DKIM/DMARC, and reverse DNS, which are hard to get right. Consumer inboxes like Gmail or Proton Mail are also a poor fit: they rate-limit automated senders and will eventually block sign-in emails.
Quick install
Run the installer on your server:- Check that Docker and the required ports are available.
- Download the stack to
/opt/rallly. - Walk you through configuration (domain, support email, SMTP).
- Generate secure secrets automatically.
- Start the stack.
https://<your-domain>.
Claim the admin account
After the stack is running, the first user whose email matchesINITIAL_ADMIN_EMAIL can navigate to /control-panel and claim the admin role. See the Control Panel guide for details.
External services
The bundled reverse proxy, Postgres database, and object storage containers are the default. You can swap any of them for external providers (your own Nginx/Caddy/Cloudflare Tunnel, managed Postgres, AWS S3, Cloudflare R2, MinIO, etc.) by setting the relevant variables in.env. The installer uses Docker Compose profiles to skip any bundled service that has an external endpoint configured, so no stack edits are needed.
External reverse proxy
SetPROXY_MODE=external to disable the bundled Traefik. The web container is then published on a host port that your reverse proxy can route to. WEB_PORT controls the bind — defaults to 127.0.0.1:3000 (loopback only).
WEB_PORT. Set WEB_PORT=0.0.0.0:3000 to expose on all interfaces, or pick a different port if 3000 is in use.
The installer prompts for this during ./rallly.sh setup — pick option 2 (“external”) at the reverse proxy step.
External database
SetDATABASE_URL in .env to your Postgres connection string. When this variable is set, the bundled db container is not started.
External object storage
Set the S3 variables in.env to point at your bucket. When S3_ENDPOINT is set to anything other than the bundled Garage endpoint, the bundled garage container is not started.
./rallly.sh restart.
Next steps
- Configuration — full environment variable reference.
- Management — updating, backups, and day-to-day operations.
- Single Sign-On — enable Google, Microsoft, or OIDC login.