#activitypub
436 posts · Last used 1h
Boosted by @fedicat@pc.cafe
DrFed 0.1.0: Our first release
DrFed is a web-based platform for developing and debugging ActivityPub implementations, built by the team behind Fedify.
Today we are releasing DrFed 0.1.0, our first release. It is an MVP: you can run DrFed locally, create test instances and actors, store test objects, and inspect incoming activity deliveries in the web UI.
To be honest, DrFed is not yet especially useful as an ActivityPub debugger. Much of the tooling we have planned is still ahead of us. We are releasing this version to make our progress visible and give you something you can install and try while development continues.
Install and sign in
DrFed 0.1.0 is available on npm as @drfed/drfed. You need Node.js 26 or newer. Install the package globally to make its four commands available on your PATH:
npm install --global @drfed/drfed@0.1.0
Create an account before starting the server, using the same data directory for both commands:
drfed-account create --data-path .pgdata \
--email alice@example.com --name Alice
drfed-server --root-origin http://drfed.localhost:8888 \
--data-path .pgdata --mail-log-content
Replace the email address and display name with your own. This example uses PGlite, so you do not need a separate database server. Account creation prepares the database, and the server applies pending migrations on startup. PGlite allows only one process to own its data directory, which is why account creation comes first.
Open http://drfed.localhost:8888 choose Sign in, and enter the email address you used above. The local example prints a login link in the terminal; follow it to sign in. The default mail transport does not deliver email, and --mail-log-content explicitly enables printing message contents for local testing. For a service deployment, configure SMTP or another supported mail transport instead.
The installation guide also covers installing into a local directory and running the commands with npx.
A workspace of test instances
After signing in, open Workspace and choose New instance. DrFed generates an identifier for the instance and gives it a subdomain of your configured root origin. Each instance runs as an ActivityPub server, with its own actors and inbox.
For example, with a root origin of https://drfed.example.com an instance named example would live at https://example.drfed.example.com The instance page lists its NodeInfo, WebFinger, and shared inbox endpoints, with copy buttons for using those URLs in your own tests.
The local setup above is useful for exploring the UI and making requests from your own machine. To receive requests from other servers, you need a publicly reachable deployment with wildcard DNS and HTTPS for the instance subdomains. A reverse proxy must preserve the original Host header. See the server README for the deployment details.
Generate actors and create objects
On an instance page, choose Actor and enter how many actors to generate. DrFed creates test identities with generated usernames. An actor's detail page shows its handle, identity, and federation endpoints, including its inbox and outbox. You can copy these addresses into requests from the ActivityPub application you are developing.
Choose Object on the instance page to create a Note or Article attributed to one of its actors. The form accepts an optional name, HTML content, and explicit ActivityPub addressing as JSON. For example, this addresses an object to Public:
{"to": ["https://www.w3.org/ns/activitystreams#Public"]}
The actor page lists its stored objects and shows their HTML as source text. Publicly addressed local objects and their Create activities are also available through ActivityPub, including the actor's outbox. Creating an object does not deliver it to remote servers. This is a way to prepare content for another implementation to fetch, rather than a general activity-sending tool.
Inspect incoming activity deliveries
When your application sends an activity to a DrFed instance's inbox, the instance's Activity log records the delivery. Each entry shows the activity type, status, sender and destination, and time. Expand an entry to inspect and copy the recorded JSON-LD; scroll up to load older entries.
This screenshot shows a deliberately unsigned test request. The inbox refused it with HTTP 401, and the log records it as unverified. Seeing a request in the log does not mean DrFed authenticated its sender or accepted its activity.
DrFed also stores eligible authenticated incoming Create activities containing Note or Article objects. Other activity types can be recorded without becoming stored objects. Delivery contents are restricted to instance members and administrators. The current UI lets you inspect recorded history; it does not yet provide live updates, search, or filters.
Four commands for running DrFed
The npm package includes the commands needed to run and maintain a deployment:
Command
Purpose
drfed-server
Run the backend and embedded web frontend, together by default.
drfed-account create
Create a local account before signing in.
drfed-migrate
Apply database migrations, or inspect migration history with --check.
drfed-web
Run the frontend separately against a DrFed backend.
PGlite stores data in a local directory. You can instead select PostgreSQL with --postgres-url or its alias --database-url. Stop a PGlite server before using the account or migration commands against its data directory. To prepare and then check that database without starting the server:
drfed-migrate --data-path .pgdata
drfed-migrate --data-path .pgdata --check
All four commands accept an explicit TOML configuration file through --config, as well as the relevant DRFED_* environment variables. CLI options take precedence over environment variables, then TOML, then defaults. --print-config shows the effective settings and their sources with secrets redacted. See the configuration guide and CLI reference for the options, mail transports, and separate frontend setup.
Shell completions are available for Bash, zsh, fish, PowerShell, and Nushell. For example:
drfed-server completion bash > drfed-server-completion.bash
source ./drfed-server-completion.bash
Replace drfed-server with another command to generate its completion script. Installation does not activate completions automatically; the completion installation instructions explain persistent setup for each shell.
Current limits and documentation
This release has rough edges. Directly opening an instance detail page can terminate the installed server with a Seroval serialization error. We found this while preparing these notes and are tracking it in #132.
The broader debugging tools described in our project overview, such as a step-by-step signature debugger, JSON-LD comparison tools, and WebFinger/NodeInfo validators, are goals for the project. They are not available as dedicated tools in this release. The object creation form also does not yet send activities to arbitrary remote inboxes.
Our documentation is still incomplete and not yet organized into a systematic user guide. Some overview text describes the platform we intend to build, so it should not be read as a list of completed 0.1.0 features. For now, start with README.md, the CLI package README, and the installation and configuration pages under docs/.
In the next version, we will publish a Docker image alongside the npm packages, making it easier to run DrFed without setting up Node.js yourself.
Thanks, and what comes next
Thank you to the four people on the DrFed development team who have brought us to this first release, listed alphabetically:
ChanHaeng Lee (@2chanhaeng@hackers.pub)
Hong Minhee (@hongminhee@hollo.social)
Hyeonseo Kim (@gaebalgom@hackers.pub)
Jiwon Kwon (@z9mb1@hackers.pub)
We also thank NLnet and the NGI0 Commons Fund for funding DrFed's development. Their support gives us time to build this free software tool for ActivityPub developers. You can read more on NLnet's DrFed project page.
We will keep working to make DrFed more useful for investigating federation failures. We hope you will follow the next stages of its development. Release history is kept in CHANGES.md.
Replying to
まだ #Twitter が #X になる前、イーロン・マスクが買収とほぼ同時に
< ここ #VivaldiSocial
を含めた #Mastodon
のサーバーのドメインを「有害サイト」として投稿できなくしたり
<
とか代替 SNS を匂わすアカウントをいきなり凍結したり(自分は当時それは免れたけど周りに何人かそういう人がいて自分も覚悟してはいた)
< サードパーティー開発者を API からいきなり BAN
などなど、"やりはじめた" 3年くらい?前から自分は「こりゃあかんな」と思って、同時期に立ち上げられたここ #VivaldiSocial
に軸足を移した(その後 #X に命名変更される直前にアカウント消した)わけだけど、
今となっては当時の Twitter でフォローさせてもらってたのと同じくらいのアカウントをここからフォローしてて、仕組み上グローバルな串刺し検索ができない #Fediverse
でも、自分がウォッチしたい情報は自然と(文字通り人づてに)流れてくるようになったし、
Threads の
対応(ちょっと中途半端なままではあるにせよ)とか、Bluesky からブリッジを通して
に流れてくる投稿とか、#ActivityPub
の恩恵で適度に外部の情報も自分のタイムラインに流せるようになってきて、Twitter 時代に自分が意識的にフォローしてた人々の投稿も徐々にここから見えるようになってきたし、
さらに
はクライアントもたくさん選択肢があって楽しい( #PhanpySocial は既存のソーシャルメディアの UI のなかでもトップレベルに気に入っている)し、
つまり、いまから "移住先" を探すみなさんにも伝わったらいいなあと思うことは(決してマウントを取りたいわけではなく、シンプルに「オススメしたい」という気持ちで)
< #Mastodon
でも #Misskey
でもそれ以外のなにか(技術があるならお一人様サーバーとか)でもいいから #Fediverse
なアカウントを持っておいたらいいと思う👍
< 時系列タイムラインでもリストとかちゃんと活用すれば、十分タイムラインは追っていける👍
<(インフルエンサーが攻略するべき対象としての)アルゴリズムとか、その指標としてのインプレッションみたいな力学が働いていない場所は、やっぱ比較的平和っすよ👍(加えてブロックとかミュートもちゃんとできるし🛡️
ってことかなあ 
Boosted by @fedicat@pc.cafe
We are preparing a FEP for our Ephemeral Stories feature!
It's more than just a special followers only post that expires after 24 hours, we also support rich text overlays, hashtags, links and mentions that require proper implementation.
We've supported Stories for years, but only delivered to known Pixelfed servers, but that is going to change once we finish the v2 rollout!
Stay tuned.
#pixelfed #pixeldev #stories #fep #activityPub
Considering the #TagsPub mess and the fact that it's made by a co-creator of the #ActivityPub protocol: is AP fundamentally incapable of doing consent by default and if so, how to replace it by a private-by-default protocol where every interaction must be authorized by all parts?
Boosted by @gvenema@fairmove.net
I was unhappy with most of the #music tech products out there.
So I built Songhive as a self-hosted music platform that had everything I wanted:
💿 Standard music library management. Playlists, albums, tags, genres etc., plus automatic deduplication and audio metadata management over MusicBrainz
📂 Support for music from external cloud storage. Plug your S3 bucket, Dropbox account, Google Drive or Nextcloud folder loaded of MP3 files, and manage them under one roof
☁ ️Integration with external music providers (only TIDAL and YouTube for now), so you can import your playlists and favourite songs onto your own server
💰 Support for payments. Are you a tech enthusiast who would like to host a small music server for their family and friends, and would like them to contribute to the costs for hosting their music collections? You can activate subscriptions with custom amounts and custom billing periods on your platform. Are you a musician tired of being ripped off by traditional centralized music streaming platforms, labels and other middlemen, while having no control over your catalog and distribution? You can upload your tracks to a #Songhive instance, or host your own (ideal if run a small music label), connect your Stripe payout account, put individual tracks or albums on sale, and generate direct download links
🗣️ Full social integration over #ActivityPub. Songhive is basically a Mastodon instance with a music library around, or a Jellyfin instance with a Mastodon server around. Publish your tracks and albums, and they'll automatically appear on your followers' timelines. You can also share content with other Songhive or Funkwhale instances, follow Mastodon accounts and interact with them
📊 Listening stats and support for scrobbling to last.fm / libre.fm
🔊 #Subsonic API, so you can stream music from your local instance over any Subsonic-compatible app or speaker
🔁 Ability to #share your private tracks, playlists or collections with others through retractable share links
📻 Live radios! Create your playlists or listening queue, and stream it over Icecast, Snapcast, or native HTTP music streams. Build your radio station and share it as a simple link. It also supports live recording. Ideal for live podcasts, for streaming concerts or jams, or add some DJ-style talk between the tracks on your radio
🛜 Podcasts, with support for synchronization over any gPodder-compatible app
🔗 Links
🏠 My own instance: manganiello.music
📻 My own 24/7 live radio (I may occasionally perform some guitar + loop station live jams on it too): manganiello.music/streams/fabio.mp3
🛠️ Codebase: git.fabiomanganiello.com/songhive (includes documentation to run your own Docker stack)
🛠️ Github mirror: github.com/blacklight/songhive
Boosted by @fedicat@pc.cafe
Week in Fediverse 2026-10-09 Servers
- Hollo v0.9.22
- PieFed v1.8.0
- Mitra v5.11.0
- Mbin v1.11.0
- Catodon v26.10.0
- NeoDB v0.19.6.3
- NodeBB v4.16.2
- Lemmy Development Update September 2026
Clients
- Tusky v33.0
- Pachli v3.9.1
- IceCubesApp v2.1.4
- Summit v1.87.0
- Pixelfed Mobile App v2.0.0
- Aria v1.5.15
For developers
- Fedify security updates: 2.0.30, 2.1.26, 2.2.15, 2.3.10, and 2.4.0
Protocol
- FEP-4f18: ActivityPub Network Time
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/01a0fe1a-a0fe-7d20-895a-b18c4561484c
Boosted by @gvenema@fairmove.net
Tijd voor taart en slingers. We hebben zojuist succesvol het account van @NRC@nrc.social gemigreerd van mastodon.nl naar onze eigen server nrc.social. Tegen de vrijwilligers achter mastodon.nl zeg ik: dank voor de goede zorgen! I'll take it from here. Overigens blijft het devies dat we klein beginnen. Ik zal verslag doen van de ervaringen. https://www.nrc.nl/nieuws/2026/10/08/zojuist-is-het-account-van-nrc-naar-de-eigen-server-verhuisd-a4938498
#mastodon #opensocials #NRCserver #taart #activitypub
Boosted by @fedicat@pc.cafe
Linux Magazine talked to us about how and why we build Bonfire.
What we want next is "not a bigger Bonfire, but a network of cooperatives covering the whole supply chain of a community's digital space", who "do it together" rather than leave you to "do it yourself".
Because "federation, we don't see it as just a technical thing. We see it as a social, economic, and political tool as well."
Link: Supporting the Social Web: How the Fediverse Found Parts for Its Platforms
Also happy to spread the love for @coopcloud@social.coop, @coquest@social.coop, @SocialCoop@social.coop and more, check out the links at the end of the article! Thanks to @horncologne@fosstodon.org for a lovely conversation, and @linuxmagazine@fosstodon.org for publishing it, in a piece that also features the great @cwebber@social.coop and @tsyesika@mastodon.nu from @spritely@social.coop.
#fediverse #ActivityPub #opensource #freesoftware #OpenCooperativeEcosystem #OpenScienceNetwork
Boosted by @_elena@mastodon.social
@laurenshof@indieweb.social is opening the "decentralized technologies" track at @oscl@mastodon.opencloud.lu
Big thanks to @_elena@mastodon.social and @Gina@fosstodon.org for hosting our track as well as to @paolo@mastodon.opencloud.lu and the whole team for organising #oscl26#opensocialweb #fediverse #socialnetworks #activitypub #opensource #opencommunications #decentralized #digitalcommons #solidarity
Pixelfed is not for sale. It never was.
I've turned down 6 and 7 figure offers, and I'd do it again tomorrow. Some things matter more than a beach and a Peach Bellini.
We're building something generational here. Something that outlives us if we get it right.
100M+ people. Ethically sustainable. Admins and creators get paid.
You deserve better, and we're going to build it together.
#activityPub #fediverse #together #notForSale
Boosted by @fedicat@pc.cafe
Week in Fediverse 2026-10-02 Servers
- PeerTube v8.3.1
- Hollo v0.9.20
- Mastodon v4.7.3
- Ibis v0.3.4
- Wafrn v2026.10.01
- Hometown v1.3.0
- Misskey v2026.10.0
- NeoDB v0.19.5
- Hatsu v0.3.5
- Wanderer v0.21.0
Clients
- Pachli v3.9.0
- Fedilab v3.45.0
- chan-fe v0.4.0
- PeerTube Mobile v2.3.0
For developers
- Fedify v2.4.0
- activitypub-federation-rust v0.6.6
- Fedipub v0.10.0
Protocol
- FEP-070c: Block synchronization across servers
- FEP-302f: QuantPub — federated personal metrics for quantified-self sharing
- FEP-6757: Content License Metadata in ActivityPub
Articles
- Why Does Nobody Use Lemmy?
- Fediverse News – Summer 2026
#WeekInFediverse #Fediverse #ActivityPub
Previous edition: https://mitra.social/objects/01a0dbf1-5095-74a1-b198-2872b783a198
Boosted by @dansup@mastodon.social
Nobody owns email. Nobody should own your social life either.
When you want to show someone why they should join the fediverse, show them this:
https://fediverse.info/why
#fediverse #activitypub
With #HolosDiscover we checked multiple criteria before indexing: "indexable" enabled, account not locked, no #nobot or #noindex in bio, not in opted-out list, only public posts. Every deletion, edit or block was processed instantly via #ActivityPub.
Google uses that same "indexable" flag but ignores everything else, keeps deleted content cached for weeks.
We shut it down after pushback. Was that the right call? Don't hesitate to share, this concerns the whole Fediverse.
With #HolosDiscover we checked multiple criteria before indexing: "indexable" enabled, account not locked, no #nobot or #noindex in bio, not in opted-out list, only public posts. Every deletion, edit or block was processed instantly via #ActivityPub. Google uses that same "indexable" flag but ignore
Boosted by @dansup@mastodon.social
I finally created a #FEP for using #CreativeCommons licenses (and other licenses) in #ActivityPub.
https://codeberg.org/fediverse/fep/pulls/939
Boosted by @trending@homestead.social
There's a new very lightweight Fediverse platform that's just been released called littleFedi. You can follow its new official account at:
🌱 @littlefedi_official@littleone.littlefedi.social
Its official website including download and source code is at:
🌱 https://littlefedi.org
LittleFedi is for techy people who want to create their own Fediverse server using as few resources as possible.
It's written by a group called "Little Computer People", its maintainer is @stefano@mastodon.bsd.cafe#Fediverse #ActivityPub #FOSS #SelfHosting
Boosted by @fedicat@pc.cafe
Fedify 2.4.0 is out.
The main addition is support for FEP-ef61 portable objects. A Fedify server can now host actors whose identity is a DID instead of a domain, serve their signed objects through /.well-known/apgateway/, and verify the portable objects of other servers. I tested it against tootik and Mitra, and wrote up where Fedify's profile differs from the FEP and what it leaves out.
The release also adds application-defined background tasks, the ActivityPub Media Upload extension, per-request inbox reports, 410 Gone for deleted objects, and four new packages (AdonisJS, Netlify, PGlite, and interaction controls).
Some defaults changed, so please read the upgrading section before you update, especially if you federate with software that uses FEP-ef61 compatible identifiers.
Release notes: https://hackers.pub/@fedify/2026/fedify-2-4
Thanks to everyone who contributed to this cycle, and to @silverpill@mitra.social for patient answers about the FEP.
#Fedify #ActivityPub #fedidev #FEP_ef61
Boosted by @dansup@mastodon.social
Blocks on the fediverse have a consistency problem.
When a Block or Undo Block gets lost between servers, the two sides quietly disagree about who blocked whom. Sometimes that means a blocked account can still reach you.
Our fix, FEP-070c: Block synchronization across servers, is now accepted as a draft. Pixelfed is the first implementation, merged and shipping in our next release.
https://codeberg.org/fediverse/fep/src/branch/main/fep/070c/fep-070c.md
#pixelfed #pixeldev #activityPub #fediverse
How should we support #ActivityPub creators who want to see their engagement metrics, while ensuring user privacy?
I've got some ideas (https://rochebit.net/posts/analytics) but I'd really love to hear some other perspectives and approaches


/s3/static.nrc.nl/wp-content/uploads/2026/10/08105916/081026ECO_2037303090_server.jpg)

