Quickstart & Self-hosting
ConvoLog ships as a Docker image. You will need:
- A Linux server (VPS, home lab, or any machine with Docker installed)
- Docker and Docker Compose
- A domain name or local hostname (optional, but recommended for HTTPS)
1. Pull the image
docker pull ghcr.io/your-org/convolog:latestPLACEHOLDER — replace
your-org/convologwith the actual GHCR path once the repo is public.
2. Create a docker-compose.yml
services: convolog: image: ghcr.io/your-org/convolog:latest restart: unless-stopped ports: - "3000:3000" volumes: - ./data:/app/data # SQLite database and uploads - ./backups:/app/backups # Scheduled backup output environment: DATABASE_URL: file:/app/data/convolog.db NEXTAUTH_SECRET: "change-me-to-a-random-string" NEXTAUTH_URL: "http://localhost:3000" # Optional — see Configuration for the full list3. Start the container
docker compose up -d4. Create the first admin account
On first run, ConvoLog creates a setup wizard at http://localhost:3000/setup. Complete it to create your SUPER_ADMIN account.
The setup route is disabled after the first user is created.
5. Configure a reverse proxy (recommended)
For production use, put ConvoLog behind a reverse proxy such as Nginx or Caddy to terminate TLS.
Example Caddyfile:
convolog.example.com { reverse_proxy localhost:3000}Upgrading
Pull the new image and restart:
docker compose pull && docker compose up -dDatabase migrations run automatically on startup.
Troubleshooting
- Container exits immediately — check
docker compose logs convologfor the error. - Cannot reach the setup page — ensure port 3000 is not blocked by a firewall.
- Database errors — verify the
./datadirectory is writable by the container user.