AFFiNE — Shared Workspace

AFFiNE ist ein Open-Source-Workspace (Notion/Miro-Alternative) der als geteilte Plattform für Menschen und AI-Agenten (OMP) dient.

URL: https://a.freundeskreis.family/

Architektur

Browser → Nginx (Plesk :443) → localhost:3010 → AFFiNE Docker Stack
                                                  ├── affine_server (Node.js)
                                                  ├── affine_postgres (PostgreSQL 16 + pgvector)
                                                  └── affine_redis (Redis)

Features

  • Docs + Whiteboard + Datenbank in einem
  • Local-first mit CRDT (yjs) — Offline-fähig
  • Real-time Collaboration — Mensch und Agent gleichzeitig
  • AI Copilot — konfigurierbar mit OpenRouter/OpenAI/Ollama
  • Self-hosted — Daten bleiben auf dem eigenen Server

Deployment

Installationsverzeichnis: ~/httpdocs/affine/

affine/
├── compose.yml          # Docker Compose (4 Container)
├── .env                 # Konfiguration (Port, DB-Passwort, URL)
├── config/config.json   # Server-Name, AI-Provider
├── storage/             # Uploads, Blobs
└── postgres/            # PostgreSQL-Daten

Starten

cd ~/httpdocs/affine
docker compose up -d

Stoppen

cd ~/httpdocs/affine
docker compose down

Logs

docker logs affine_server --tail 50 -f

Backup

# PostgreSQL
docker exec affine_postgres pg_dump -U affine affine > backup_$(date +%F).sql
# Uploads
tar czf affine_storage_$(date +%F).tar.gz ~/httpdocs/affine/storage/

Plesk-Konfiguration

Der a.freundeskreis.family-Subdomain ist ein Nginx Reverse Proxy zu localhost:3010. Die Nginx-Direktiven:

location / {
    proxy_pass http://127.0.0.1:3010;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    client_max_body_size 100M;
}

OMP-Integration

AI-Agenten (OMP) können AFFiNE als kollaborativen Workspace nutzen:

  1. Lesen: AFFiNE-Seiten über die REST API oder Browser
  2. Schreiben: Inhalte erstellen via API oder Browser-Automation
  3. Echtzeit: Agent und Mensch arbeiten simultan am selben Dokument

See also