Einmalig einrichten – etwa fünf Minuten:
1. Auf supabase.com kostenlos registrieren und ein neues Projekt anlegen.
2. Im Projekt links auf SQL Editor, folgendes einfügen und Run drücken:
create table if not exists boards (
id text primary key,
data jsonb not null,
token text,
updated_at timestamptz not null default now()
);
alter table boards enable row level security;
-- Lesen darf jeder: die Inhalte sind verschlüsselt und ohne Passwort wertlos.
-- (Wird auch für die Live-Übertragung gebraucht.)
drop policy if exists "board lesen" on boards;
create policy "board lesen" on boards for select using (true);
-- Schreiben darf nur, wer das Passwort kennt: der Client schickt daraus
-- einen Token im Header mit, der zum Board passen muss.
drop policy if exists "board anlegen" on boards;
create policy "board anlegen" on boards for insert with check (
token is not null
and token = (current_setting('request.headers', true)::json ->> 'x-board-token')
);
drop policy if exists "board aendern" on boards;
create policy "board aendern" on boards for update using (
token is null -- noch nicht beansprucht
or token = (current_setting('request.headers', true)::json ->> 'x-board-token')
) with check (
token = (current_setting('request.headers', true)::json ->> 'x-board-token')
);
alter publication supabase_realtime add table boards;
3. Links auf Project Settings → API. Dort die Project URL (Form: https://abcdefgh.supabase.co) und den Schlüssel anon public kopieren und oben einsetzen. Achtung: nicht die Adresse aus der Browserzeile nehmen – die beginnt mit supabase.com/dashboard/… und ist die falsche.
4. Auf Verbinden klicken – der Punkt wird grün.
5. Ein Board-Passwort festlegen und den Kollegen getrennt von der Datei mitteilen – zum Beispiel per Telefon oder Signal. Benutzerkonten braucht es nicht.
6. Auf Datei für Team speichern klicken. Die Datei Biweekly-Team.html an Enno und Michael schicken. Sie öffnen sie, geben einmalig das Passwort ein und sind drin.
Zur Sicherheit: Der Inhalt wird vor dem Senden im Browser verschlüsselt (AES-256, Schlüssel aus dem Board-Passwort). Auf dem Server liegt nur unlesbarer Text – ohne Passwort ist mit den Daten nichts anzufangen, auch für Supabase nicht. Deshalb gilt aber auch: Passwort verloren heißt Daten verloren.