Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ActivityPub Server の snac その2

Avatar for Kenichiro MATOHARA Kenichiro MATOHARA
November 16, 2025
4

ActivityPub Server の snac その2

Avatar for Kenichiro MATOHARA

Kenichiro MATOHARA

November 16, 2025
Tweet

More Decks by Kenichiro MATOHARA

Transcript

  1. SNS でのイベント等のアナウン スに軽量なsnacを利用 軽量,依存関係が最小限 マルチユーザー,コマンドラインで操作可能 データベース,JavaScript,Cookies なし Mastodon API のサポート

    → Mastodon アプリが利用可能 開発も活発 有料ホスティングサービスもあり $2.75/mo grunfink/snac2: A simple, minimalistic ActivityPub instance written in portable C - Codeberg.org Snac2 Hosting and Support | K&T Host 5
  2. 404の出るtoot Debian package版 snac は apt install 時に /social 以下で

    動く設定で初期化される この状態で投稿してしまったものが / に設定変更したあとアクセスで きなくなっていたよう 今回は proxy の設定で / も /social も転送するようにした apt install snac2 の後 snac daemon を停止し、 /var/lib/snac2 内を空にして snac init を手動でやり直すと良さそ う 12
  3. key.json adduser コマンド実行時に作成されるRSA 秘密鍵と公開鍵が一緒 になったアカウント用の鍵 以下は見やすいように適時改行を追加 $ cat snac/user/test/key.json {

    "secret": "-----BEGIN PRIVATE KEY-----\n MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGdsIJ/cpRrbBG\n IMx210EwEEfwsQjyfPAkj19la+PmAkhaZ30AoN+wW6gvtwl0Wouskvo0MHdWAVaj\n -------------------------- 8< 中略 8< ------------------------------- /z8PiszFcNp38wP5wcHCwpd4mZ+HT7RK3oBlLYvnTefrkatEaDnGqWW5nhWCoIX/\n 5cUaud2OmfhHdpOOpdQZstQ=\n -----END PRIVATE KEY-----\n", "public": "-----BEGIN PUBLIC KEY-----\n MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxnbCCf3KUa2wRiDMdtdB\n MBBH8LEI8nzwJI9fZWvj5gJIWmd9AKDfsFuoL7cJdFqLrJL6NDB3VgFWo67GOagx\n -------------------------- 8< 中略 8< ------------------------------- 18Kbui7ddF31K+v6e15+KPEXV0nqbvucJdd8wpQz6HOzUZVjw7k/zPYqmLBW+t9e\n e8S18zpZu22T3+rBOm7JZYx2LNbC67Wxp+mNFSHfrSDmKJh6z4l6eASlkDez44DX\n 4QIDAQAB\n -----END PUBLIC KEY-----\n" } 18
  4. snac の bug? Dbian 13 trixie の package版 snac 2.75-2

    と snac 最新の 2.84 を trixie で build したものでそれぞれ100個アカウントを作 成、確認 それぞれ2件ずつ壊れた鍵が見つかった $ for i in {0..100} do snac adduser snac-data test${i} done $ cat snac/user/*/key.json | jq ."public" | grep -v 'KEY\-\-\-\-\-\\n"' "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0DdABNyiuY81TXbCMrYD\ne+BxMC2GYFSdIoUVxQ1 "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTbyNmoDh7NVXX8+tNg3\nYYQinaTKHQ0EVYl7f8C 23
  5. Debian backports 版の snac を使う Debian stable は 2.75 で少し古く、新しくならない(セキュリティ

    修正はされるはず) Debian stable-backports は最新に追従していそう(設定時 2.83、現在2.84) 動作のおかしい部分がバグだとしたら治るかも(鍵が壊れる問題は未 解決) $ rmadison snac2| grep -v debug snac2 | 2.75-2~bpo12+1 | oldstable-backports | source, amd64, arm64, armel, armhf, i386, mips64el, mips snac2 | 2.75-2 | stable | source, amd64, arm64, armel, armhf, i386, ppc64el, riscv snac2 | 2.84-2~bpo13+1 | stable-backports | source, amd64, arm64, armel, armhf, i386, ppc64el, riscv snac2 | 2.84-2 | testing | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s39 snac2 | 2.84-2 | unstable | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s39 26
  6. Debian 13 trixie に backports を設 定 /etc/apt/sources.list.d/debian-backports.sources を作成 パッケージ情報更新

    Debian Backports Types: deb deb-src URIs: http://deb.debian.org/debian Suites: trixie-backports Components: main Enabled: yes Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg $ sudo apt update 27
  7. backports の snac を導入 普通に install すると backports は使われない backports

    から導入するにはパッケージ名に /trixie-backports を付けて導入する もしくは -t trixie-backports をつてて導入すると不足した依存関 係も導入される 導入済みの backports パッケージは通常と同じ優先度100に固定 される いつもの apt upgrade で更新される $ sudo apt install snac2/trixie-backports $ apt install -t trixie-backports snac2 28
  8. snac アップグレード バージョンアップ時にはupgrade コマンドを実行する $ snac | grep upgrade upgrade

    {basedir} Upgrade to a new version $ sudo -u debian-snac snac upgrade /var/lib/snac2/ 19:45:50 Linux sandbox not compiled in 19:45:50 OK 29
  9. カスタム絵文字 各インスタンスでよくカスタム絵文字が使われている snac でも対応している emojis.json を編集する : で囲まれた本文中で使う単語と、対応した文字コードやURLを指定 する ファイルは保存した時点で反映される

    :tux:, :tuz: を追加してみた ":beer:": "&#127866;", ":beers:": "&#127867;", ":munch:": "&#128561;", ":thumb:": "&#128077;", ":susie:": "/susie.png", ":tux:": "https://www.kagolug.org/snac-emoji/Tux.png", ":tuz:": "https://www.kagolug.org/snac-emoji/Tuz.png" 32
  10. その他 httpd を apachw2 httpd から lighttpd あたりに変更したい (多分軽くなる) FastCGI化(アクセスが少ないと有利そう)

    build option の変更 source buildで個人向けにも立ち上げてみた → snac.matoken.org 35
  11. 奥付 発表 発表者 2025-11- 16(sun) 利用ソフトウェア NeoVim + textlint +

    ライセンス 鹿児島Linux勉強会 2025.11(オンライン開催) Kenichiro Matohara(matoken) Asciidoctor Reveal.js CC BY 4.0 37