cfasuite-hr

Self-hosted deployment guide

Deploy cfasuite-hr on your own infrastructure.

Build and run the service as a standalone Go binary or a Docker container, with its SQLite database and application files stored on persistent disk.

Requirements

Choose a deployment target

Build from source with Go 1.24 or newer, or deploy with Docker. SQLite is compiled into the application, so a separate database server is not required.

01

Standalone binary

Use a Linux host or service manager with a writable configuration directory and persistent storage.

02

Docker

Publish port 8218 and mount both /app/config and /app/data from persistent storage.

Deployment

Standalone binary or Docker

Build and run

make build
make test
./bin/cfasuite-hr init
# Update config/.env before starting
./bin/cfasuite-hr serve

Build the image

docker build -t cfasuite-hr .
mkdir -p config data
docker run --rm -v "$PWD/config:/app/config" \
  -v "$PWD/data:/app/data" \
  cfasuite-hr init
docker run --rm -p 8218:8218 \
  -v "$PWD/config:/app/config" \
  -v "$PWD/data:/app/data" \
  cfasuite-hr

Run initialization once, update the generated configuration, and keep the configuration and data mounts private. Place a TLS-terminating reverse proxy in front of the service for internet-facing deployments.

Operations

Keep the deployment durable

The database and uploaded files live together in the configured data directory.

Persistence

Never run production with an ephemeral data directory. Losing the directory loses the service data.

Backups

Back up the SQLite database and application-owned files together, and test restoration regularly.

Upgrades

Back up persistent data, build the new binary or image, then restart the service. Database migrations run at startup.