Activity-Relay v2.5.0 is released!

Activity-Relay v2.5.0 is now released!

  • Added signed authorized-fetch support for secure-mode Mastodon servers.
  • Improved Friendica and NodeBB interoperability while preserving the existing relay identity and public key.
  • Added reliable Redis-backed claims and recovery for interrupted work.
  • Added per-receiver retries, retained payloads, and detailed delivery diagnostics.
  • Added receiver-health tracking, Prometheus metrics, and private health/readiness endpoints.
  • Migrated to the maintained Redis-only Machinery v2 fork.
  • Published a native Debian package and multi-architecture container images for AMD64 and ARM64.

Activity-Relay Server 2.5.0 is now live at https://relay.argentwolf.org as an example server.

If you find it useful, please star it on GitHub! Thank you!

Changelog

Please help me out with connecting and testing! If you have any issues, please let me know! You can reach me at @alan, or open an issue on https://github.com/thystra/Activity-Relay

#activitypub #friendica #mastodon #fediverse #nodebb #relay #relayserver #relayservers #relaytest

Activity-Relay Server 2.5.0 RC2 pushed

Activity-Relay Server 2.5.0 RC 2 is now live at https://relay.argentwolf.org

Please help me out with connecting and testing! If you have any issues, please let me know! You can reach me at @alan, or open an issue on https://github.com/thystra/Activity-Relay

RC2 enhancements include:

  • Reliable delivery retries: Each relay fan-out target now receives one initial attempt plus five delayed retries.
  • Bounded Fibonacci backoff: Retry delays occur at approximately 8, 13, 21, 34, and 55 seconds.
  • Longer activity retention: Shared activity bodies remain in Redis for 15 minutes, covering the full retry window with additional margin.
  • Correct terminal accounting: remain_count is reduced only after successful delivery or final retry exhaustion—not after every failed attempt.
  • Protection against premature payload deletion: A temporary failure from one receiver can no longer delete the activity needed by its own retry or other pending receivers.
  • Structured delivery diagnostics: Logs now include task UUID, activity storage ID, activity/object/actor identifiers, origin domain, receiver domain, attempt number, remaining retries, and body SHA-256.
  • Delivery timing details: Each attempt records elapsed processing time and the scheduled time or delay for the next retry.
  • Improved HTTP failure evidence: Logs capture HTTP status codes, classified error types, and bounded response text from receivers, including useful errors such as 424 Failed Dependency.
  • Safer diagnostic logging: Raw activity bodies, HTTP signatures, private keys, and unbounded remote responses are not written to logs.
  • At-least-once recovery: A receiver that finishes processing after the relay times out may receive the same activity again during retry, allowing recovery from ambiguous timeout outcomes.
  • Receiver-health tracking across retries: Successful and failed attempts update per-receiver delivery statistics and consecutive-failure state.
  • Regression coverage: New tests verify retriable failure retention, successful later delivery, terminal cleanup, retry timing, metadata extraction, and bounded response handling.
  • Operational observability: RC2 supports private health, readiness, and Prometheus metrics endpoints, now enabled locally in production on 127.0.0.1:9090.
  • Preserved upgrade state: Deployment validation confirmed that the relay actor identity, private key, configuration, website settings, and all Redis logical data remained intact during the RC1-to-RC2 upgrade.

Changelog

Making the cut!

29 July 2026

Arya has been doing try out for the last three days, being called back each time. She found out she made the middle school team! This is a big deal for her, as last year they only took two sixth graders! Quite the accomplishment for her! This also means early practices, 5 days a week. So we will see how it goes!

Congratulations, Arya!


Thanks for reading! Sign up here on the blog or on our Patreon to know when posts get published! I share these automagically to the Journey of the Wolf and Raven Facebook page if you prefer that. You can also follow me on the fediverse via @alan@www.wolfandraven.blog, or on Friendica at @alan

Turkey-napping Monday!

27 July 2026

I managed to grab the other two turkey poults that were finally out and about. Here they are, chilling in a pot until I got their new living area set up in the chicken tractor.

We have another hen who is sitting on a clutch, hiding behind our A/C compressor. We will keep an eye on her, I expect they should be hatching any time now!

Light Brown mama hen is on patrol. She isn’t very happy with us at the moment, and will rush the kids if they get too close to her.

Garrett is all packed up and ready for one of his journeys!

Arya was at volleyball tryouts, so I dragged the littles to Scouts with me. Garrett and Randal had a great time in the play kitchen area. Evan was less than thrilled, but he got to play chess, so partial win for him.

Goats gonna goat. Baby goats hanging out in their play house because they can.


Thanks for reading! Sign up here on the blog or on our Patreon to know when posts get published! I share these automagically to the Journey of the Wolf and Raven Facebook page if you prefer that. You can also follow me on the fediverse via @alan@www.wolfandraven.blog, or on Friendica at @alan

Activity-Relay Server v2.5.0 RC1 is now live

Activity-Relay Server 2.5.0 RC 1 is now live at https://relay.argentwolf.org

Please help me out with connecting and testing! If you have any issues, please let me know! You can reach me at @alan, or open an issue on https://github.com/thystra/Activity-Relay

What’s new in Activity-Relay v2.5.0-rc1

  • Adds relay-signed actor and object fetches for Mastodon authorized-fetch and secure-mode compatibility.
  • Publishes the relay actor as an ActivityStreams Application, allowing current Friendica versions to discover and register the relay while preserving the existing actor ID, endpoints, and public key.
  • Uses a shared, exact-authority HTTP-signature implementation for both authorized fetches and outbound delivery.
  • Adds durable per-receiver delivery-health tracking through /status.json schema version 4.
  • Adds an optional private observability listener for Prometheus metrics, process health, and Redis-backed readiness checks.
  • Adds bounded Redis-backed operational metrics shared across the API and worker processes.
  • Migrates asynchronous delivery to the maintained Redis-only Machinery v2 fork.
  • Adds leased in-flight task claims and at-least-once recovery, preventing silent task loss after an abrupt worker or host failure. A duplicate delivery remains possible if the remote server accepts a request immediately before the worker terminates.
  • Preserves the existing actor key, actor address, queue data, delayed retries, configuration names, and Redis database through the tested upgrade path.
  • Includes extensive package, rollback, Redis-failure, worker-interruption, Mastodon, Friendica, NodeBB, container, race-test, and production validation.

Full RC changelog: Activity-Relay v2.5.0-rc1 changelog

Full release notes and downloads: Activity-Relay v2.5.0-rc1 release

Known limitation: NodeBB 4.14.2 may return HTTP 424 when it performs an unsigned follow-up fetch from an origin that requires signed GET requests. The relay-delivered request itself remains properly signed. (Bug Report)


If you find this project useful, please give it a star on GitHub! Any tips and/or support contributions are appreciated!

Blog Video Improvements!

I’m happy to report the development and installation of a new video plugin which should greatly improve video playback on the blog to users. It has adaptive streaming to better handle low bandwidth connections. It will process your videos in the background and encode them in compatible streams.

If you have a wordpress site and would like to try it out, you can find it here:
https://github.com/thystra/wp-argent-video-processor

Any comments, let me know!

Activity-Relay server 2.4.0 released

29 July 2026

Activity-Relay server 2.4.0 is released.
Github: https://github.com/thystra/Activity-Relay

Notable changes and features:

  • Debian (.deb) and docker compose installation methods.
  • Optional Caddy example reviewed from the idea in upstream PR 60, implemented as documentation rather than a runtime dependency.
  • Standard actor outbox, followers, following, and shared-inbox metadata.
  • Friendica and standards-style server-actor follow compatibility.
  • NodeBB reciprocal follow, public-key, HTTP Host signing, and embedded Announce interoperability.
  • Public connected, receiving, and publisher status information.
  • Open signed publisher ingestion with policy enforcement.
  • Bounded queue, fan-out, remote response, and concurrency controls.
  • Multiple explicit daily-summary slots and resilient mail handling for reports to the server administrator.
  • Configurable Cache size limits in the config.yml.
  • Upgrade-safe optional website customization.
  • Native package identity preservation and inactive-by-default services.

Changelog

Future roadmap

You can see a live install at: https://relay.argentwolf.org – Please try to connect and let me know of any issues!

If you have any issues, please let me know at alan@friendica.argentwolf.org, on github, or here!