Self-Hosting
Self-Hosting
Snowfox Notes auf deinem Webspace.
Du brauchst keinen eigenen Server, nur einen gewöhnlichen Webspace mit PHP. Kein SSH, kein Docker, keine Kommandozeile.
Schritt 0
Was du brauchst
Snowfox Notes läuft auf gewöhnlichem PHP-Webspace, wie ihn die meisten Anbieter für Websites verkaufen. Eine eigene Datenbank brauchst du nicht: Deine Notizen liegen in einer SQLite-Datei auf deinem Webspace, Bilder, Anhänge und PDFs als Dateien daneben.
Einen Cronjob, eine Warteschlange oder einen Mailserver braucht die App ebenfalls nicht. Aufräumarbeiten erledigt sie nebenbei, während sie benutzt wird. E-Mails verschickt sie nur, wenn du einen SMTP-Zugang einträgst.
Nur eines hängt an der Uhr: Damit Erinnerungen pünktlich kommen und Sicherungen auch nachts laufen, muss etwas den Server alle paar Minuten wecken. Hat dein Webspace kein Cron, trägst du die geheime Takt-Adresse aus Einstellungen → System bei einem kostenlosen Dienst wie cron-job.org ein. Ohne das geschieht es nur, während jemand mit Snowfox arbeitet.
-
PHP 8.4.1 oder neuer
Ältere Fassungen gehen nicht – jede Anfrage würde mit Fehler 500 enden. Die PHP-Fassung stellst du bei den meisten Anbietern im Kundenmenü je Domain um.
-
PHP-Erweiterungen
Nötig sind
pdo_sqlite,mbstring,openssl,fileinfo,ctype,tokenizerundxml. Empfohlen sindzipundcurl: Mitzipspielst du Updates in den Einstellungen ein und liest ZIP-Sicherungen ein,curlbraucht die App für Verbindungen nach außen.Schön, aber kein Muss: die Volltextsuche von SQLite (FTS5). Fehlt sie, sucht die App mit einer langsameren Methode.
-
Schreibrechte
PHP muss in die Ordner
storage/,bootstrap/cache/unddatabase/schreiben dürfen (Rechte 775). Für Updates über die Einstellungen braucht PHP außerdem Schreibrechte im Programmordner. -
HTTPS
Dringend empfohlen. Ohne HTTPS gehen Passwort und Notizen im Klartext durchs Netz – und Offline-Modus, die installierbare App und Push funktionieren nur mit HTTPS.
-
Apache mit .htaccess
Das Paket bringt
.htaccess-Dateien mit, die alle Anfragen an die richtige Stelle leiten und die Ordner mit Programm und Daten sperren.
Installation
In drei Schritten zur eigenen Instanz
-
Das Paket herunterladen
Lade
snowfox-notes-release.zipherunter.Im Paket steckt alles, was die App braucht. Nur die Datenbank fehlt; sie entsteht beim ersten Aufruf.
Die Schritte stehen auch in der Datei UPDATE.txt im Paket.
-
Hochladen
Entpacke das ZIP und lade den Inhalt per FTP auf deinen Webspace – in die Wurzel deiner Domain oder in einen Unterordner. Viele Anbieter können das ZIP auch direkt im Dateimanager entpacken; dann lädst du nur die eine Datei hoch.
Setz danach die Rechte der Ordner
storage/,bootstrap/cache/unddatabase/auf 775 – im FTP-Programm meist unter „Dateiattribute“.Am besten zeigt das Web-Verzeichnis deiner Domain direkt auf den Ordner public/. Geht das bei deinem Anbieter nicht, leitet die mitgelieferte .htaccess alles dorthin um.
-
Aufrufen
Öffne zuerst die Prüfseite (siehe unten). Ist alles bereit, öffnest du die Adresse deiner Installation im Browser. Die Datenbank legt sich von selbst an.
Dann erstellst du dein erstes Konto: Name, Passwort (mindestens 8 Zeichen) und der Zugangscode. Jede Instanz würfelt ihren eigenen Code; du findest ihn per FTP in
storage/app/private/setup-code.txt, bis das erste Konto steht. Dieses erste Konto ist automatisch Admin.Warum schon beim ersten Konto ein Zugangscode? Sonst gehörte die Instanz dem, der zuerst vorbeikommt.
Prüfseite
Vorher wissen, ob dein Webspace passt
Bevor du die App zum ersten Mal öffnest, sagt dir die mitgelieferte Prüfseite, ob alles bereit ist. Du findest sie unter /public/check.php – oder unter /check.php, wenn deine Domain direkt auf den Ordner public/ zeigt.
Die Seite kommt bewusst ohne das eigentliche Programm aus. So erklärt sie auch dann, was fehlt, wenn die App sonst nur eine leere Seite oder „Fehler 500“ zeigen würde.
-
Was sie prüft
- die PHP-Fassung (8.4.1 oder neuer)
- die nötigen Erweiterungen – und die empfohlenen wie
zipund die Volltextsuche - die Schreibrechte der Ordner unter
storage/,bootstrap/cache/unddatabase/ - die Grenzen für Datei-Uploads – große Dateien kommen trotzdem an, in Stücken von 2 MB
- ob du Updates später in den Einstellungen einspielen kannst
- ob die Konfigurationsdatei
.envda ist - ob die Verbindung verschlüsselt ist
-
Was du mit dem Ergebnis machst
Rot markierte Punkte behebst du und lädst die Seite neu. Hinweise wie eine fehlende Volltextsuche sind kein Hindernis. Ist alles bereit, führt dich die Seite direkt zur App.
-
Nach der Einrichtung
Ist die Einrichtung abgeschlossen, gibt die Prüfseite nichts mehr aus außer genau diesem Hinweis.
HTTPS
Verschlüsselt – und dann dauerhaft
Richte bei deinem Anbieter ein Zertifikat für deine Domain ein (oft „SSL“ genannt) und öffne Snowfox Notes über https://.
Sobald die App einmal über HTTPS aufgerufen wurde, leitet sie unverschlüsselte Aufrufe automatisch dorthin um und bittet den Browser, die Seite künftig nur noch verschlüsselt zu öffnen (HSTS). Bewusst erst danach: So kann es bei Anbietern, die HTTPS vor PHP beenden, keine Endlosschleife geben.
HTTPS brauchst du auch, um Snowfox Notes als App auf den Home-Bildschirm zu legen und offline zu arbeiten. Läuft deine Instanz ohne HTTPS, weist dich die App in den Einstellungen darauf hin.
Updates
Updates einspielen – und zurück zur vorherigen Fassung
Neue Fassungen spielst du direkt in der App ein, ohne FTP. Das geht, wenn PHP den Programmordner ändern darf und die Erweiterung zip da ist – die Prüfseite sagt dir, ob das bei dir klappt.
Tipp: Lade vor jedem Update die ZIP-Sicherung herunter. Das Update hebt nur die vorige Programmfassung auf, keine Kopie deiner Daten.
-
Paket herunterladen
Ist eine neue Fassung erschienen, zeigt ein Punkt an Einstellungen das an, und unter Einstellungen → System steht der Link zum Download. Dafür fragt die App einmal am Tag nach, wenn ein Admin sie öffnet; das lässt sich abschalten. Geladen und eingespielt wird nichts von selbst. Die neueste Fassung findest du auch auf der Seite Herunterladen, alle Fassungen auf GitHub folgen in Kürze.
-
Paket prüfen lassen
Als Admin öffnest du Einstellungen → System und wählst „Update-Paket wählen …“. Die App prüft jede Datei anhand von Prüfsummen. Ein Paket, das beschädigt, unvollständig oder älter als deine Fassung ist, lehnt sie ab.
Update-Pakete sind nicht signiert: Die Prüfung fängt kaputte Uploads ab, beweist aber nicht, wer ein Paket gebaut hat. Spiel nur Pakete ein, deren Herkunft du kennst, und vergib die Admin-Rolle sparsam.
-
Einspielen
Mit „Jetzt einspielen“ tauscht die App ihre Programmdateien aus. Sie ist dabei für ein paar Sekunden nicht erreichbar. Deine Notizen, Dateien und die Konfiguration fasst das Update nicht an.
-
Bei Bedarf zurück
Läuft etwas nicht wie erwartet, holst du unter Einstellungen → System mit „Zurück zu …“ die vorige Fassung zurück. Notizen und Dateien bleiben dabei, wie sie sind. Aufgehoben wird jeweils genau eine vorige Fassung.
Sicherungen
Sichern, mitnehmen, umziehen
Die komplette Sicherung lädst du mit einem Klick herunter: Einstellungen → Sichern und Einlesen → „Alles als ZIP“. Das Archiv entsteht direkt beim Herunterladen – auch mehrere Gigabyte gehen durch.
-
Was in der Sicherung steckt
Notizen, Ordner, Labels, Vorlagen, Versionen, PDF-Anmerkungen, erkannter PDF-Text und alle Dateien. Nicht enthalten sind Konten und Passwörter. Eine Sicherung ist nicht verschlüsselt: Verwahre sie so sicher wie den Server selbst.
-
Automatisch sichern
Als Admin lässt du die ganze Instanz täglich oder wöchentlich als ZIP auf dem Server ablegen und wählst, wie viele Sicherungen bleiben. Damit eine Sicherung auch hilft, wenn der Server kaputtgeht, schickt die App auf Wunsch jede neue in einen WebDAV-Ordner – bei Nextcloud, einer Storage Box oder auf deinem NAS.
-
Einlesen und umziehen
Als Admin liest du eine Sicherung unter Einstellungen → Sichern und Einlesen wieder ein. Der Bestand wird dabei ergänzt, nicht ersetzt: Was es schon in einem jüngeren Stand gibt, bleibt unverändert.
So ziehst du auch auf einen neuen Server um: Sicherung herunterladen, Snowfox Notes dort einrichten, Sicherung einlesen. Notizen, Ordner, Dateien, Versionen und Anmerkungen kommen mit; Konten legst du neu an. Nimm dabei
storage/app/instance-keymit: Damit sind Sitzungen und gespeicherte Geheimnisse verschlüsselt. -
Einzelne Notizen exportieren
Jede Notiz sicherst du als Markdown oder druckst sie als PDF. Mehrere ausgewählte Notizen bekommst du als ZIP mit Markdown-Dateien. Umgekehrt ziehst du Markdown- und Textdateien einfach ins Fenster – sie werden zu Notizen.
-
Zu einer anderen App mitnehmen
Unter Einstellungen → Sichern und Einlesen → „Für andere Apps“ lädst du alles, was du siehst, als Ordner mit Markdown-Dateien oder als ENEX herunter. Umgekehrt holst du dort Notizen aus Obsidian, Notion und Evernote herein.
Probleme lösen
Wenn etwas hakt
Die häufigsten Stolpersteine – und was du tun kannst.
Ich sehe nur eine leere Seite oder „Fehler 500“.
Meist ist die PHP-Fassung zu alt. Öffne die Prüfseite: Sie zeigt dir, was fehlt. Die PHP-Fassung stellst du im Kundenmenü deines Anbieters um.
Die App meldet, ein Verzeichnis sei nicht beschreibbar.
Setz die Rechte der Ordner storage/, bootstrap/cache/ und database/ auf 775 – im FTP-Programm meist unter „Dateiattribute“. Danach lädst du die Seite neu.
Mein Anbieter erlaubt nur kleine Uploads.
Kein Problem: Große Dateien überträgt Snowfox Notes in Stücken von 2 MB. Bricht die Verbindung ab, geht es dort weiter, wo es aufgehört hat.
Updates lassen sich nicht in den Einstellungen einspielen.
Dann darf PHP den Programmordner nicht ändern, oder die Erweiterung zip fehlt. Kein Hindernis: Spiel das Update per FTP ein (siehe „Update per FTP“ oben).
Kann ich die automatische Umleitung auf HTTPS abschalten?
Ja, mit der Zeile NOTES_FORCE_HTTPS=false in der Datei .env. Ohne HTTPS gehen Passwort und Notizen allerdings im Klartext durchs Netz.
Jemand hat sein Passwort vergessen.
Mit einer bestätigten E-Mail-Adresse setzt die Person es auf der Anmeldeseite selbst zurück – dafür muss unter Einstellungen → E-Mail-Versand ein SMTP-Zugang eingetragen sein. Sonst setzt ein Admin unter Einstellungen → Mitglieder ein neues. Sperrt sich der einzige Admin aus, hilft nur noch die Kommandozeile auf dem Server; der Befehl steht im Handbuch der App.
Läuft Snowfox Notes auch mit nginx?
Das Paket ist für Apache mit .htaccess vorbereitet. Eine Anleitung für nginx und andere Webserver gibt es noch nicht.