−25%

på Windows vid årsbetalning, till 31/10. Till paketen

EQVPS

VPS för Mastodon: din egen lilla instans

Kör en liten Mastodon-instans på en VPS: ärlig bedömning av RAM och disk, installation med Docker, e-post via SMTP-relä och medierensning så att disken inte blir full.

Att äga sitt sociala konto är en fin tanke, tills du inser att kontot bor på någon annans server, under deras regler och drifttid. En egen Mastodon-instans löser det: ditt användarnamn är @you@your-domain, och ingen annan än du kan stänga ner det. Haken är att Mastodon inte är en liten app. Det är bra att veta vad du ger dig in på.

Vem det här passar

För något större driver du en tjänst med modereringsansvar, anmälningar om missbruk och riktig infrastruktur. Det är en annan diskussion.

Vad den faktiskt kräver

Mastodon kör flera processer samtidigt: Rails-webbappen, Sidekiq-bakgrundsworkers, en streamingserver, PostgreSQL och Redis. Federationen gör att din server fortsätter hämta inlägg och media från andra servrar även när du sover.

InstansPlan
En användare, få följda kontonSmall-IP — 2 vCPU, 4 GB, $16/mån
Liten gemenskap, aktiv federationMedium-IP — 4 vCPU, 6 GB, $20/mån

4 GB fungerar men är trångt; Sidekiq-köerna växer när ett populärt inlägg du följer får tusentals svar. 6 GB ger andrum. Den andra begränsningen är disken — se avsnittet om media nedan.

Du behöver också en domän och en dedikerad IP: andra servrar levererar till din på port 443.

Installation med Docker

Det officiella repositoryt innehåller en docker-compose.yml. På en nyinstallerad Ubuntu 24.04-server med Docker installerat:

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

Installationsuppgiften frågar efter din domän, inställningar för databas och Redis (standardvärdena matchar compose-filen), e-postinställningar och det första administratörskontot. Allt skrivs till .env.production. Läs versionsinformationen för taggen du checkade ut — stegen ändras ibland mellan huvudversioner.

Mastodon har en nginx-mall i dist/nginx.conf. Kopiera den till /etc/nginx/sites-available/, byt ut domänen och skaffa ett certifikat med certbot. Våra guider om reverse proxy och domäner täcker båda.

E-post: använd ett relä

Mastodon skickar bekräftelse- och lösenordsåterställningsmejl. Portarna 25 och 465 är stängda på våra servrar, så peka Mastodon mot en extern leverantör av transaktionell e-post via port 587:

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

Ärligt talat vill du ha ett relä ändå. Mejl från en helt ny server-IP hamnar ofta i skräpposten; ett relä har det rykte du ännu inte har.

Media: diskslukaren

Varje bild och video från konton som din server ser cachas lokalt. På en aktiv instans blir det gigabyte i veckan. Rensa gammal fjärrmedia enligt ett schema:

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

Lägg dem i ett dagligt cronjobb. Växer instansen, flytta media till S3-kompatibel objektlagring med S3_*-inställningarna i .env.production — då rymmer VPS-disken bara databasen.

Underhåll

Vill du hellre ha något lättare för en teamchatt? En Matrix-server kanske passar bättre.

Redo att distribuera? Betala med krypto, ingen KYC — igång på ungefär en minut.

Distribuera nu →

FAQ

Hur mycket RAM behöver en Mastodon-instans?

För en instans för en person eller en liten grupp är 4 GB det realistiska minimumet och 6 GB bekvämt. Mastodon kör en webbprocess, Sidekiq-workers, PostgreSQL och Redis samtidigt, och federationen håller Sidekiq sysselsatt även när ingen skriver något.

Varför behöver Mastodon en dedikerad IP?

Andra servrar levererar inlägg till din via HTTPS på port 443, och folk öppnar din instans i en webbläsare. Det kräver inkommande trafik på 443 till din egen IP, vilket NAT-planer inte har.

Hur skickar jag e-post från Mastodon?

Använd en extern leverantör av transaktionell e-post via SMTP på port 587. Portarna 25 och 465 är stängda på våra servrar, och ett relä ger dessutom mycket bättre leveransbarhet än en helt ny IP skulle göra.

Varför fylls min disk så snabbt?

Din server cachar media från alla konton den ser. Kör 'tootctl media remove --days 7' enligt ett schema, eller flytta media till S3-kompatibel objektlagring.

Kan jag byta domän senare?

Nej. Domänen är en del av varje kontos identitet i hela fediversum. Välj den noga innan det första kontot skapas.

Kommentarer

Inga kommentarer än. Bli först.

Lämna en kommentar

Kommentarer modereras innan de visas.