ã¯ããã«
ããã¯Ruby Advent Calendarã®7æ¥ç®ã®è¨äºã§ãããFediverse (4) Advent Calendar 2024ã®äºæ¥ç®ã®è¨äºã§ãã
qiita.com
adventar.org
å
æ¥æ¾æ±ã§éå¬ãããRubyWorld Conference 2024ã§ãLTããActivityPub ãªã¬ã¼ãµã¼ãã®è©±ãããã詳細ãªçµç·¯ãªã©ãå«ãã¦æ¸ãã¦ãããã¨æãã¾ãã
speakerdeck.com
ActivityPub ãªã¬ã¼ãµã¼ãã¨ã¯ï¼
ActivityPub ãªã¬ã¼ãµã¼ãã¯ç°¡åã«ããã¨Fediverseã®ãµã¼ãå士ã®é£åãå¼·åããããã®ãµã¼ãã«ãªãã¾ãã
Fediverseã§ã¯äºãã®ãµã¼ãã«ããã¦ã¼ã¶ã¼ããµã¼ããè¶
ãã¦ãã©ãã¼ããããã¨ã§äºãã®é£åã¿ã¤ã ã©ã¤ã³ã«å
¬éæ稿ãæµããããã«ãªãã¾ãã
ãã®ãã2017å¹´é ã®Mastodonã§ã¯ãµã¼ãã建ã¦ãã°ããã ã¨ãã©ãã¼ãã¦ããã¢ã«ã¦ã³ãããªããããé£åã¿ã¤ã ã©ã¤ã³ã«å¤é¨ã®ãµã¼ãã®æ稿ãæµããªãã¨ãããã¨ãçºçãã¦ãã¾ããã
å½æã®è¨æ¶ã¯å°ããããµãã§ãããåå人ã®å ´åã¯Twitterãªã©ã§ãµã¼ãã建ã¦ã人ã®ã¢ã«ã¦ã³ããè¦ã¤ãã¦ããããªã¢ã¼ããã©ãã¼ãã¦ãµã¼ãå士ã®ã¤ãªãããå¢ããã¦ãã£ãè¦ããããã¾ãã
ãããã£ãä¸ã§Mastodonã§ã¯ v2.5.0ãããªã¬ã¼ã¨ããæ©è½ãå°å
¥ããã¾ããã
github.com
ãã®ãªã¬ã¼æ©è½ã§ã¯ã以ä¸ã®å³ã®ããã«ãµã¼ãAã¨ãµã¼ãBãããããé£åãã¦ããªãã£ãå ´åã§ãããããã®ãµã¼ãã®æ稿ããªã¬ã¼ãµã¼ããä¸ç¶ãã¦é
éãã¦ãããããã«ãªãã¾ããã
ActivityPub ãªã¬ã¼ãµã¼ãã¨ã¯Fediverseã®é£åãå¼·åããããã®ããã®å½¹å²ãæããã¦ããã¾ãã
ãã ãªã¬ã¼ãµã¼ãã¯éã®å¼¾ä¸¸ã§ã¯ãªããã¡ãªãããåå¨ãã¾ãã
ä¾ãã°ã¹ããã¯ãæããå°è¦æ¨¡ãªãµã¼ããéç¨ãã¦ããå ´åããªã¬ã¼ãµã¼ãããé
éããã¦ãã大éã®å
¬éæ稿ãå¦çããè² è·ã«èããããªãå¯è½æ§ãããã¾ãã
ã¾ããªã¬ã¼ãµã¼ãã«åå ãã¦ãããµã¼ãã®è¦æ¨¡ã«ãã£ã¦ã¯å¤§éã®å
¬éæ稿ããªã¬ã¼ãµã¼ããçµç±ãã¦èªåã®ãµã¼ãã«æµãã¦ããå¯è½æ§ãããã¾ããããªã¬ã¼ãµã¼ãèªä½ã«ãè² è·ããããã¾ãã
ãªãã§ä½ããã¨æã£ãã®ã
ã¾ããªã¬ã¼ãµã¼ãã®å®è£
ã¨ãã¦ç¾å¨æ¥æ¬ã§ããç¥ããã¦ãããã®ã¯ãããã以ä¸ã®äºã¤ã«ãªãã¾ãã
github.com
github.com
ããããCrystalã¨Goã§æ¸ããã¦ãã¾ãã
ãã®ã»ãã«ãRustã§ã®å®è£
ãNode.jsã§ã®å®è£
ãªã©ãããã¾ãã
git.asonix.dog
github.com
Rubyã®å®è£
ã«é¢ãã¦ã¯ç¾å¨ãéçºããã¦ãããã®ã¯ãªããæåæã«ãããã¿ã¤ãçã¨ãã¦éçºããããã®ãããããããéç¨ããã¦ããæ¹ããä¸äººããã¨ããç¶æ³ã§ããã
ã¾ãRubyã§å®è£
ããããªã¬ã¼ãµã¼ãã®ã¡ã³ããã³ã¹ã大å¤ãã(主ã«Rubyã¨Railsã®ã¢ãããã¼ã対å¿)ã§ã以åã«Rubyã¨Railsã®ã¢ãããã¼ã対å¿ã®PRãæãããã¯ãã¦ãã¾ãããããã以ä¸ã®ãã¨ã¯åãã§ãã¦ããªãç¶æ
ã§ããã
ç¹ã«ãããã¿ã¤ãçã¨ãã¦éçºãããèæ¯ããããã¹ãããªããå®éã«ãµã¼ãã建ã¦ã¦åä½ç¢ºèªãããªããã°ãªããªãã®ã大å¤ã§ããã
ãããªç¶æ³ã ã£ãã®ã§ããã®ã¡ã³ããã³ã¹ãã«ããã®ã©ãã«ãã§ããªãããªããã¨æãããç¾åããRubyã®å®è£
ãåèã«ãªã¬ã¼ãµã¼ãã®å®è£
ããã¹ããæ¸ãã¤ã¤ãããããªãã¨èãå§ãã¾ããã
ãããã¡ããã©å»å¹´ã®å¹´æ«ããä»å¹´ã®å¹´å§ã«ããã¦ãããã§ãçµæ§ç±ä¸ãã¦ãã£ã¦ãããã§ããä»ã®ã¨ããã§ãªã½ã¼ã¹ãå¿
è¦ã«ãªãå¾ã
ã«ç±ãå¼ãã¦ããã¾ããã
ãããªãããªãã¦ããæã«ä»å¹´ã®RubyWorld Conferenceã§Mastodonã®éçºãã¼ã ã®Andy Piperãããæ¥æ¥ãããã¨ããã®ãè´ããããã£ããMastodonã®äººãæ¥ããã ããActivityPubãFediverseã®è©±ããããï¼ãã¨æããããæ°ãåçãããªã¬ã¼ãµã¼ãã®éçºãåéãã¾ããã
2024.rubyworld-conf.org
ã¾ããªã¬ã¼ãµã¼ãéçºãåéãããããã«Rails 8ãç»å ´ãã¾ããã
ããããªã¬ã¼ãµã¼ãã®éçºãããå¾æ¼ãããã¨ãããããã¾ãã
rubyonrails.org
ã¨ããã®ã
- 証ææ¸ã¨ãNginx使ããã¨ãã©ãããï¼ã¨ã
- Redisã©ãããï¼ãã¼ã¿ãã¼ã¹ã©ãããï¼ã¨ã
- ãããã¤ãSSHã§ãµã¼ãå
ã«å
¥ã£ã¦æåãããããããã¯Dockerfileãªã©ãããæãã«AWSã¨ãã§ã¤ãããã¨ã
ã¨ããæãã§ããããããªã¬ã¼ãµã¼ãã建ã¦ã&ã¡ã³ããã³ã¹ããã®ã大å¤ã ã£ããã§ããã
å人çã«ã¯ããè¯ãæãã«ãªã¬ã¼ãµã¼ããåæ£ãé²ãæ¹ãè² è·ãåæ£ã§ããã¨æã£ã¦ããã®ã§ããªã¬ã¼ãµã¼ãã®å»ºã¦ã«ããã¯ã©ãã«ãã§ããªãããªã¨èãã¦ã¾ããã
ãããRails 8ã使ããã¨ã§
- Thrusterã§ã®è¨¼ææ¸ã®èªåæ´æ°&Nginx建ã¦ãªãã¦è¯ã
- Solid Queueã使ãã®ã§Redisãä¸è¦ã«ãªããæ¬çªç°å¢ã§SQLiteã使ããã®ã§è¯ã
- ãããã¤ã¯Kamal2ããããªã«ãã£ã¦ãããã®ã§é常ã«è¯ã
ã¨ããæãã«ãªãããã ã£ããã§ãããã
ãããã£ãå¾æ¼ããããããã£ã¡ãããããã¨éçºãåéããã®ã11æã®ä¸æ¬ãããã§ããã
ä½ã£ããã®
ãããªãããªã§ä½ã£ããã®ã¯ä»¥ä¸ã«ãªãã¾ãã
github.com
Rails 8ã§å
¥ã£ãKamal2ãThrusterãSolid Queueããã®ã¾ã¾ä½¿ããããã£ã¨å®è£
ãã¾ããã
ã¾ãæ¬çªç°å¢ã®ãã¼ã¿ãã¼ã¹ã¯SQLiteãæ¡ç¨ãã¾ããã
ãªã¬ã¼ãµã¼ãã®æ§è³ªä¸ãé
éããå
¬éæ稿ã¯ãã¼ã¿ãã¼ã¹ã«ä¿æããå¿
è¦ã¯ãªããå¿
è¦ãªã®ã¯åå ãã¦ãããµã¼ãã®æ
å ±ãªã©ã ã£ãã®ã§ãSQLiteã§ãå
åããã ãã¨ããå¤æããããæ¡ç¨ãããã¨ã«ãã¾ããã
ç¾ç¶ã®æ©è½ã¨ãã¦ã¯
- Mastodonã®ãªã¬ã¼ããµãã¼ã
- Misskey(ã¨ãã®ãã©ã¼ã¯ãªã©)ã®ãªã¬ã¼ããµãã¼ã
- PleromaãAkkomaãªã©ã®Actorãªã¬ã¼ãé¨åçã«ãµãã¼ã(ãã åé¡ããã£ã¦ããã¥ã¡ã³ãã«ã¯æ¸ãã¦ããªã)
- åå ãµã¼ãã®ç®¡çç»é¢
- ã¸ã§ãã®ç®¡çç»é¢
- Google Authenticatorãªã©ã§ä½¿ããOTPããµãã¼ã
ã¨ããæãã«ãªã£ã¦ãã¾ãã
試é¨çã«ãªã¬ã¼ãµã¼ãã¨ãã¦éç¨ããéã«ã¯ã¡ã¢ãª1GB CPU1ã³ã¢ã®ã¹ããã¯ãæãç®ãªãµã¼ãã§ããµã¯ãµã¯ã¨åãã¦ããã®ã§ä¸ã
ããæãã§ããã
ã®ããããã®ãååããããè² è·è©¦é¨ã¨ãã¦Fedibirdããã®é
éãå¦çã§ããã確èªãã¦ã¿ã¾ããã
ã¸ã§ãã®ç®¡çç»é¢ããè¦ã¦ããæãã ã¨ãFedibirdãåå ããåãä¸æéã§1000ã¸ã§ãã¨ããããã ã£ããã§ãããåå å¾ã¯å¤§ä½æ¯å1000 ~ 2000ã¸ã§ãä½ãå¦çãã¦ãã¦è² è·ãããå¡©æ¢
ã«å¢ãã¦ã¾ããã
ç¨ã«é
éå
ã®ãµã¼ãã¸ã®ãªã¯ã¨ã¹ããé·å¼ãé
延ãããã¨ã¯ããã¾ããããããã§ãåºæ¬çã«ã¯å³æã§ã¸ã§ããæãåã£ã¦ãã¾ãããããªããã¤ãµã¼ãèªä½ãè² è·ã§ãã¦ã³ããã¨ãããã¨ããªãã£ãã®ã§è¯ãæãã§ããã
ç¾ç¶ã®éç¨
ç¾å¨ã¯KAGOYAããã®ã¡ã¢ãª1GBãCPU1ã³ã¢ ãã¹ãã¬ã¼ã¸25GBã§ãªã¬ã¼ãµã¼ããéç¨ãã¦ãã¾ãã
ãªã®ã§æ550åãããã§ãªã¬ã¼ãµã¼ãã建ã¦ã¦éç¨ã§ããã®ã§å¤§åã財å¸ã«ãåªããã¦å©ãã£ã¦ã¾ããã
relay.gamelinks007.net
åå ãµã¼ããå°è¦æ¨¡ãªãµã¼ãããä¸äººæ§ãµã¼ãã®äººã«çµã£ã¦ããã®ã§è² è·ã®é¢ãå¿é
ã¯ãªãããã¨ããæãã§ãã
ã
ä»å¾
ä¸æ¥ãããã®é
éãã¦ããå
¬éæ稿ã®æ°ãã°ã©ãã§è¡¨ç¤ºãããã¨ãããã£ã¦ããããã§ããã
å¤åãããããã»ããããã®ãªã¬ã¼ãµã¼ãã«åå ããã¨ã©ããããã®è² è·ãå¢ããã ããï¼ãã¨ããã®ã確èªããããã¨æãã¾ããã
ã¾ãå°è¦æ¨¡ãªãªã¬ã¼ãµã¼ãã建ã¦ããããªã£ã&ããªãå®ãæ¸ã¿ããã¨ããã®ãããããªã¬ã¼ãµã¼ãã建ã¦ã¦ã¿ãã人åãã«ãã©ãã¼ã¨ããã¦ããããã§ããã
ãã¨å人çã«ã¯å°è¦æ¨¡ãªãã¼ããªã¬ã¼ãµã¼ãã¨ãã¦éç¨ãã(å¤ã®å人é¢ä¿ã®ãµã¼ãã¨ã³ã¸ã³çãªæãã§)ã¨ããã§ããããªã®ã§ãã®ãããããã£ã¦ã¿ãã¨é¢ç½ãã®ã§ã¯ã¨èãã¦ã¾ãã
åèè¨äºãªã©
blog.noellabo.jp
blog.noellabo.jp
blog.yukimochi.jp
joinfediverse.wiki