From 855fb03e17bf4ecaa7add5ebf309ea6972e0157e Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Fri, 19 Jun 2026 21:33:14 +0000 Subject: [PATCH] Adds mobilizon app. --- mobilizon/app.yaml | 5 + mobilizon/versions/5/README.md | 40 ++++++++ mobilizon/versions/5/db-init-job.yaml | 65 +++++++++++++ mobilizon/versions/5/deployment.yaml | 124 ++++++++++++++++++++++++ mobilizon/versions/5/ingress.yaml | 26 +++++ mobilizon/versions/5/kustomization.yaml | 16 +++ mobilizon/versions/5/manifest.yaml | 30 ++++++ mobilizon/versions/5/namespace.yaml | 4 + mobilizon/versions/5/pvc.yaml | 11 +++ mobilizon/versions/5/service.yaml | 13 +++ 10 files changed, 334 insertions(+) create mode 100644 mobilizon/app.yaml create mode 100644 mobilizon/versions/5/README.md create mode 100644 mobilizon/versions/5/db-init-job.yaml create mode 100644 mobilizon/versions/5/deployment.yaml create mode 100644 mobilizon/versions/5/ingress.yaml create mode 100644 mobilizon/versions/5/kustomization.yaml create mode 100644 mobilizon/versions/5/manifest.yaml create mode 100644 mobilizon/versions/5/namespace.yaml create mode 100644 mobilizon/versions/5/pvc.yaml create mode 100644 mobilizon/versions/5/service.yaml diff --git a/mobilizon/app.yaml b/mobilizon/app.yaml new file mode 100644 index 0000000..b41bd9c --- /dev/null +++ b/mobilizon/app.yaml @@ -0,0 +1,5 @@ +name: mobilizon +is: mobilizon +description: Mobilizon is a federated event hosting platform that lets you organize events, groups, and discussions without relying on corporate social networks. +icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mobilizon.svg +latest: "5" diff --git a/mobilizon/versions/5/README.md b/mobilizon/versions/5/README.md new file mode 100644 index 0000000..cd0c0a7 --- /dev/null +++ b/mobilizon/versions/5/README.md @@ -0,0 +1,40 @@ +# Mobilizon + +Mobilizon is a federated events and groups platform, an ActivityPub alternative to Facebook Events and Meetup. + +## Dependencies + +- **PostgreSQL** - Database for storing events, groups, and accounts +- **SMTP** - For account verification and event notifications + +## Configuration + +Key settings in `config.yaml`: + +- **domain** - Where Mobilizon will be accessible +- **storage** - Persistent volume size (default: `2Gi`) +- **instanceName** - Display name for the instance (default: `Mobilizon`) +- **instanceEmail** - Contact email shown on the instance (defaults to your operator email) +- **smtp** - Email settings inherited from your Wild Cloud SMTP service + +## First-Time Setup + +1. Add and deploy the app: + ```bash + wild app add mobilizon + wild app deploy mobilizon + ``` + +2. Create the admin user via the Elixir console: + ```bash + kubectl exec -n mobilizon deploy/mobilizon -- ./bin/mobilizon_web eval \ + "Mobilizon.CLI.create_admin(\"Your Name\", \"admin@example.com\", \"yourpassword\")" + ``` + +3. Visit the app URL and log in with the credentials you just created. + +## Notes + +- Mobilizon is federated via ActivityPub — events and groups are discoverable by Mastodon users and other Mobilizon instances +- The `secretKeyBase` and `secretKey` are auto-generated in `secrets.yaml` +- After logging in, complete the instance configuration under **Admin → Settings** (instance description, terms of service, etc.) diff --git a/mobilizon/versions/5/db-init-job.yaml b/mobilizon/versions/5/db-init-job.yaml new file mode 100644 index 0000000..1e95104 --- /dev/null +++ b/mobilizon/versions/5/db-init-job.yaml @@ -0,0 +1,65 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: mobilizon-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 <