This repository deploys gancio to the existing infra.
It contains:
docker-stack.yml- GitHub Actions deployment workflow
- minimal infra integration notes for
v1.28.2
docker-stack.ymlSwarm stack for the application.github/workflows/publish.ymlbuild and deployment workflow
Before deploying, infra must already be running.
Required external networks:
infra_reverse-proxyinfra_postgres-net
Required services:
caddypostgres-1
infra must already be deployed.
Create a dedicated PostgreSQL user and database:
CREATE USER gancio WITH PASSWORD 'change-me';
CREATE DATABASE gancio OWNER gancio;
GRANT ALL PRIVILEGES ON DATABASE gancio TO gancio;Expected deployment parameters:
DB_HOST=infra-postgres-1DB_PORT=5432DB_DATABASE=gancioDB_USERNAME=gancioDB_PASSWORD=<your-password>
This setup uses events.nu31.space.
DNS must point to the server running infra.
Add this block to infra/caddy/CaddyFile:
events.nu31.space {
reverse_proxy * gancio_app:13120
}Then redeploy infra.
Push this directory into a separate GitHub repository, for example nu31hackerspace/gancio-deploy.
Required secrets:
HOSTUSERNAMEROOT_SSH_PRIVATE_KEYDB_HOSTDB_PORTDB_DATABASEDB_USERNAMEDB_PASSWORD
Optional:
LOG_LEVEL
Example:
HOST=65.109.28.227USERNAME=rootDB_HOST=infra-postgres-1DB_PORT=5432LOG_LEVEL=info
Optional:
GANCIO_REPOSITORYGANCIO_REF
By default the workflow uses:
- repository:
https://framagit.org/les/gancio.git - ref:
v1.28.2
If you want to pin a specific version, you can set:
GANCIO_REF=v1.28.2- or a commit SHA
Push to main or run the Build and deploy Gancio workflow manually.
Checks:
- GitHub Actions status
docker service lsdocker service ps gancio_appganciologshttps://events.nu31.space- initial setup page
/setup/0
- this deployment targets
gancio v1.28.2 v1.28.2uses web setup and writesconfig.jsoninto persistent storage- app state is stored in the
gancio-dataDocker volume - after the first deploy, open
https://events.nu31.spaceand complete the web setup - after setup,
gancioexits once on purpose and must be restarted by Swarm config.json, uploads, logs, anduser_localeare stored inside/home/node/data