Skip to content
  • 0 Votes
    1 Posts
    0 Views
    radwebhosting@mastodon.socialR
    How to Install #Pixelfed on #Ubuntu VPS (8 Step Quick-Start Guide) This article provides a guide for how to install Pixelfed on Ubuntu VPS.What is Pixelfed?PixelFed is a decentralized, open-source photo-sharing platform similar to Instagram but built on the #Fediverse (federated social networks using the #ActivityPub protocol). It allows users to host their own instances and interact with users across ...Continued https://blog.radwebhosting.com/how-to-install-pixelfed-on-ubuntu-vps/?utm_source=mastodon&utm_medium=social&utm_campaign=mastodon.social #selfhosting #vpsguide #installguide #selfhosted
  • 0 Votes
    1 Posts
    0 Views
    pureacetone@qoto.orgP
    Перевод на русский с интеграцией хэштегов прямо в текст.---# Настройка Fedi-сервера Snac для сети Yggdrasil | DevZone#Fediverse #Yggdrasil #SelfHosting #P2P #LinuxВремя чтения: 15 минут11 маяВскоре после моих [размышлений о p2p](https://devzone.org.ua/post/hrabli-p2p) я решил попробовать развернуть собственный экспериментальный инстанс #Fediverse. Причём сделать это средствами оверлейной сети #Yggdrasil, так как я не планирую покупать выделенный IP или VPS для этой игрушки; вместо этого сервер будет хоститься за модемом — на одноплатнике или даже на ПК, когда я в сети, с динамическим адресом за NAT.Эта заметка в первую очередь написана для себя, но может быть полезна тем, кто, как и я, только начинает эксперименты с администрированием собственного узла Fediverse и интересуется альтернативными сетями в контексте #Linux.## Что такое Snac#Snac #ActivityPub #Minimalism[Snac](https://codeberg.org/grunfink/snac2) — это минималистичная альтернатива серверу #Mastodon, написанная на C, без JavaScript и без необходимости установки PostgreSQL. Все данные профилей хранятся в JSON-файлах. Недавно в сервер была добавлена [поддержка IPv6](https://codeberg.org/grunfink/snac2/pulls/256), поэтому он корректно работает и с диапазоном Yggdrasil `0200::/7`.Поскольку Yggdrasil позволяет бесплатно генерировать неограниченное количество статических IP (на основе приватного ключа #Ed25519), в DNS здесь обычно нет необходимости. Опционально можно прикрутить #Alfis, но лично я этого не делаю (в том числе из-за до сих пор нерешённой проблемы #364), поэтому и не навязываю его в рамках протокола ActivityPub — формат будет просто `username@IPv6`, без необходимости что-то обновлять или «майнить» позже.## Установка#BuildFromSource #LinuxAdmin1. Точный список пакетов для Debian я не знаю — система не новая и многое уже установлено. Согласно [README](https://codeberg.org/grunfink/snac2#building-and-installation), мне понадобились только `libssl-dev` и `libcurl4-openssl-dev` (в Fedora — примерно то же самое, но с суффиксом `-devel`).2. Создаём отдельного системного пользователя для изоляции от потенциальных уязвимостей: ``` useradd -m snac ```3. Для удобства меняем shell на bash в `/etc/passwd`.4. Логинимся `su snac` и переходим в домашний каталог: `cd`.5. Качаем исходники: `git clone https://codeberg.org/grunfink/snac2.git`6. Переходим в каталог проекта: `cd snac2`.7. Компилируем и устанавливаем: `make && sudo make install`.8. Инициализируем хранилище сервера: `snac init /home/snac/storage`.9. Добавляем первого пользователя: `snac adduser /home/snac/storage`.10. Выходим обратно под root: `exit`.## Конфигурация#Networking #YggdrasilУ меня уже установлен и настроен узел Yggdrasil. Если интересно — см. [предыдущую публикацию](https://devzone.org.ua/post/yggdrasil-mereza-z-detsentralizovanym-routynhom) или [официальную документацию](https://yggdrasil-network.github.io/documentation.html).### Адрес подсети Yggdrasil#IPv6Этот шаг можно пропустить и использовать основной адрес `2*`, если порты `80` или `8001` свободны. Но важно понимать: в API ActivityPub сервер Snac сообщает свой адрес другим узлам, и те кэшируют его как часть ID. Поскольку адрес хранится в файлах, а не в БД, заменить его потом будет сложно. Поэтому лучше сразу выделить отдельный адрес, особенно для продакшена.1. `yggdrasilctl getself` — узнаём свой IP и диапазон IPv6.2. `ifconfig lo inet6 add IP` — вместо IP указываем произвольный адрес из полученного диапазона, например `3xx:xxxx:xxxx:xxxx::fed/64`.️ Данные, добавленные через `ifconfig`, не сохраняются после перезагрузки. Команду нужно прописать, например, в `/etc/netplan/01-ygglo.yaml`, `/etc/network/interfaces` или в `systemd`-сервис `yggdrasil.service` (через `ExecStartPost=`).### Nginx-прокси#Nginx #ReverseProxyНа сервере уже установлен Nginx, занимающий порт `80`. Менять это я не хочу, как и светить Snac на стандартном порту `8001`. Поэтому, имея выделенный IPv6-адрес, просто проксирую API на `80`, используя пример из [оригинальной конфигурации](https://codeberg.org/grunfink/snac2/src/branch/master/examples/nginx-alpine-ssl/default.conf```nginxserver { listen [3xx:xxxx:xxxx:xxxx::fed]:80; server_name 3xx:xxxx:xxxx:xxxx::fed; location @proxy { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_pass http://[3xx:xxxx:xxxx:xxxx::fed]:8001; } location /.well-known/webfinger { try_files $uri @proxy; } location /.well-known/nodeinfo { try_files $uri @proxy; } location / { try_files $uri @proxy; } location /fedi/ { try_files $uri @proxy; }}```SSL здесь намеренно отсутствует: #Yggdrasil уже обеспечивает защищённый канал, и дополнительный слой не нужен.Административный API (`admin` и `oauth`) я ограничил по IP, поскольку у клиентов Yggdrasil адреса тоже статические:```nginxlocation ~ /([^\/]+/admin|oauth) { allow ADMIN_IP; deny all; try_files $uri @proxy;}```### Конфигурация Snac#JSON #ConfigРедактируем `/home/snac/storage/server.json`, созданный командой `snac init`:```json{ "host": "[3xx:xxxx:xxxx:xxxx::fed]", "address": "3xx:xxxx:xxxx:xxxx::fed", "port": 8001, "protocol": "http"}```В моём случае протокол намеренно `http`.### Доступ через iptables / ufw#FirewallОткрываю порт только для диапазона Yggdrasil:```ufw allow from 0200::/7 to any port 80```Если не используете Nginx — указывайте реальный порт, например `8001`.### systemd#SystemdНа основе [официального примера](https://codeberg.org/grunfink/snac2/src/branch/master/examples/snac.service```ini[Unit]After=network-online.targetWants=network-online.target[Service]User=snacExecStart=/usr/local/bin/snac httpd /home/snac/storage[Install]WantedBy=multi-user.target```## Бэкапы#Backup #RsyncТак как база — это файлы, резервное копирование тривиально. Использую `rsync` через `crontab -e`:```@daily rsync -av --delete /home/snac/storage /path/to/snac/daily@weekly rsync -av --delete /home/snac/storage /path/to/snac/weekly@monthly rsync -av --delete /home/snac/storage /path/to/snac/monthly```## Использование#FediverseAdminПосле запуска (`snac httpd /home/snac/storage` или через systemd) можно открыть`http://[3xx:xxxx:xxxx:xxxx::fed]` в браузере.### Тест взаимодействия#ActivityPubДля проверки федерации разверните второй узел в Yggdrasil и попробуйте подписку или переписку через Web UI или клиент.### Настройка браузера#Firefox #IPv6При первом использовании Yggdrasil-сайтов в Firefox может понадобиться изменить параметры в `about:config`:* `browser.fixup.fallback-to-https = false`* `browser.fixup.alternate.enabled = false`---#Fediverse #YggdrasilNetwork #Decentralization #AltNet #SelfHosted Fediverse - the social network of the futurehttps://fediverse-decentralize.blogspot.com/2026/01/blog-post_10.html
  • 0 Votes
    1 Posts
    2 Views
    E
    #SelfHosting week 1, phase 4. FINALLY.The main architecture is up and running now. Lemmy, WriteFreely, Castopod, today I'll get WordPress multisite running; my current site on shared hosting, runs a singular website where I created multilingual through "FullSiteEditing" WordPress feature; but it's quite difficult to maintain in long-term so 2 sites with 2 languages will make it better.Now I have upgraded my hosting plan to Hostinger kvm2, and associated my VPS to the huge lifetime 10TB cloud I have, for podcasts. PCloud, through rclone. Next phase will be WordPress, then maybe to point various services to the right domain (plusbrothers.net and not .online). Most passages have been done via command line, and to find the right commands I've used google gemini. Unfortunately for some features, American (big) tech has still been useful. #accessibility #selfhost #activitypub #blog #multilingual #blind #WordPress
  • 0 Votes
    1 Posts
    0 Views
    laura@mastodon.laurahargreaves.comL
    Finally federated!After a truly ridiculous amount of stubbornness, debugging, and duct-taping containers together, my Ghost blog is now fully ActivityPub enabled.You can now follow my blog directly from the fediverse:@laura@blog.laurahargreaves.com #Fediverse #ActivityPub #OpenWeb #SelfHosting #Ghost #IndieWeb #FediTech