Files
wild-directory/mastodon/README.md
2026-01-04 19:36:31 +00:00

2.4 KiB

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