−25%

untuk Windows tahunan, hingga 31 Okt. Lihat paket

EQVPS
Mulai

VPS untuk Mastodon: instance kecil milik sendiri

Hosting instance Mastodon kecil di VPS: perhitungan RAM dan disk yang jujur, instalasi Docker, email lewat relay SMTP, dan pembersihan media supaya disk tidak penuh.

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

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.

InstancePaket
Satu pengguna, sedikit yang diikutiSmall-IP — 2 vCPU, 4 GB, $16/bulan
Komunitas kecil, federasi aktifMedium-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

Ingin sesuatu yang lebih ringan untuk obrolan tim? Server Matrix mungkin lebih pas.

Siap deploy? Bayar dengan kripto, tanpa KYC — online dalam sekitar satu menit.

Deploy →

Pertanyaan umum

Berapa RAM yang dibutuhkan instance Mastodon?

Untuk instance satu pengguna atau kecil, 4 GB adalah minimum yang realistis dan 6 GB terasa nyaman. Mastodon menjalankan proses web, worker Sidekiq, PostgreSQL, dan Redis sekaligus, dan federasi membuat Sidekiq tetap sibuk meski tidak ada yang memposting.

Kenapa Mastodon butuh IP dedicated?

Server lain mengirim postingan ke server Anda lewat HTTPS di port 443, dan orang membuka instance Anda di browser. Itu butuh lalu lintas masuk di port 443 ke IP Anda sendiri, dan paket NAT tidak memilikinya.

Bagaimana cara mengirim email dari Mastodon?

Pakai penyedia email transaksional eksternal lewat SMTP di port 587. Port 25 dan 465 ditutup di server kami, dan relay tetap memberi tingkat keterkiriman jauh lebih baik daripada IP yang masih baru.

Kenapa disk saya cepat penuh?

Server Anda menyimpan cache media dari setiap akun yang dilihatnya. Jalankan 'tootctl media remove --days 7' secara terjadwal, atau pindahkan media ke penyimpanan objek kompatibel S3.

Bisakah domain diganti nanti?

Tidak. Domain adalah bagian dari identitas setiap akun di seluruh fediverse. Pilih dengan hati-hati sebelum akun pertama dibuat.

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.