Το να έχετε δικό σας κοινωνικό λογαριασμό ακούγεται ωραίο, μέχρι να συνειδητοποιήσετε ότι ο λογαριασμός ζει στον server κάποιου άλλου, με τους δικούς του κανόνες και τον δικό του χρόνο λειτουργίας. Ένα δικό σας instance Mastodon το λύνει: το όνομά σας είναι @you@your-domain και κανείς εκτός από εσάς δεν μπορεί να το κλείσει. Το «αλλά» είναι ότι το Mastodon δεν είναι μικρή εφαρμογή. Καλό είναι να ξέρετε σε τι μπαίνετε.
Για ποιον είναι
- Ένα instance για έναν χρήστη, για εσάς ή για τον επίσημο λογαριασμό της εταιρείας σας.
- Μια μικρή κοινότητα φίλων ή μια ομάδα έργου — δεκάδες άνθρωποι, όχι χιλιάδες.
Για κάτι μεγαλύτερο, τρέχετε πια υπηρεσία με υποχρεώσεις εποπτείας, αναφορές κατάχρησης και πραγματική υποδομή. Αυτό είναι άλλη κουβέντα.
Τι χρειάζεται στ' αλήθεια
Το Mastodon τρέχει πολλές διεργασίες μαζί: την web εφαρμογή σε Rails, workers του Sidekiq στο παρασκήνιο, έναν streaming server, PostgreSQL και Redis. Λόγω ομοσπονδίας, ο server σας συνεχίζει να τραβά αναρτήσεις και media από άλλους servers ακόμα κι όταν κοιμάστε.
| Instance | Πλάνο |
|---|---|
| Ένας χρήστης, λίγοι που ακολουθεί | Small-IP — 2 vCPU, 4 GB, $16/μήνα |
| Μικρή κοινότητα, ενεργή ομοσπονδία | Medium-IP — 4 vCPU, 6 GB, $20/μήνα |
Τα 4 GB δουλεύουν αλλά είναι οριακά· οι ουρές του Sidekiq φουσκώνουν όταν μια δημοφιλής ανάρτηση που ακολουθείτε παίρνει χιλιάδες απαντήσεις. Τα 6 GB σας αφήνουν ανάσα. Ο άλλος περιορισμός είναι ο δίσκος — δείτε την ενότητα για τα media παρακάτω.
Χρειάζεστε επίσης domain και αποκλειστική IP: οι άλλοι servers παραδίδουν στον δικό σας στη θύρα 443.
Εγκατάσταση με Docker
Το επίσημο αποθετήριο περιέχει ένα docker-compose.yml. Σε καθαρό server με Ubuntu 24.04 και εγκατεστημένο Docker:
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
Η εργασία ρύθμισης ζητά το domain, τις ρυθμίσεις βάσης και Redis (οι προεπιλογές ταιριάζουν με το αρχείο compose), τις ρυθμίσεις email και τον πρώτο λογαριασμό διαχειριστή. Γράφει τα πάντα στο .env.production. Διαβάστε τις σημειώσεις έκδοσης του tag που επιλέξατε — τα βήματα αλλάζουν πού και πού ανάμεσα σε κύριες εκδόσεις.
Το Mastodon περιλαμβάνει πρότυπο nginx στο dist/nginx.conf. Αντιγράψτε το στο /etc/nginx/sites-available/, αλλάξτε το domain και πάρτε πιστοποιητικό με certbot. Οι οδηγοί μας για reverse proxy και domain καλύπτουν και τα δύο.
Email: χρησιμοποιήστε relay
Το Mastodon στέλνει email επιβεβαίωσης και επαναφοράς κωδικού. Οι θύρες 25 και 465 είναι κλειστές στους servers μας, οπότε κατευθύνετε το Mastodon σε εξωτερικό πάροχο transactional email μέσω της θύρας 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
Ειλικρινά, relay θα θέλατε έτσι κι αλλιώς. Τα email από ολοκαίνουργια IP server συχνά καταλήγουν στα spam· το relay έχει τη φήμη που εσείς δεν έχετε ακόμα.
Media: ο καταβροχθιστής του δίσκου
Κάθε εικόνα και βίντεο από λογαριασμούς που βλέπει ο server σας αποθηκεύεται τοπικά σε cache. Σε ενεργό instance αυτό σημαίνει gigabytes την εβδομάδα. Καθαρίζετε τακτικά τα παλιά απομακρυσμένα media:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Βάλτε τα σε ημερήσιο cron job. Αν το instance μεγαλώσει, μεταφέρετε τα media σε αποθήκευση αντικειμένων συμβατή με S3 με τις ρυθμίσεις S3_* στο .env.production — τότε ο δίσκος του VPS κρατά μόνο τη βάση.
Συντήρηση
- Ενημερώσεις: τραβήξτε το νέο tag,
docker compose pull, τρέξτε τα migrations όπως λένε οι σημειώσεις έκδοσης, επανεκκινήστε. Μην πηδάτε κύριες εκδόσεις. - Αντίγραφα ασφαλείας: κάντε dump της PostgreSQL και φυλάξτε το
.env.production— χωρίς τα μυστικά του η επαναφορά δεν δουλεύει. Ο οδηγός μας για restic καλύπτει αντίγραφα εκτός server, και τα Managed Backups προσθέτουν ημερήσια σημεία επαναφοράς όλου του server. - Το domain είναι μόνιμο. Είναι χαραγμένο στη διεύθυνση κάθε λογαριασμού σε όλο το fediverse. Διαλέξτε το πριν φτιάξετε τον πρώτο λογαριασμό.
Θέλετε κάτι ελαφρύτερο για chat ομάδας; Ένας server Matrix ίσως ταιριάζει καλύτερα.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.