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 <