Academy Manager

User guide · 14/15

Deployment

Run the web edition on Coolify or plain Docker in minutes, the environment variables that matter, and what to back up.

What you deploy

A single container: Node 24 running the SvelteKit server, SQLite inside a volume. No external database, cache, queue or cron. Image size about 380 MB; during the stress test with 2,000 learners the process stayed under 350 MB of memory.

Coolify

  1. Add resource → Application → Git repository. Point it at the repository and the main branch.
  2. Build pack: Dockerfile. The Dockerfile at the repository root builds and runs the app. Port 3000.
  3. Storage → Add volume, mounted at /data. This holds the database, photos, backups and the device key. Without it a redeploy starts empty.
  4. Environment variables (see below): at least ORIGIN and TZ.
  5. Deploy. Coolify proxies HTTPS to the container; the health check hits /health.

Open the URL, create the administrator account, finish onboarding.

Docker Compose

git clone https://github.com/AAA-It-uae/academy-manager-site.git
cd academy-manager-site
ORIGIN=https://academy.example.com TZ=Asia/Dubai docker compose up -d --build

Environment variables

Variable Default Purpose
ORIGIN Public URL, e.g. https://academy.example.com. Required behind a proxy; form posts are refused when the origin does not match.
TZ UTC Server time zone: "today", attendance dates and the auto-backup time use it.
DATA_DIR /data Where the database, photos and backups live.
APP_LOCALES en,ar,fa Languages offered, in picker order.
DEFAULT_LOCALE en Language before onboarding.
APP_CURRENCIES AED,USD,IRT Currencies offered; the first is the default.
SESSION_DAYS 30 Sign-in session length.
MAX_UPLOAD_MB / BODY_SIZE_LIMIT 64 / 64M Largest photo or backup upload.
WORKERS 1 Worker processes; auto uses every core.
SECURE_COOKIES follows scheme Force the cookie Secure flag on or off.

Backups of the server

The volume at /data is everything. Snapshot it with your host's tools, and use the app's own Create backup for portable, encrypted copies you can restore anywhere, including on the phone.

Updating

Redeploy from Git. Database migrations run automatically on start; the schema version is shown under Settings → About.