82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# 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:
|
|
- https://mastodon.{your-cloud-domain}
|
|
|
|
The ingress automatically routes:
|
|
- `/api/v1/streaming` → Streaming service
|
|
- All other paths → Web service
|
|
|
|
## First-Time Setup
|
|
|
|
1. Add and deploy the app:
|
|
```bash
|
|
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
|