Background
Part of the phase 3 interoperability smoke test rollout tracked in #682 .
PeerTube is a video-focused ActivityPub server. Its primary federation
unit is the channel, which is represented as a Group actor rather
than a Person. This makes it a good target for verifying Fedify's
handling of Group actors and Video objects.
Docker image requirements
- Deployable via Docker Compose with no manual steps beyond configuration
- Exposes an HTTP endpoint reachable by the Caddy TLS proxy within the
smoke Docker network
- Supports ActivityPub federation out of the box
- Allows programmatic account creation and API token issuance without
requiring email verification
- Note: PeerTube does not implement the Mastodon-compatible API.
The provisioning script and any new scenarios must use the PeerTube
REST API (/api/v1/*) directly
Test scenarios
The six baseline scenarios in orchestrator.ts do not apply here since
PeerTube does not implement the Mastodon-compatible API. The following
new scenarios are required:
- Fedify → PeerTube (
Follow a channel): follow a PeerTube channel
(Group actor) from the Fedify harness and verify Accept(Follow) is
received
- PeerTube → Fedify (
Announce(Video)): publish a video on PeerTube
and verify the harness inbox receives an Announce(Video) activity
The Follow handler in federation.ts currently only accepts follows
from Person actors. It needs to be extended to also accept follows
where the target is a Group.
Acceptance criteria
test/smoke/peertube/ is added with the required files:
docker-compose.yml, Caddyfile.peertube, Caddyfile.fedify-harness,
generate-certs.sh, provision.sh, and a server config file
- The provisioning script creates a test user, obtains an API token, and
resolves the Fedify harness account
- Both scenarios above pass reliably
- A GitHub Actions workflow (
.github/workflows/smoke-peertube.yml) is
added, triggered on pushes to main, next, and *.*-maintenance
branches, and on workflow_dispatch
Background
Part of the phase 3 interoperability smoke test rollout tracked in #682 .
PeerTube is a video-focused ActivityPub server. Its primary federation
unit is the channel, which is represented as a
Groupactor ratherthan a
Person. This makes it a good target for verifying Fedify'shandling of
Groupactors andVideoobjects.Docker image requirements
smokeDocker networkrequiring email verification
The provisioning script and any new scenarios must use the PeerTube
REST API (
/api/v1/*) directlyTest scenarios
The six baseline scenarios in
orchestrator.tsdo not apply here sincePeerTube does not implement the Mastodon-compatible API. The following
new scenarios are required:
Followa channel): follow a PeerTube channel(
Groupactor) from the Fedify harness and verifyAccept(Follow)isreceived
Announce(Video)): publish a video on PeerTubeand verify the harness inbox receives an
Announce(Video)activityThe
Followhandler infederation.tscurrently only accepts followsfrom
Personactors. It needs to be extended to also accept followswhere the target is a
Group.Acceptance criteria
test/smoke/peertube/is added with the required files:docker-compose.yml,Caddyfile.peertube,Caddyfile.fedify-harness,generate-certs.sh,provision.sh, and a server config fileresolves the Fedify harness account
.github/workflows/smoke-peertube.yml) isadded, triggered on pushes to
main,next, and*.*-maintenancebranches, and on
workflow_dispatch