Add Mastodon.
This commit is contained in:
81
mastodon/README.md
Normal file
81
mastodon/README.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user