Mit der beliebten Notiz-App Notion lässt sich das ganze Leben durchorganisieren. Das Problem: Notion ist nicht Ende-zu-Ende-verschlüsselt, läuft komplett in US-Clouds und nervt seit einiger Zeit an jeder Ecke mit überladenen KI-Funktionen. Anytype bietet dagegen eine datensichere Alternative, die sich komplett auf dem eigenen Heimserver hosten lässt – inklusive lokaler KI-Funktionen. c't 3003 zeigt, wie es geht.
Transkript des Videos
(Hinweis: Dieses Transkript ist für Menschen gedacht, die das Video oben nicht schauen können oder wollen. Der Text gibt nicht alle Informationen der Bildspur wieder.)
Guck mal hier, das sind alle meine Notizen, Arbeitsprojekte, Rezepte, Urlaube, Aufgaben und wichtige Dokumente, mein halbes Leben quasi, schön sortiert in einer Datenbank. Anytype heißt diese App, und die hat Notion für mich mehr als nur ersetzt, denn ich verwende meinen eigenen Server und lokale KI, um aus meinen Anytype-Notizen wirklich alles rauszuholen. Nicht nur an Notizqualität, sondern auch an Datensicherheit, weil da liegen ja ganz schön private Sachen drin, die ich eher ungern mit Notion, ohne echte Ende-zu-Ende-Verschlüsselung und mit der Notion-KI, teilen würde. Und wenn ihr selbst Notion nutzt, ist euch das ja vielleicht auch schon aufgefallen, diese KI drückt euch Notion auch ständig rein. Super nervig. Außerdem kostet mich Anytype über meinen Homeserver keinen Cent beziehungsweise ein paar Euro, wenn ich das über einen Cloud-Server laufen lasse, versus 20 Euro im Monat bei Notion. Und auch dieses Video hab ich komplett mit Anytype organisiert und geskriptet.
Und jetzt sagt ihr vielleicht, ja, Anytype kenn ich und benutzt ihr ja vielleicht sogar schon, da hat Kollege Sahin ja auch schon ein Video drüber gemacht. Aber ich hab in den letzten Wochen so viel Zeit in dieser App verbracht und versuch da wirklich alles rauszuholen. Und in diesem Video zeige ich euch jetzt ganz konkret, wie ihr Anytype voll ausreizt, indem ihr eure Daten selbst hostet und eine lokal laufende KI verbindet. Bleibt dran!
Liebe Hackerinnen, liebe Internet-Surfer, herzlich willkommen hier bei ...
Ich bin ja nicht der Einzige aus dem 3003-Team, der Anytype in Benutzung hat. Chris vom 4004-Podcast benutzt das auch voll gern und Sahin hat dazu ja vor einem knappen Jahr schon mal ein Video gemacht. Aber was soll ich sagen, seitdem ist halt mega viel passiert. Die App wird ständig weiterentwickelt, ich kann da zum Beispiel jetzt direkt Bilder aus der Datenbank Unsplash ziehen und die hier als Titelbild einfügen, und es gibt jetzt diese praktischen Tabs hier, da könnt ihr in einem Fenster mehrere Seiten offen haben, und es gibt eine API-Schnittstelle, mit der ihr externe Tools anschließen könnt. Ich hab da jetzt eine Chrome-Erweiterung, um Webseiten direkt in mein Anytype einzufügen, aber auch lokale KI per MCP, also Model Context Protocol. Das schauen wir uns gleich an, aber erst mal das Game-Changing-Feature im Vergleich zu Notion, das mich wirklich dauerhaft zu Anytype gebracht hat: der Sync über meinen eigenen Server.
Warum überhaupt ein eigener Server? Ja, Anytype speichert im Standard zwar alles schon Ende-zu-Ende-verschlüsselt auf Servern in der Schweiz, was ja schon ziemlich nice ist, aber entweder ihr habt da nur 100 Megabyte oder ihr zahlt halt wirklich viel Geld für wenig Speicher. Also 5 Dollar für 1 Gigabyte, 10 Dollar für 10 Gigabyte und 20 Dollar für 100 Gigabyte. Ich mein, fair, die müssen sich ja auch irgendwie refinanzieren, aber „local first“ heißt für mich halt auch, ich will zu 100 Prozent die Kontrolle über meine Daten. Klar, wenn das Internet mal weg ist, synct mein Handy trotzdem über Peer-to-Peer direkt mit meinem Rechner und meinem Tablet und meinen anderen Handys, aber damit der Sync auch von unterwegs aus klappt, wenn der Mac zugeklappt ist, mieten wir uns jetzt einen kleinen Cloud-Server, und da Anytype echt nicht anspruchsvoll ist, braucht er auch wenig Leistung. Das kostet halt so viel wie ein halber Döner im Monat und dadurch haben wir viel mehr Speicher und entscheiden eben selbst, wo unsere Daten liegen.
Alternativ könnt ihr das fast genauso über euren Heimserver machen, da braucht ihr dann nur einen Reverse-Proxy, das hab ich mit Tailscale gelöst, weil ich Anytype eh nur auf Geräten verwende, die über mein Tailscale verbunden sind. Das Gute: Für den eigenen Anytype-Sync-Server reichen die kleinsten VPS-Pakete locker aus. Und wenn ihr schon einen Webserver für Nextcloud oder so habt, dann könnt ihr den natürlich auch verwenden. Ich hab das im Video hier mal bei Strato ausprobiert, da kriegt ihr dieses Paket mit 120 GB SSD, 4 GB RAM und 2 vCPUs für 4 Euro im Monat. Bei Netcup kostet das zum Beispiel 4,87 und Vergleichbares gibt’s auch noch bei Hostinger, Hetzner, Ionos. Und ja, Speicherplatzsorgen habt ihr dann in Anytype auf jeden Fall nicht mehr.
Egal, für welchen Anbieter ihr euch jetzt entscheidet, klickt euch im Dashboard auf jeden Fall kurz eine Firewall zusammen. Ihr braucht Port 22 für den SSH-Zugriff, 80 und 443 fürs Web. Und jetzt kommt der Anytype-Trick: Die Ports 1001 bis 1016 müssen offen sein, und zwar für TCP und UDP. UDP ist extrem wichtig für das QUIC-Protokoll, das macht euren Sync später dann ziemlich schnell. Und wir brauchen noch eine essenzielle Kleinigkeit, eine eigene Domain. Warum? Anytype baut beim Starten im Hintergrund automatisch saubere SSL-Zertifikate für euch, also das grüne Schloss im Browser, und dafür braucht das System zwingend einen echten Domain-Namen. Also loggt euch kurz bei eurem Domain-Provider ein und legt eine Subdomain an, sowas wie anytype.euredomain.de. Dort setzt ihr dann einen simplen DNS-Eintrag, einen sogenannten A-Record, der genau auf die IP-Adresse von eurem neuen Server zeigt, und das war’s auch schon. Diese Domain ist dann quasi unser Türsteher, den wir gleich in der Config eintragen.
Wenn der Server läuft, loggt ihr euch am Rechner übers Terminal ein, den ganzen Codeblock zum einfachen Copy-and-paste packe ich euch unten in die Videobeschreibung, dann updaten wir kurz das System, ziehen uns Docker und klonen das offizielle Anytype-Docker-Repo. Jetzt wird’s kurz ein bisschen tricky, da bin ich bei meinem Setup nämlich erst mal voll reingelaufen. Ihr kopiert euch die Konfigurationsdatei, die env.default, in eine neue .env, und weil die Entwickler da aber anscheinend ständig rumbasteln, müsst ihr in der Datei einmal alle Version-Tags von prod auf latest ändern, sonst findet Docker die Images nicht und der Server streikt. Dann tragt ihr in der Datei noch eure eigene Domain ein, also anytype.euredomain.de, überschreibt unbedingt diese 127.0.0.1 bei External Listen Host, sonst lauscht der Server nämlich nur auf sich selbst und eure Anytype-Clients kommen von außen nie drauf.
Und noch zwei kleine Pro-Tipps für die Konfig: Setzt das Speicherlimit für den Anytype-Node auf etwas weniger Speicher, als ihr angemietet beziehungsweise in eurem Homeserver freigegeben habt. Also ich hab hier 120 GB SSD und lasse 10 GB noch frei, damit die Platte dann nicht unkontrolliert vollläuft und das System nicht crasht. Und gebt dem Container ruhig 1,5 GB RAM, dann flutschen da auch größere PDF-Uploads. So, dann feuert ihr das Ganze mit docker compose up -d an, der Server rödelt kurz und baut euch im Hintergrund ganz automatisch eure Krypto-Schlüssel und SSL-Zertifikate. Zum Schluss lasst ihr euch den Inhalt der generierten Datei client.yml ausgeben, das ist quasi dann euer Haustür-Schlüssel für eure Endgeräte. Den Text kopiert ihr euch und speichert ihn in einer Datei, und diese Datei importiert ihr dann in den Anytype-Netzwerkeinstellungen unter „Custom Network“. Der durchgestrichene Globus wird blau und zack, der Sync-Server läuft. Auf dem Smartphone und Tablet ist das genau das Gleiche, ihr zieht euch die client.yml-Datei rüber und wählt sie beim Einloggen aus, und euer komplett privater Sync steht.
So, Daten sind sicher, Sync läuft super schnell über unseren eigenen Webserver, Zeit für den Endgegner: künstliche Intelligenz. Und weil wir unsere privaten Notizen vorhin schon nicht auf fremde Server legen wollten, werfen wir die jetzt natürlich auch nicht ChatGPT oder Claude in den Rachen, wir machen das lokal. Das Stichwort heißt MCP, das Model Context Protocol, da haben wir auch ein eigenes Video schon zu gemacht, das findet ihr auch in der Beschreibung, und damit können wir einem LLM direkt Zugriff auf unser Anytype geben. Ich habe hier ein MacBook Pro mit M2 Max und 64 GB RAM stehen, also eigentlich eine absolute Maschine für sowas, und das zum Laufen zu bringen ist auf dem Mac auch gar nicht so schwer.
Eigentlich braucht ihr nur zwei Dinge. Erstens Node.js, erster kleiner Stolperstein bei mir übrigens, ich hatte noch Version 18.15 auf dem Rechner und damit zickt das Ganze rum, ihr müsst Node also am besten einmal auf die aktuellste Version bringen. Zweitens brauchen wir LM Studio, das ist ein kostenloses Programm, mit dem ihr LLMs wie Llama oder Qwen mit zwei Klicks direkt auf eurem Rechner ausführen könnt. Ich habe Qwen 3.5 einmal in der 9B- und einmal in der 30B-Variante genommen, und die Einrichtung ist erstaunlich simpel. Ihr öffnet LM Studio, geht in die Einstellungen zu den MCP-Servern und kopiert da einfach einen kleinen JSON-Code rein, der auf den Anytype-Ordner auf eurem Mac verweist, und das war’s.
Und was macht man dann in der Praxis damit? Na ja, ihr könnt in LM Studio ganz normal chatten, aber die KI kennt halt eure Anytype-Datenbank. Wichtig ist aber: genau prompten. Also bei den großen LLMs ist das wirklich notwendig, ich bin da am Anfang oft in so Endlosschleifen gelaufen, weil die KI einfach in meinem ganzen Anytype-Space nicht gecheckt hat, was ich eigentlich will. Also ich habe da zum Beispiel halt meine Videoprojekte drin und wenn ich da einfach schreibe: „Fasse mir meine aktuellen Videoprojekte zusammen“, dann kann das mal ins Leere laufen. Was schon mal hilft, ist, wenn ihr immer den Namen von eurem Space mit in den Prompt schreibt. Ganz konkret könnt ihr dann zum Beispiel euren Space durchsuchen, aber eben nicht nur nach einem Wort, sondern so kontextbezogen. Also wenn ihr ganz spezielle Infos aus einem Zeitraum oder so wollt.
Das geht eben auch nach Relationen, also zum Beispiel: „Durchsuche meinen Anytype-Space Lucas Space nach allen Objekten vom Typ Videoprojekt, filtere die Ergebnisse so, dass nur die angezeigt werden, die im Titel Short stehen haben und deren Relation Priorität auf Hochgesetzt ist. „Gib mir eine kurze tabellarische Übersicht mit dem Status und dem letzten Änderungsdatum.“ Oder ihr erstellt eine neue Seite, zum Beispiel ein Rezept, in dem ihr einfach nur den Text copy and pasted: „Ich kopiere gleich einen Text für ein Nudelgericht, erstelle daraus ein neues Objekt in Anytype, nutze den Objekttyp Rezept, extrahiere den Namen als Titel, erstelle eine strukturierte Liste für die Zutaten im dafür vorgesehenen Bereich und formatiere die Zubereitungsschritte als nummerierte Liste. Hier ist der Text.“ Oder ihr ergänzt einfach eine bestehende Seite, zum Beispiel mit Checklisten, und verknüpft dann andere bestehende Seiten: „Suche die Seite mit dem Titel Übersicht Reisen, analysiere den aktuellen Inhalt und füge am Ende einen neuen Abschnitt namens Reiseideen 2026 hinzu. Ergänze dort eine Checkliste mit den Zielen Japan, Norwegen und Portugal, verknüpfe zudem meine bestehende Notiz Ausrüstungsliste Wandern.“
Aber Achtung, jetzt kommt mein größter Fail beim Testen. Ich hab da fröhlich rumgepromptet und plötzlich spuckt LM Studio mir einen Fehler aus. Was war passiert? Mein Anytype-Vault ist inzwischen so groß, dass die Datenmenge das Kontextfenster der KI komplett gesprengt hat. Also das Kontextfenster ist ja quasi das Kurzzeitgedächtnis der KI und das war hier im Standard auf knapp 4000 Token limitiert. Die Lösung ist dann theoretisch einfach, man dreht das Kontextfenster in LM Studio einfach hoch. Aber ich sag’s euch ganz ehrlich, wenn ihr das auf 16.000 oder 32.000 Token hochballert, dann fängt auch mein M2 Max schon richtig an zu schwitzen. Das Generieren dauert dann länger und man starrt dann manchmal minutenlang auf den Bildschirm. Also stellt eure Prompts möglichst präzise und sagt der KI genau, in welchem Zeitraum oder nach welchem Text sie suchen soll. Je weniger irrelevante Anytype-Daten in das Kontextfenster geladen werden, desto schneller habt ihr eure Antwort.
Und ich hab gemerkt, dass es meistens gar nicht unbedingt die großen Modelle braucht, um Dinge mit meinen Notizen zu machen. Also meine Empfehlung nach einigen Tests: Benutzt Qwen 3.5 9B. Das hat für die meisten Sachen gereicht. Wenn ich dann aber längere Texte damit reingegeben habe, dann habe ich schon die 30B-Variante gebraucht. Also, falls ihr es noch nicht gemerkt habt, Anytype ist wirklich zu meiner absoluten Lieblings-App geworden. Es ist so nice, einen Platz zu haben, wo man wirklich alles reinschmeißen kann. Also für mich ist das wirklich eine Everything-App. Bewerben die auch so. Und im Gegensatz zu Notion habe ich halt auch die volle Kontrolle über meine Daten. Also da ist die Hemmschwelle wirklich auch wichtige, aber sensible Sachen wie einen Perso, Mietvertrag und so abzulegen, deutlich geringer.
Und was ich besonders nice finde: Anytype macht Sinn, wenn man einfach schnell Sachen notieren will und eben nicht mehr einfach Google Docs verwenden möchte, kann aber auch mit einem wachsen, also wenn man Bock drauf hat. Aber wenn ihr bisher abgeschreckt seid, gebt dem Ganzen mal eine Chance und schaut euch auch unbedingt Sahins Video dazu an. Die Zeit, die man da reinsteckt, lohnt sich voll, finde ich. Na ja, schreibt gern mal eure krassesten Anytype-Hacks in die Kommentare, hört unseren Podcast, abonniert den Kanal, lest unsere Newsletter und habt noch einen schönen Resttag. Tschüss!
c't 3003 ist der YouTube-Channel von c't. Die Videos auf c’t 3003 sind eigenständige Inhalte und unabhängig von den Artikeln im c’t Magazin. Die Redakteure Jan-Keno Janssen, Lukas Rumpler, Sahin Erengil und Pascal Schewe veröffentlichen jede Woche ein Video.
(sahe)



