Skip to content

feat(service): add Mastodon#9562

Open
maebahesioru wants to merge 4 commits intocoollabsio:nextfrom
maebahesioru:feat/add-mastodon-service-template
Open

feat(service): add Mastodon#9562
maebahesioru wants to merge 4 commits intocoollabsio:nextfrom
maebahesioru:feat/add-mastodon-service-template

Conversation

@maebahesioru
Copy link
Copy Markdown

Changes

Adds a one-click deployment template for Mastodon, the most widely used Fediverse / ActivityPub platform.

The template includes:

  • web — Puma app server (port 3000)
  • streaming — Node.js streaming API (port 4000)
  • sidekiq — background job worker
  • postgres:14-alpine — database (matches official docker-compose.yml)
  • redis:7-alpine — cache/queue

SECRET_KEY_BASE and OTP_SECRET are auto-generated via SERVICE_PASSWORD_64_*. VAPID_PRIVATE_KEY and VAPID_PUBLIC_KEY must be generated manually (instructions in template comments). LOCAL_DOMAIN is required and permanent.

Issues

  • Fixes

Category

  • Bug fix
  • Improvement
  • New feature
  • Adding new one click service
  • Fixing or updating existing one click service

Preview

AI Assistance

  • AI was NOT used to create this PR
  • AI was used (please describe below)

If AI was used:

  • Tools used: Kiro
  • How extensively: Template structure verified against official mastodon/mastodon docker-compose.yml and .env.production.sample.

Testing

Verified against official Mastodon repository:

  • Image names match ghcr.io/mastodon/mastodon:latest and ghcr.io/mastodon/mastodon-streaming:latest
  • Environment variables match .env.production.sample
  • PostgreSQL version matches official docker-compose.yml (postgres:14-alpine)
  • Healthcheck endpoints match official compose (/health, /api/v1/streaming/health)
  • SERVICE_PASSWORD_64_* used for SECRET_KEY_BASE and OTP_SECRET (128-char hex required by Mastodon)

Contributor Agreement

Important

  • I have read and understood the contributor guidelines. If I have failed to follow any guideline, I understand that this PR may be closed without review.
  • I have searched existing issues and pull requests (including closed ones) to ensure this is not a duplicate.
  • I have tested all the changes thoroughly with a local development instance of Coolify and I am confident that they will work as expected when a maintainer tests them.

Comment on lines +8 to +9
# IMPORTANT: Before deploying, generate VAPID keys by running:
# docker run --rm ghcr.io/mastodon/mastodon:latest bundle exec rake mastodon:webpush:generate_vapid_key
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


services:
web:
image: ghcr.io/mastodon/mastodon:latest
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please pin to a static version rather than 'latest' to prevent the template from breaking due to upstream changes.

start_period: 30s

db-migrate:
image: ghcr.io/mastodon/mastodon:latest
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please pin to a static version rather than 'latest' to prevent the template from breaking due to upstream changes.

condition: service_healthy

streaming:
image: ghcr.io/mastodon/mastodon-streaming:latest
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please pin to a static version rather than 'latest' to prevent the template from breaking due to upstream changes.

retries: 10

sidekiq:
image: ghcr.io/mastodon/mastodon:latest
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please pin to a static version rather than 'latest' to prevent the template from breaking due to upstream changes.

@ShadowArcanist ShadowArcanist added ⚙️ Service Issues requesting or PRs adding/fixing service templates. 💤 Waiting for changes PRs awaiting changes from the author. 📑 Waiting for Docs PR PRs that need to have a mirrored PR to the Coolify Docs before being merged. labels Apr 24, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Hi @maebahesioru! 👋

It appears to us that you are either adding a new service or making changes to an existing one.
We kindly ask you to also review and update the Coolify Documentation to include this new service or it's new configuration needs.
This will help ensure that our documentation remains accurate and up-to-date for all users.

Coolify Docs Repository: https://github.com/coollabsio/coolify-docs
How to Contribute a new Service to the Docs: https://coolify.io/docs/get-started/contribute/service#adding-a-new-service-template-to-the-coolify-documentation

@ShadowArcanist ShadowArcanist changed the title feat: add Mastodon service template feat(service): add Mastodon Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙️ Service Issues requesting or PRs adding/fixing service templates. 💤 Waiting for changes PRs awaiting changes from the author. 📑 Waiting for Docs PR PRs that need to have a mirrored PR to the Coolify Docs before being merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants