Advanced installation
servasec can be deployed with Docker Compose or Podman Quadlet.
- Docker Compose
- Podman Quadlet
Available since v0.0.2
Prerequisites
- Docker and Docker Compose (v2+)
- Git
- 2 CPU cores, 4 GB RAM (minimum)
Community edition
git clone https://github.com/servasec/servasec.git
cd servasec
cp .env.example .env
# update .env as needed
make community
Uses docker-compose.prod.yml with multi-stage Docker builds.
Pro edition
git clone https://github.com/servasec/servasec.git
cd servasec
cp .env.example .env
# set SSC_LICENSE_KEY in .env
make pro
Compose files
| File | Purpose |
|---|---|
docker-compose.dev.yml | Local development with hot-reload |
docker-compose.prod.yml | Production deployment |
Volumes
| Volume | Mount | Purpose |
|---|---|---|
caddy_data | /data | TLS certificates |
postgres_data | /var/lib/postgresql/data | Database persistence |
Added in v0.3.0
For systemd-integrated container management without a Docker daemon.
Prerequisites
- Podman 4+
- systemd
Install
git clone https://github.com/servasec/servasec.git
cd servasec
make podman-install
Copies Quadlet files to /etc/containers/systemd/ and enables the services.
Start
make podman-up
Services
Quadlet defines:
servasec-backend.containerservasec-frontend.containerservasec-postgres.containerservasec-caddy.container
Plus volumes: caddy_data, postgres_data
Management
# View logs
make podman-logs
# Stop all
make podman-down
# Rebuild and restart
make podman-up
Environment variables
| Variable | Default | Description |
|---|---|---|
SSC_PUBLIC_DOMAIN | servasec.local | Deployment domain |
POSTGRES_PASSWORD | (required) | PostgreSQL password |
JWT_SECRET | (auto-generated) | JWT signing secret |
CSRF_SECRET | (auto-generated) | CSRF protection secret |
SSC_LICENSE_KEY | - | Pro license key (optional) |
See the full configuration reference for all environment variables.