−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS

VPS voor Mastodon: je eigen kleine instance

Host een kleine Mastodon-instance op een VPS: eerlijke RAM- en schijfinschatting, installatie met Docker, e-mail via een SMTP-relay en media opruimen zodat de schijf niet volloopt.

Je eigen sociale account bezitten klinkt mooi, tot je beseft dat het account op iemand anders zijn server woont, onder diens regels en uptime. Een eigen Mastodon-instance lost dat op: je handle is @you@your-domain, en niemand anders dan jij kan hem uitzetten. Het addertje: Mastodon is geen kleine app. Het is goed om te weten waar je aan begint.

Voor wie dit is

Bij alles wat groter is, run je een dienst met moderatieplichten, misbruikmeldingen en echte infrastructuur. Dat is een ander gesprek.

Wat het echt nodig heeft

Mastodon draait meerdere processen tegelijk: de Rails-webapp, Sidekiq-achtergrondworkers, een streamingserver, PostgreSQL en Redis. Door federatie blijft je server posts en media van andere servers ophalen, ook terwijl jij slaapt.

InstancePlan
Eén gebruiker, weinig gevolgde accountsSmall-IP — 2 vCPU, 4 GB, $16/mnd
Kleine community, actieve federatieMedium-IP — 4 vCPU, 6 GB, $20/mnd

4 GB werkt, maar het is krap; Sidekiq-wachtrijen lopen op als een populaire post die je volgt duizenden reacties krijgt. 6 GB geeft ademruimte. De andere beperking is de schijf — zie het stuk over media hieronder.

Je hebt ook een domein en een dedicated IP nodig: andere servers leveren aan de jouwe op poort 443.

Installatie met Docker

De officiële repository bevat een docker-compose.yml. Op een verse Ubuntu 24.04-server met Docker geïnstalleerd:

git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
  web bundle exec rake mastodon:setup
docker compose up -d

De setuptaak vraagt om je domein, database- en Redis-instellingen (de standaardwaarden passen bij het compose-bestand), e-mailinstellingen en het eerste beheerdersaccount. Alles wordt weggeschreven naar .env.production. Lees de release notes van de tag die je hebt uitgecheckt — de stappen veranderen soms tussen hoofdversies.

Mastodon levert een nginx-sjabloon mee in dist/nginx.conf. Kopieer het naar /etc/nginx/sites-available/, vervang het domein en haal een certificaat op met certbot. Onze handleidingen voor reverse proxy en domein behandelen beide.

E-mail: gebruik een relay

Mastodon verstuurt bevestigings- en wachtwoordherstelmails. Poort 25 en 465 zijn dicht op onze servers, dus laat Mastodon via poort 587 naar een externe aanbieder van transactionele e-mail sturen:

SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example

Eerlijk gezegd wil je sowieso een relay. Mail van een gloednieuw server-IP belandt vaak in de spam; een relay heeft de reputatie die jij nog niet hebt.

Media: de schijfvreter

Elke afbeelding en video van accounts die je server ziet, wordt lokaal gecachet. Op een drukke instance zijn dat gigabytes per week. Ruim oude externe media volgens een schema op:

docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30

Zet die in een dagelijkse cronjob. Groeit je instance, verplaats media dan naar S3-compatibele objectopslag met de S3_*-instellingen in .env.production — dan houdt de VPS-schijf alleen de database vast.

Onderhoud

Liever iets lichters voor teamchat? Een Matrix-server past misschien beter.

Klaar om te implementeren? Betaal met crypto, geen KYC — live in ongeveer een minuut.

Nu implementeren →

FAQ

Hoeveel RAM heeft een Mastodon-instance nodig?

Voor een instance voor één gebruiker of een kleine groep is 4 GB het realistische minimum en 6 GB comfortabel. Mastodon draait tegelijk een webproces, Sidekiq-workers, PostgreSQL en Redis, en door federatie heeft Sidekiq het druk, ook als niemand iets post.

Waarom heeft Mastodon een dedicated IP nodig?

Andere servers leveren posts aan de jouwe via HTTPS op poort 443, en mensen openen je instance in een browser. Daarvoor is inkomend verkeer op 443 op je eigen IP nodig, en dat hebben NAT-plannen niet.

Hoe verstuur ik e-mail vanuit Mastodon?

Via een externe aanbieder van transactionele e-mail, over SMTP op poort 587. Poort 25 en 465 zijn dicht op onze servers, en een relay levert sowieso veel beter af dan een vers IP-adres zou doen.

Waarom loopt mijn schijf zo snel vol?

Je server cachet media van elk account dat hij ziet. Draai 'tootctl media remove --days 7' volgens een schema, of verplaats media naar S3-compatibele objectopslag.

Kan ik het domein later wijzigen?

Nee. Je domein maakt deel uit van de identiteit van elk account in het hele fediverse. Kies het zorgvuldig voordat het eerste account wordt aangemaakt.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.