Air-gapped install
Ticketra is designed to run fully offline. There are no runtime dependencies on external CDNs or services — the only time you need connectivity is to build images and pull the source onto a connected staging machine, after which everything transfers to the air-gapped host.
Strategy
1. On a connected machine: build and export images
git clone https://github.com/ticketra/ticketra.git
cd ticketra
docker compose build
# Save the built/pulled images to tarballs
docker save ticketra-frontend ticketra-api -o ticketra-app-images.tar
docker save postgres:16-alpine -o postgres-image.tar
docker save opensearchproject/opensearch:latest -o opensearch-image.tar
Also copy the repository itself (for docker-compose.yml, migrations, and .env.example).
The exact image tags depend on your docker-compose.yml. Run docker compose config | grep image on the connected machine to list the precise images to save.
2. Transfer to the air-gapped host
Move the .tar files and the repository to the target host using your approved transfer media.
3. On the air-gapped host: load and run
docker load -i ticketra-app-images.tar
docker load -i postgres-image.tar
docker load -i opensearch-image.tar
cd ticketra
cp .env.example .env # then edit for this environment
# create the files under secrets/ (see Quickstart)
docker compose up -d # no --build needed; images are pre-loaded
4. TLS in an air-gapped environment
Local/offline deployments use self-signed certificates by default. For an internal CA, place your certificate and key in the certs/ directory as referenced by the frontend Nginx configuration, then restart the frontend container.
Verify
docker compose ps
curl -k https://<host>/api/v1/health
Notes for offline operation
- Threat-intel enrichment requires reaching external providers (VirusTotal, AbuseIPDB, etc.). In a true air-gap these will be unreachable; either leave integrations disabled or point MISP at an internal MISP instance.
- Documentation (this site) builds to a static bundle and can be self-hosted offline alongside the app.
Continue with the Hardening guide before going live.