Quick start
This page walks you through the shortest path to a running calit instance.
Prerequisites
Section titled “Prerequisites”- Docker and Docker Compose installed on the host.
- A public HTTPS URL pointing to the host (required for production use, e.g.
https://book.example.com). For a local trial,http://localhost:8080works. - An SMTP server for sending booking confirmation and reminder emails.
1. Get the files
Section titled “1. Get the files”You don’t need to clone or build anything — calit runs from the prebuilt image on GitHub Container Registry. In an empty directory, grab the two config files:
curl -O https://raw.githubusercontent.com/asm0dey/calit/main/docker-compose.ymlcurl -O https://raw.githubusercontent.com/asm0dey/calit/main/.env.example2. Create your .env
Section titled “2. Create your .env”cp .env.example .envOpen .env and set at minimum:
| Variable | Description |
|---|---|
DB_PASSWORD | Password for the Postgres database. |
APP_BASE_URL | Public origin of the app, e.g. https://book.example.com. |
SESSION_ENCRYPTION_KEY | At least 16 characters. Generate with openssl rand -hex 32. |
TOKEN_ENCRYPTION_KEY | Exactly 64 hex characters. Generate with openssl rand -hex 32. |
MAIL_HOST | SMTP hostname. |
MAIL_PORT | SMTP port (commonly 587 or 465). |
MAIL_USERNAME | SMTP username. |
MAIL_PASSWORD | SMTP password. |
MAIL_FROM | From address for outgoing mail. |
MAIL_START_TLS | STARTTLS mode: REQUIRED, OPTIONAL, or DISABLED. Use REQUIRED with port 587. |
MAIL_TLS | true to use implicit TLS (port 465); false otherwise. |
3. Start
Section titled “3. Start”docker compose up -dThis pulls the prebuilt image and starts two containers: app (Quarkus on port 8080) and db (Postgres).
4. Create the first admin user
Section titled “4. Create the first admin user”Open APP_BASE_URL in your browser. Because the database is empty, the app redirects automatically to /setup. Fill in the form to create your first admin account. There is no default password.
5. Done
Section titled “5. Done”You are now logged in as the admin. From the management UI at /me you can:
- Create meeting types with custom slugs, durations, and booking controls.
- Configure your availability and calendar integrations.
- Invite additional users (if you enable sign-ups).
Next steps
Section titled “Next steps”- Configuration reference — all environment variables explained.
- Reverse proxy setup — put Nginx or Caddy in front of calit.
- First-run walkthrough — a guided tour of the initial setup wizard.