Вот сжатая версия без воды, с хэштегами прямо в тексте:
Настройка #Fediverse-сервера #Snac в сети #Yggdrasil
После экспериментов с #P2P развернут минимальный инстанс #Fediverse без VPS — за NAT, на локальной машине через #Yggdrasil.
Что такое #Snac
#Snac — минималистичный сервер #ActivityPub:
написан на C
без JS и PostgreSQL
хранение в JSON
поддержка IPv6 (включая
0200::/7#Yggdrasil)
Адреса формата username@IPv6, без DNS. #Ed25519 генерирует статические IP. #Alfis — опционален (не используется).
Установка (#Linux #SelfHosting)
Минимум зависимостей:
libssl-dev
libcurl4-openssl-dev
Далее:
useradd -m snac
su snac
git clone https://codeberg.org/grunfink/snac2.git
cd snac2
make && sudo make install
snac init /home/snac/storage
snac adduser /home/snac/storage
Сеть (#Networking #IPv6)
Лучше сразу выделить отдельный IPv6:
yggdrasilctl getself
ifconfig lo inet6 add <IPv6>/64
Адрес фиксируется в #ActivityPub, менять потом сложно.
Прокси (#Nginx #ReverseProxy)
Проксирование с 80 → 8001:
proxy_pass http://[IPv6]:8001;
SSL не нужен — шифрование даёт #Yggdrasil.
Админ-доступ ограничен по IP.
Конфиг #Snac (#JSON)
/home/snac/storage/server.json:
{
"host": "[IPv6]",
"address": "IPv6",
"port": 8001,
"protocol": "http"
}
Доступ (#Firewall)
Открыт только диапазон #Yggdrasil:
ufw allow from 0200::/7 to any port 80
Автозапуск (#Systemd)
ExecStart=/usr/local/bin/snac httpd /home/snac/storage
Бэкапы (#Backup #Rsync)
Файловая база → простой rsync:
@daily rsync -av --delete ...
Использование (#FediverseAdmin)
Запуск:
snac httpd /home/snac/storage
Доступ:
http://[IPv6]
Тест федерации — второй узел в #Yggdrasil.
#Firefox (#IPv6)
В about:config:
browser.fixup.fallback-to-https = false
browser.fixup.alternate.enabled = false
#Fediverse #YggdrasilNetwork #AltNet #Decentralization #SelfHosting