የራስዎን social account ባለቤት መሆን ጥሩ ሀሳብ ነው፣ accountኡ በሌላ ሰው ሰርቨር ላይ፣ በእሱ ደንቦችና uptime ስር እንደሚኖር እስኪገነዘቡ ድረስ። የራስዎ Mastodon instance ይህን ይፈታል፦ handleዎ @you@your-domain ነው፣ ከእርስዎ በቀር ማንም ሊዘጋው አይችልም። ችግሩ Mastodon ትንሽ መተግበሪያ አለመሆኑ ነው። ምን እየወሰዱ እንደሆነ ማወቅ ይገባል።
ለማን ነው
- ለራስዎ ወይም ለድርጅትዎ ይፋዊ account የሚሆን የአንድ ተጠቃሚ instance።
- የጓደኞች ወይም የፕሮጀክት ቡድን ትንሽ ማህበረሰብ — በደርዘኖች እንጂ በሺዎች አይደለም።
ከዚያ ለሚበልጥ ማንኛውም ነገር፣ የmoderation ግዴታዎች፣ የማጎሳቆል ሪፖርቶችና እውነተኛ መሰረተ ልማት ያለው service እያሄዱ ነው። ያ ሌላ ውይይት ነው።
በእርግጥ የሚያስፈልገው
Mastodon በርካታ processes በአንድ ጊዜ ያሄዳል፦ የRails web መተግበሪያ፣ የበስተጀርባ Sidekiq workers፣ የstreaming ሰርቨር፣ PostgreSQL እና Redis። በfederation ምክንያት እርስዎ ሲተኙም ሰርቨርዎ ከሌሎች ሰርቨሮች posts እና media ማምጣቱን ይቀጥላል።
| Instance | ፕላን |
|---|---|
| አንድ ተጠቃሚ፣ ጥቂት follows | Small-IP — 2 vCPU፣ 4 GB፣ $16/ወር |
| ትንሽ ማህበረሰብ፣ ንቁ federation | Medium-IP — 4 vCPU፣ 6 GB፣ $20/ወር |
4 GB ይሰራል ግን ጠባብ ነው፤ የሚከተሉት ታዋቂ post በሺዎች የሚቆጠሩ ምላሾች ሲያገኝ የSidekiq ወረፋዎች ይጨናነቃሉ። 6 GB የመተንፈሻ ቦታ ይሰጥዎታል። ሌላው ገደብ ዲስክ ነው — ከታች የmedia ክፍሉን ይመልከቱ።
domain እና ልዩ IPም ያስፈልግዎታል፦ ሌሎች ሰርቨሮች በፖርት 443 ወደ ሰርቨርዎ ያደርሳሉ።
በDocker መጫን
ይፋዊው repository docker-compose.yml ይዟል። Docker በተጫነበት አዲስ የUbuntu 24.04 ሰርቨር ላይ፦
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ዎን፣ የdatabase እና Redis ቅንብሮችን (ነባሪዎቹ ከcompose ፋይሉ ጋር ይጣጣማሉ)፣ የemail ቅንብሮችንና የመጀመሪያውን admin account ይጠይቃል። ሁሉንም ወደ .env.production ይጽፋል። የመረጡትን tag የrelease notes ያንብቡ — ደረጃዎቹ በዋና ስሪቶች መካከል አልፎ አልፎ ይቀየራሉ።
Mastodon በdist/nginx.conf ላይ የnginx template ያካትታል። ወደ /etc/nginx/sites-available/ ይገልብጡት፣ domainኡን ይተኩ፣ በcertbot certificate ያግኙ። የእኛ reverse proxy እና domain መመሪያዎች ሁለቱንም ይሸፍናሉ።
Email፦ relay ይጠቀሙ
Mastodon የማረጋገጫና የpassword ዳግም ማስጀመሪያ emails ይልካል። በሰርቨሮቻችን ላይ ፖርት 25 እና 465 ዝግ ናቸው፣ ስለዚህ Mastodonን በፖርት 587 ወደ ውጭ transactional email አቅራቢ ይጠቁሙት፦
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 ለማንኛውም ትፈልጉ ነበር። ከአዲስ የሰርቨር IP የሚላክ mail ብዙውን ጊዜ spam ውስጥ ይገባል፤ relay እርስዎ ገና የሌለዎት ስም አለው።
Media፦ ዲስክ በዪ
ሰርቨርዎ ከሚያያቸው accounts የሚመጣ እያንዳንዱ ምስልና ቪዲዮ በአካባቢው cache ይደረጋል። በሚበዛበት instance ላይ ይህ በሳምንት gigabytes ነው። የቆዩ የርቀት mediaን በመደበኛነት ያጽዱ፦
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
እነዚህን በዕለታዊ cron ስራ ውስጥ ያስቀምጡ። instanceዎ ካደገ፣ በ.env.production ውስጥ ባሉት S3_* ቅንብሮች mediaን ወደ S3-ተኳኋኝ የobject ማከማቻ ያዛውሩ — ያኔ የVPS ዲስኩ databaseን ብቻ ይይዛል።
ጥገና
- ዝማኔዎች፦ አዲሱን tag ያምጡ፣
docker compose pull፣ release notes እንደሚሉት migrations ያሂዱ፣ እንደገና ያስጀምሩ። ዋና ስሪቶችን አይዝለሉ። - Backups፦ የPostgreSQL dump ያውጡና
.env.productionን በጥንቃቄ ያስቀምጡ — ያለ ሚስጥሮቹ መመለስ አይሰራም። የእኛ restic መመሪያ ከሰርቨር ውጭ ቅጂዎችን ይሸፍናል፣ Managed Backups ደግሞ የሙሉውን ሰርቨር ዕለታዊ የመመለሻ ነጥቦች ይጨምራሉ። - domainኡ ቋሚ ነው። በመላው fediverse በእያንዳንዱ account አድራሻ ውስጥ ተቀርጿል። የመጀመሪያውን account ከመፍጠርዎ በፊት ይምረጡት።
ለቡድን chat ቀለል ያለ ነገር ይፈልጋሉ? የMatrix ሰርቨር የተሻለ ሊስማማ ይችላል።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።