From 777bab792cf54ccd453676e30b3d49c48c6d604d Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Fri, 19 Jun 2026 21:33:05 +0000 Subject: [PATCH] Adds gancio app. --- gancio/app.yaml | 5 ++ gancio/versions/1/README.md | 33 ++++++++++ gancio/versions/1/db-init-job.yaml | 63 +++++++++++++++++++ gancio/versions/1/deployment.yaml | 92 ++++++++++++++++++++++++++++ gancio/versions/1/ingress.yaml | 26 ++++++++ gancio/versions/1/kustomization.yaml | 16 +++++ gancio/versions/1/manifest.yaml | 20 ++++++ gancio/versions/1/namespace.yaml | 4 ++ gancio/versions/1/pvc.yaml | 11 ++++ gancio/versions/1/service.yaml | 13 ++++ 10 files changed, 283 insertions(+) create mode 100644 gancio/app.yaml create mode 100644 gancio/versions/1/README.md create mode 100644 gancio/versions/1/db-init-job.yaml create mode 100644 gancio/versions/1/deployment.yaml create mode 100644 gancio/versions/1/ingress.yaml create mode 100644 gancio/versions/1/kustomization.yaml create mode 100644 gancio/versions/1/manifest.yaml create mode 100644 gancio/versions/1/namespace.yaml create mode 100644 gancio/versions/1/pvc.yaml create mode 100644 gancio/versions/1/service.yaml diff --git a/gancio/app.yaml b/gancio/app.yaml new file mode 100644 index 0000000..6ff75ac --- /dev/null +++ b/gancio/app.yaml @@ -0,0 +1,5 @@ +name: gancio +is: gancio +description: Gancio is a federated event platform for local communities with ActivityPub support, allowing you to create and share events across the Fediverse. +icon: https://gancio.org/favicon.ico +latest: "1" diff --git a/gancio/versions/1/README.md b/gancio/versions/1/README.md new file mode 100644 index 0000000..a7f6b01 --- /dev/null +++ b/gancio/versions/1/README.md @@ -0,0 +1,33 @@ +# Gancio + +Gancio is a shared agenda for local communities, federated via ActivityPub. It allows groups to publish and discover local events. + +## Dependencies + +- **PostgreSQL** - Database for storing events and users + +## Configuration + +Key settings in `config.yaml`: + +- **domain** - Where Gancio will be accessible +- **storage** - Persistent volume size (default: `2Gi`) +- **db.name** - Database name (default: `gancio`) + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add gancio + wild app deploy gancio + ``` + +2. Visit the app URL — on first load, a setup wizard will run to create the admin account and configure the instance. + +3. After setup, you can start publishing events and inviting community members. + +## Notes + +- **Re-deploy warning**: If the app is deleted and redeployed with an existing database, Gancio will refuse to start with a "Non empty db" error. Fix by dropping and recreating the public schema in the `gancio` database before restarting. See ADDING-APPS-NOTES.md note 18 for the exact commands. +- Gancio stores its setup state in `config.json` on the data PVC — do not delete the PVC without also clearing the database +- Events are federated to Mastodon and other ActivityPub platforms diff --git a/gancio/versions/1/db-init-job.yaml b/gancio/versions/1/db-init-job.yaml new file mode 100644 index 0000000..a9943f8 --- /dev/null +++ b/gancio/versions/1/db-init-job.yaml @@ -0,0 +1,63 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: gancio-db-init + labels: + component: db-init +spec: + template: + metadata: + labels: + component: db-init + spec: + restartPolicy: OnFailure + securityContext: + runAsNonRoot: true + runAsUser: 999 + runAsGroup: 999 + seccompProfile: + type: RuntimeDefault + containers: + - name: db-init + image: postgres:17 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: false + command: ["/bin/bash", "-c"] + args: + - | + PGPASSWORD=${POSTGRES_ADMIN_PASSWORD} psql -h ${DB_HOSTNAME} -U postgres <