Memiliki akun sosial sendiri memang terdengar bagus, sampai Anda sadar akun itu tinggal di server orang lain, di bawah aturan dan uptime mereka. Instance Mastodon milik sendiri menyelesaikannya: handle Anda @you@your-domain, dan tidak ada yang bisa mematikannya selain Anda. Masalahnya, Mastodon bukan aplikasi kecil. Sebaiknya Anda tahu apa yang akan dihadapi.
Untuk siapa ini
- Instance satu pengguna untuk Anda sendiri atau akun resmi perusahaan.
- Komunitas kecil teman atau tim proyek — puluhan orang, bukan ribuan.
Untuk yang lebih besar, Anda menjalankan layanan dengan tugas moderasi, laporan penyalahgunaan, dan infrastruktur sungguhan. Itu pembahasan lain.
Kebutuhan sebenarnya
Mastodon menjalankan beberapa proses sekaligus: aplikasi web Rails, worker latar belakang Sidekiq, server streaming, PostgreSQL, dan Redis. Karena federasi, server Anda terus mengambil postingan dan media dari server lain bahkan saat Anda tidur.
| Instance | Paket |
|---|---|
| Satu pengguna, sedikit yang diikuti | Small-IP — 2 vCPU, 4 GB, $16/bulan |
| Komunitas kecil, federasi aktif | Medium-IP — 4 vCPU, 6 GB, $20/bulan |
4 GB bisa jalan tapi mepet; antrean Sidekiq menumpuk saat postingan populer yang Anda ikuti mendapat ribuan balasan. 6 GB memberi ruang bernapas. Batasan lainnya adalah disk — lihat bagian media di bawah.
Anda juga butuh domain dan IP dedicated: server lain mengirim ke server Anda di port 443.
Instalasi dengan Docker
Repositori resmi menyertakan docker-compose.yml. Di server Ubuntu 24.04 yang baru dengan Docker terinstal:
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
Tugas setup menanyakan domain, pengaturan database dan Redis (nilai default cocok dengan file compose), pengaturan email, dan akun admin pertama. Semuanya ditulis ke .env.production. Baca catatan rilis tag yang Anda pakai — langkah-langkahnya kadang berubah antar versi mayor.
Mastodon menyertakan templat nginx di dist/nginx.conf. Salin ke /etc/nginx/sites-available/, ganti domainnya, lalu dapatkan sertifikat dengan certbot. Panduan reverse proxy dan domain kami membahas keduanya.
Email: pakai relay
Mastodon mengirim email konfirmasi dan reset kata sandi. Port 25 dan 465 ditutup di server kami, jadi arahkan Mastodon ke penyedia email transaksional eksternal lewat 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
Jujur saja, Anda tetap akan menginginkan relay. Email dari IP server yang masih baru cenderung masuk spam; relay punya reputasi yang belum Anda miliki.
Media: pemakan disk
Setiap gambar dan video dari akun yang dilihat server Anda disimpan di cache lokal. Di instance yang ramai, itu berarti gigabyte per minggu. Bersihkan media jarak jauh yang lama secara terjadwal:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Masukkan ke cron job harian. Kalau instance Anda tumbuh, pindahkan media ke penyimpanan objek kompatibel S3 lewat pengaturan S3_* di .env.production — dengan begitu disk VPS hanya menyimpan database.
Perawatan
- Pembaruan: ambil tag baru,
docker compose pull, jalankan migrasi sesuai catatan rilis, lalu restart. Jangan lompati versi mayor. - Backup: dump PostgreSQL dan simpan
.env.productiondengan aman — tanpa rahasia di dalamnya, pemulihan tidak akan berhasil. Panduan restic kami membahas salinan di luar server, dan Managed Backups menambahkan titik pemulihan harian untuk seluruh server. - Domain bersifat permanen. Domain tertanam di alamat setiap akun di seluruh fediverse. Pilih sebelum membuat akun pertama.
Ingin sesuatu yang lebih ringan untuk obrolan tim? Server Matrix mungkin lebih pas.
Komentar
Belum ada komentar. Jadilah yang pertama.