feat: multi-actor ActivityPub support

Each registered user now has their own ActivityPub actor:
- Generate RSA keys per user on registration
- Webfinger resolves any registered user (@user@domain)
- Actor endpoints work for any registered user
- Each user has their own outbox (filtered activities)
- Activities signed with the publishing user's keys
- Objects attributed to the asset owner

Removed:
- ARTDAG_USER config (no longer single-actor)
- L1_SERVER config (comes with each request)

Added:
- /ui/users page listing all registered users
- user_exists() helper function

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gilesb
2026-01-07 19:54:11 +00:00
parent 58a125de1a
commit 4155427f03
4 changed files with 121 additions and 57 deletions

View File

@@ -69,7 +69,7 @@ services:
- .env
environment:
- ARTDAG_DATA=/data/l2
# ARTDAG_DOMAIN, ARTDAG_USER, JWT_SECRET from .env file
# ARTDAG_DOMAIN, JWT_SECRET from .env file (multi-actor, no ARTDAG_USER)
volumes:
- l2_data:/data/l2
depends_on: