GRAND LAUNCHING · 75% off monthly · 85% off annual · locked in forever for current subscribers · ends in · claim →
2026-05-24 · baca 8 menit · federation · mastodon

Self-host Mastodon dari rumah: jalur IPv6

Federation Mastodon butuh alamat yang bisa diraih secara inbound. Kebanyakan koneksi rumahan tidak punya. Ini cara paling murah dan paling permanen untuk memperbaikinya di 2026.

Mastodon (dan server ActivityPub mana pun: Pixelfed, GoToSocial, Lemmy, dll.) dibangun dengan asumsi server kamu bisa diraih dari seluruh fediverse. Instance lain perlu push activity ke kamu — follow, reply, boost, delete. Kalau mereka tidak bisa mencapai inbox kamu, federation rusak diam-diam: post tidak muncul di timeline remote, follow dari instance lain timeout, kamu dilaporkan sebagai "akun ini tidak ada" di antrean moderator server lain.

Jadi Mastodon-dari-rumah menabrak tembok yang tidak dialami service yang murni outbound (client Lemmy, client Matrix). Kamu benar-benar butuh alamat publik yang bisa diraih.

Kenapa jawaban-jawaban biasa kurang pas buat Mastodon

  • Cloudflare Tunnel: HTTPS jalan, tapi federation Mastodon punya beberapa bagian non-HTTPS (Streaming API bisa sensitif terhadap koneksi long-lived lewat proxy, media storage S3-compatible kalau kamu self-host itu juga). Paling penting: DNS kamu harus dikelola Cloudflare, dan Cloudflare berhak men-drop kamu karena alasan konten. Untuk jejaring sosial federated, DNS yang dikontrol vendor adalah masalah struktural.
  • Tailscale Funnel: HTTPS-only, cap 1 GB/bln di tier gratis, maksimal 3 device Funnel. Tidak akan scale melewati instance personal. Plus: subdomain-nya milik *.ts.net, kamu tidak bisa menjalankan handle kamu sebagai @user@domainkamu dengan bersih.
  • VPS + reverse SSH: jalan, tapi kamu jadi mengelola VPS cuma buat forward 443. Tidak ada HA, harus re-establish tiap disconnect, dan kamu bayar compute yang tidak terpakai.
  • Sewa droplet DigitalOcean kecil $6/bln: jalan kok, tapi kamu bayar cloud compute murni demi satu IP yang bisa diraih. Mubazir kalau Mastodon kamu sebenarnya jalan di rumah, tempat kamu punya CPU + storage nganggur.

Jalur IPv6

Jawaban paling bersih di 2026: beri server Mastodon rumahan kamu alamat IPv6 publik dedicated, dan federate lewat IPv6. Fediverse mayoritas besar sudah IPv6-capable — semua instance besar (mastodon.social, fosstodon.org, hachyderm.io, dll.) punya konektivitas IPv6. Federation lewat IPv6 langsung jalan.

Arsitekturnya:

your domain (e.g. social.example.com)
        │
        │  AAAA record
        ▼
    [public IPv6 — 2001:df6:d2c0:1400::42]
        │
        │  routed via wayangi hub in Jakarta
        ▼
    [wayangi WireGuard tunnel over UDP/443]
        │
        ▼
    [home machine — Mastodon + Postgres + Redis]

Setup langkah demi langkah

Asumsinya Mastodon sudah jalan lokal di mesin rumah, bound ke 127.0.0.1 — setup Docker Compose tipikal. Kita tinggal meng-expose-nya.

1. Install wayangi di host Mastodon

curl -fsSL https://wayangi.dalang.io/install.sh | sudo sh -s -- --token=YOUR_TOKEN

Ambil token dari dashboard kamu. Untuk instance sosial beneran kamu mau tier /128 ($5/bln per IPv6 publik). Tier gratis itu mesh-only — oke buat testing, tidak akan federate.

2. Pastikan IPv6-nya milikmu

wayangi status
# device:   "mastodon-host" (id 01KS...)
# addresses:
#   - 10.66.0.5/32                       ← internal mesh v4
#   - 2001:df6:d2c0:1400:ffff::5/64      ← internal mesh v6
#   - 2001:df6:d2c0:1400::42/128         ← public IPv6 (yours)

3. Setup DNS

Dua record:

social.example.com   AAAA   2001:df6:d2c0:1400::42
example.com          ALIAS  social.example.com   (or appropriate CNAME-flat record)

Catatan: tidak ada A record. Client Mastodon yang IPv4-only tidak akan bisa mencapai kamu, tapi semua instance Mastodon modern yang kamu federate sudah dual-stack. Teman dengan koneksi rumahan IPv4-only mungkin tidak bisa lihat web UI instance kamu — tapi mereka tetap bisa follow kamu dari instance lain mana pun yang IPv6-reachable.

4. Caddy di depan Mastodon

Dokumentasi Mastodon menunjukkan setup nginx; Caddy lebih simpel:

# /etc/caddy/Caddyfile
social.example.com {
    encode zstd gzip

    handle /api/v1/streaming* {
        reverse_proxy localhost:4000
    }
    handle {
        reverse_proxy localhost:3000
    }

    # Mastodon uploads land in /home/mastodon/live/public/system
    handle_path /system/* {
        root * /home/mastodon/live/public/system
        file_server
    }
}

Caddy otomatis minta cert Let's Encrypt lewat IPv6 (ACMEv2 mendukung challenge IPv6-only secara native). Streaming API butuh path sendiri karena Mastodon menjalankannya di port terpisah.

5. Konfigurasi Mastodon supaya tahu domainnya sendiri

Di .env.production:

LOCAL_DOMAIN=example.com
WEB_DOMAIN=social.example.com
ALTERNATE_DOMAINS=
TRUSTED_PROXY_IP=127.0.0.1
DEFAULT_LOCALE=en
SINGLE_USER_MODE=false   # or true if just you

Restart Mastodon. Buka https://social.example.com, buat akun admin, federate.

6. Verifikasi federation jalan

# From any IPv6-reachable machine
curl -s https://social.example.com/.well-known/webfinger?resource=acct:[email protected]

# From the public reachability probe
curl -s "https://wayangi.dalang.io/check?target=[2001:df6:d2c0:1400::42]:443"

# Follow an account on another instance
# (from your Mastodon UI: paste a remote handle, hit Follow)
# Within 30 seconds it should resolve and let you follow

Kalau WebFinger mengembalikan actor JSON kamu, federation jalan. Instance lain bisa menemukan kamu, push activity ke inbox kamu, dan pull outbox kamu.

Catatan

  • Pengunjung IPv4-only tidak bisa mencapai web UI kamu. Umumnya tidak masalah di 2026 — carrier mobile besar, workload hyperscaler, dan kebanyakan ISP sudah dual-stack. Sebagian kecil user (jaringan korporat di balik proxy lama, carrier mobile di beberapa region) tidak akan bisa lihat website instance kamu secara langsung, tapi mereka tetap bisa lihat post kamu yang di-boost ke timeline mereka dari instance lain.
  • Media storage membengkak cepat. Mastodon meng-cache setiap gambar/video dari setiap akun yang di-follow siapa pun di instance kamu. Instance 200 user bisa menghabiskan 100 GB/bulan. Siapkan object storage (S3-compatible, atau self-host MinIO di host wayangi-reachable kamu) atau cron job media-prune yang agresif.
  • Postgres + Redis + Sidekiq + streaming butuh CPU beneran. Single user: Pi 5 dengan RAM 8 GB cukup. 50 user aktif: lebih ke NUC kecil dengan RAM 16 GB dan SSD.
  • Mail relay. Mastodon mengirim banyak email notifikasi. Pakai SMTP relay (Mailgun, Postmark, Amazon SES) daripada menjalankan sendiri — IP residential kena spam-block.

Perbandingan biaya

PendekatanBiaya bulananCatatan
Droplet DigitalOcean buat Mastodon$24/bln (4 GB)Compute rumahmu tidak terpakai sama sekali
Hetzner CX22 + bandwidth~$6/blnCerita yang sama — cloud compute
Home server + wayangi /128$5/blnCPU kamu, storage kamu, domain kamu, IPv6 publik
Home server + Cloudflare Tunnel$0/blnHTTPS saja, DNS terkunci ke Cloudflare, ada risiko TOS buat konten sosial

Kenapa bentuk ini pas buat software fediverse

ActivityPub dibangun dengan server sebagai endpoint kelas satu — tiap instance butuh URL stabil yang bisa di-push instance lain. Jalur IPv6+wayangi memberi persis itu: alamat permanen yang milikmu, bukan subdomain yang dirotasi vendor, bukan URL berlapis CDN yang bisa dicabut orang lain. Untuk jejaring sosial federated di mana identitasmu adalah @user@domainkamu, kepemilikan itu penting.

Bentuk yang sama jalan buat Lemmy, Pixelfed, GoToSocial, Calckey, Misskey, Pleroma, Akkoma, BookWyrm, PeerTube — server ActivityPub apa pun. Setup sama, software beda, bound ke IPv6 publik yang sama.

Kalau selama ini kamu ragu self-host software fediverse karena "tidak bisa dapat alamat reachable dari rumah", alasan itu sudah selesai. Mulai dengan tier mesh gratis untuk coba flow install, lalu upgrade ke /128 seharga $5/bln saat mau federate beneran.