activitypub

Back Open Paginator
10.01.2026 22:50
maikel (@maikel@vmst.io)

Does anyone here know of a running Bonfire instance that has federation actually activated?

I want to try different platforms see if any other Activity Pub implementation makes better use of the actual protocol.

Already tried Sharkey, Pixelfed, Hubzilla, Friendica, GoToSocial and Akkoma.

#askfedi #activitypub




Show Original Post


10.01.2026 22:21
objects (@objects@epiktistes.com)

I’m wondering if there are any common or standard approaches to modeling RSS feeds as ActivityPub objects?

I’m thinking of an RSSFeed actor and RSSPost or something for the items but I’d love to follow established patterns.

Friendica supports RSS feeds. Maybe that’s a good place to start?

#ActivityPub




Show Original Post


10.01.2026 21:29
achim (@achim@social.saarland)

I try to implement an #activitypub server in #Rust, have problems talking to #mastodon and would appreciate some help.

I try to send a follow action to Mastodon. The request is - as far as I can tell - signed according to docs.joinmastodon.org/spec/sec

The "keyId" of the signatrue is "pub.saar.social/user/achim/key". Mastodon calls this url as expected and my server returnst: [...]




Show Original Post


10.01.2026 21:20
the-programmers-fulcrum-09-january-2026 (@the-programmers-fulcrum-09-january-2026@newsletter.mobileatom.net)
The Programmer’s Fulcrum: 09 January, 2026

Welcome to this week’s The Programmer’s Fulcrum.

It’s your weekly review of the essential news in the Open Media Network and Fediverse development communities with a focus on devastating big tech via Techno Anarchism. We aim to provide actionable content you can use to destroy Techno Feudalism each week.

IMHO, the best way to do that is to use tools from the Techno Anarchist Manifesto to […]

https://newsletter.mobileatom.net/the-programmers-fulcrum-09-january-2026/ #ActivityPub #ATProto #Bonfire #BridgyFed #CoMaps #CSS #Decidim #DrupalCMS #FAIR #fediverse #Ghost #GitHub #GravCMS #HTML #javascript #Markdown #Mastodon #Matrix #MicroBlog #NodeBB #OMN #p2p #Pear #PostmarketOS #RSS #Webmentions #WordPress



Show Original Post


10.01.2026 15:45
pureacetone (@pureacetone@qoto.org)

Перевод на русский с интеграцией хэштегов прямо в текст.

---

# Настройка Fedi-сервера Snac для сети Yggdrasil | DevZone

#Fediverse #Yggdrasil #SelfHosting #P2P #Linux

Время чтения: 15 минут
11 мая

Вскоре после моих [размышлений о p2p](devzone.org.ua/post/hrabli-p2p) я решил попробовать развернуть собственный экспериментальный инстанс #Fediverse. Причём сделать это средствами оверлейной сети #Yggdrasil, так как я не планирую покупать выделенный IP или VPS для этой игрушки; вместо этого сервер будет хоститься за модемом — на одноплатнике или даже на ПК, когда я в сети, с динамическим адресом за NAT.

Эта заметка в первую очередь написана для себя, но может быть полезна тем, кто, как и я, только начинает эксперименты с администрированием собственного узла Fediverse и интересуется альтернативными сетями в контексте #Linux.

## Что такое Snac

#Snac #ActivityPub #Minimalism

[Snac](codeberg.org/grunfink/snac2) — это минималистичная альтернатива серверу #Mastodon, написанная на C, без JavaScript и без необходимости установки PostgreSQL. Все данные профилей хранятся в JSON-файлах. Недавно в сервер была добавлена [поддержка IPv6](codeberg.org/grunfink/snac2/pu), поэтому он корректно работает и с диапазоном Yggdrasil `0200::/7`.

Поскольку Yggdrasil позволяет бесплатно генерировать неограниченное количество статических IP (на основе приватного ключа #Ed25519), в DNS здесь обычно нет необходимости. Опционально можно прикрутить #Alfis, но лично я этого не делаю (в том числе из-за до сих пор нерешённой проблемы #364), поэтому и не навязываю его в рамках протокола ActivityPub — формат будет просто `username@IPv6`, без необходимости что-то обновлять или «майнить» позже.

## Установка

#BuildFromSource #LinuxAdmin

1. Точный список пакетов для Debian я не знаю — система не новая и многое уже установлено. Согласно [README](codeberg.org/grunfink/snac2#bu), мне понадобились только `libssl-dev` и `libcurl4-openssl-dev` (в Fedora — примерно то же самое, но с суффиксом `-devel`).
2. Создаём отдельного системного пользователя для изоляции от потенциальных уязвимостей:

```
useradd -m snac
```
3. Для удобства меняем shell на bash в `/etc/passwd`.
4. Логинимся `su snac` и переходим в домашний каталог: `cd`.
5. Качаем исходники:
`git clone codeberg.org/grunfink/snac2.gi
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. Если интересно — см. [предыдущую публикацию](devzone.org.ua/post/yggdrasil-) или [официальную документацию](yggdrasil-network.github.io/do).

### Адрес подсети 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`, используя пример из [оригинальной конфигурации](codeberg.org/grunfink/snac2/sr):

```nginx
server {
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 адреса тоже статические:

```nginx
location ~ /([^\/]+/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

На основе [официального примера](codeberg.org/grunfink/snac2/sr):

```ini
[Unit]
After=network-online.target
Wants=network-online.target

[Service]
User=snac
ExecStart=/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 future
fediverse-decentralize.blogspo





Show Original Post


10.01.2026 13:09
20260110-2109-5006 (@20260110-2109-5006@ishii00141.stars.ne.jp)

「コンテンツにネイティブタグとしてハッシュタグを追加し~」がオフでのテスト
#ActivityPub #Mastodon #WordPress

#WordPress のプラグイン #ActivityPub の設定の #Hashtags 「コンテンツにネイティブタグとして #ハッシュタグ を追加し、タグリンクで #tag を置き換えます。」のチェックを外した状態で使用中だが、タグ一覧からタグを選択しない状態でハッシュタグがどうなるかテスト。WordPress内ではリンクにならない。

結果:#Mastodon でも、ハッシュタグの部分はリンクにならなかった。

テスト2:#WordPress と #ActivityPub と #Mastodon はタグ一覧から選択してみる。

https://ishii00141.stars.ne.jp/20260110-2109-5006/


Show Original Post


10.01.2026 12:45
vftdan (@vftdan@mastodon.ml)

Are there #activitypub networks inside non-clearnet networks :thonking:

#yggdrasil #tor #i2p




Show Original Post


10.01.2026 12:25
miri64 (@miri64@ohai.social)

@tofeo and TBH, except for #matrix, which serves a different purpose than #ActivityPub and #ATProto ((private) chat vs. social media posting), I never heard about these.




Show Original Post


10.01.2026 12:21
tofeo (@tofeo@mstdn.social)

RE: ohai.social/@miri64/1158702654

Again a new presentation of #activitypub and #atprotocol




Show Original Post


10.01.2026 11:55
DePemig (@DePemig@social.coop)

I have a question about #activitypub :
Is there a method for: Following from account xyz only post of a certain type (e.g., images) or a certain hashtag (#abcd).

As an example: I would like to be able only to see the comics that a comic artist posts, but not their further opinion. (type is only image)

Another example from the sender side: I am a music group and I would like to invite people to: "Follow #concert_announcement for @mycrazycoolband"

Maybe @benpate knows about this?




Show Original Post


10.01.2026 11:12
miri64 (@miri64@ohai.social)

Since there is still the (justified by governance but technically wrong) rumor that #BlueSky is centralized: Please have a look at this video makertube.net/w/qnVNkHWSmgUV6u. I agree with most of the opinion part there, but it only represents a snapshot in time: 1 draft submitted by BlueSky authors is already accepted by one of the #IETF WGs and 2 more are in an early stage. Overall, I think #ATProto looks very promising and could, if opened, in the long run solve some problems I see with #ActivityPub.




Show Original Post


10.01.2026 09:34
ottoto2017 (@ottoto2017@prattohome.com)

#Fediverse を調べています。

1年のFediverseの進歩について纏めです。(別紙参照)

アプリで増えたのが、
ghost   +7,904
wordpress  +992
gotosocial  +408

どれも #activitypub をサポートしたブログプラットホームで個人のページと言う感じ。 #wordpress と同じようなもの。

Fediverse のドメイン数が増えているのは、このおひとり様ブログの増加に起因しているようだ。

肝心の #Mastodon サーバー数は減少している。少し寂しい。

#prattohome #fediversescan #ghost #gotosocial





Show Original Post


1 ...145 146 147 148 149 150 151 152 153 154 155 ...360
UP