Files
wild-directory/mastodon
Paul Payne 9687fad812 feat: Move cluster services to wild-directory as unified packages
Convert all 15 cluster services from embedded API format to
wild-directory packages using the unified manifest format:
- metallb, traefik, cert-manager, longhorn, snapshot-controller
- nfs, smtp, coredns, node-feature-discovery, nvidia-device-plugin
- externaldns, docker-registry, headlamp, crowdsec, utils

Changes:
- wild-manifest.yaml → manifest.yaml with is, defaultConfig, requires
- Eliminated configReferences and serviceConfig fields
- Flattened kustomize.template/ to package root
- Template vars use flat defaultConfig keys
- install.sh paths updated for apps/ layout
- Updated 9 app manifests: cloud.smtp.* → apps.smtp.* with requires
- Removed dead install: true field from 6 app manifests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-17 02:26:46 +00:00
..
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 23:56:37 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 19:36:31 +00:00
2026-01-04 23:56:37 +00:00

Mastodon

Mastodon is a free, open-source social network server based on ActivityPub. It allows you to run your own instance of a decentralized social media platform.

Version

This package deploys Mastodon v4.5.3 (released July 8, 2025).

Dependencies

  • PostgreSQL: Database for storing application data
  • Redis: Used for caching and background job queuing

Configuration

VAPID Keys

Mastodon requires VAPID (Voluntary Application Server Identification) keys for Web Push notifications. These keys use Elliptic Curve P-256 cryptography.

The Wild Cloud API automatically generates proper VAPID keys when you add the Mastodon app. No manual configuration is required!

Database

The database is automatically initialized with:

  • Database: mastodon_production
  • User: mastodon with auto-generated password
  • All necessary privileges granted

The db-init job handles creating the database and user, and automatically updates the user password if it changes.

Storage

Mastodon uses two persistent volumes:

  • Assets (10Gi): Stores compiled assets and static files
  • System (100Gi): Stores user uploads, media files, and other system data

Both volumes use ReadWriteMany access mode to allow multiple pods to access them simultaneously.

Components

Mastodon runs three separate services:

  • Web (Puma): Main web server for the Mastodon web interface
  • Streaming (Node.js): Real-time streaming API for live updates
  • Sidekiq: Background job processor for async tasks

Access

After deployment, Mastodon will be available at:

The ingress automatically routes:

  • /api/v1/streaming → Streaming service
  • All other paths → Web service

First-Time Setup

  1. Add and deploy the app:

    wild app add mastodon
    wild app deploy mastodon
    
  2. Generate and configure VAPID keys (see above)

  3. Access your instance in a browser and create the first admin user account

  4. Configure additional settings through the Mastodon admin interface

Security

All containers run as non-root user (UID 991) with:

  • No privilege escalation
  • All capabilities dropped
  • Compliant with Pod Security Standards

Notes

  • SMTP configuration is inherited from your Wild Cloud instance settings
  • Database credentials are auto-generated and stored in your instance's secrets.yaml
  • The Active Record Encryption keys are auto-generated for Rails 8.0.3 compatibility