Skip to content

Server Backup und Update

IT-Master Heizmann edited this page Sep 18, 2026 · 2 revisions

Backup und Update

Für wen ist diese Seite? Für dich, wenn du SmallTime betreust. Hier steht, welche Dateien du sichern musst, wie du eine Sicherung zurückholst und wie du SmallTime auf eine neue Version bringst, ohne Daten zu verlieren.

Inhalt

  1. Die automatische Tageskopie
  2. Was du sichern musst
  3. So machst du ein vollständiges Backup
  4. Ein Backup zurückholen
  5. Update auf eine neue Version
  6. Wo sehe ich die Version?

Die automatische Tageskopie

SmallTime macht jeden Tag selbst eine Kopie der Datenbank:

  • Wann? Bei der ersten erfolgreichen Anmeldung des Tages. Meldet sich um 7 Uhr jemand an, entsteht die Kopie dann. Pro Tag gibt es höchstens eine Kopie. Meldet sich an einem Tag niemand an (z. B. am Sonntag), gibt es für diesen Tag keine Kopie.
  • Wo? Im Ordner data/backups.
  • Name? DB_JJJJ.MM.TT.sqlite, zum Beispiel DB_2027.03.14.sqlite. Das Datum ist der Vortag der Kopie, also der letzte vollständige Tag.
  • Die Kopie entsteht im Hintergrund, während SmallTime läuft. Niemand merkt etwas davon.

Warning

Die Tageskopie enthält nur die Datenbank. Hochgeladene Dateien, PDF-Dokumente und Einstellungen sind nicht dabei. Ausserdem liegt sie auf demselben Computer. Geht die Festplatte kaputt, ist auch die Kopie weg. Kopiere deshalb regelmässig alles auf ein anderes Laufwerk, einen USB-Stick oder einen Netzwerkspeicher.

Welche Kopien bleiben? (automatisches Aufräumen)

Damit die Festplatte nicht voll wird, löscht SmallTime alte Kopien selbst. Es bleiben:

Zeitraum Was bleibt
die letzten 7 Tage jede Tageskopie
die letzten 4 Wochen die letzte Kopie jeder Woche
die letzten 12 Monate die letzte Kopie jedes Quartals (31.03., 30.06., 30.09., 31.12.)
ältere Jahre die letzte Kopie jedes Jahres, für immer

Das sind nach einem Jahr etwa 13 und nach zehn Jahren etwa 22 Kopien.

Beispiel: Heute ist der 18.09.2026. Im Ordner liegen dann ungefähr:

  • DB_2026.09.11 bis DB_2026.09.17 (die letzten 7 Tage),
  • DB_2026.08.23, DB_2026.08.30, DB_2026.09.06 (je das Ende der Wochen davor),
  • DB_2025.12.31, DB_2026.03.31, DB_2026.06.30 (Quartalsenden),
  • DB_2024.12.31, DB_2023.12.31 usw. (Jahresenden).

Note

Gelöscht werden nur Dateien mit dem Namen DB_JJJJ.MM.TT.sqlite. Eigene Dateien in data/backups (z. B. vor-update.sqlite) lässt SmallTime in Ruhe. Willst du eine Kopie für immer behalten, benenne sie um oder kopiere sie woanders hin.


Was du sichern musst

Datei / Ordner Inhalt Wichtig
data/app.sqlite die Datenbank: Personen, Zeiten, Absenzen, Salden, Einstellungen, Lizenz ★★★
data/documents/ PDF-Dokumente, z. B. das Archiv aus SmallTime PHP ★★★
uploads/ hochgeladene Dateien ★★★
.env Adresse und geheimer Schlüssel ★★
config/ backend.json und security.json ★★
data/custom.css eigene Farben und Gestaltung ★
data/backups/ die Tageskopien ★

Nicht sichern musst du: node_modules/, dist/, public/, app.cjs (die bekommst du mit jedem Paket neu).

Tip

Am einfachsten sicherst du den ganzen SmallTime-Ordner ohne node_modules.


So machst du ein vollständiges Backup

Die Datenbank darf nicht kopiert werden, während SmallTime gerade hineinschreibt. Deshalb:

  1. SmallTime beenden (Ctrl + C im Konsolenfenster, oder in der Aufgabenplanung Beenden).
  2. Den SmallTime-Ordner (ohne node_modules) an einen sicheren Ort kopieren, zum Beispiel nach E:\Backup\SmallTime_2027-03-14.
  3. SmallTime wieder starten (npm start).

Note

Wenn du SmallTime nicht beenden kannst: Kopiere statt data/app.sqlite die neueste Tageskopie aus data/backups. Diese ist immer vollständig und in Ordnung. Die anderen Ordner kannst du auch im laufenden Betrieb kopieren.


Ein Backup zurückholen

Die Datenbank aus einer Tageskopie zurückholen:

  1. SmallTime beenden.
  2. Im Ordner data die Datei app.sqlite umbenennen, zum Beispiel in app.sqlite.defekt.
  3. Im Ordner data die Dateien app.sqlite-wal und app.sqlite-shm löschen, falls vorhanden. Diesen Schritt nicht vergessen: Diese zwei Dateien gehören zur alten Datenbank und können die zurückgeholte Datenbank beschädigen.
  4. Die gewünschte Kopie aus data/backups, z. B. DB_2027.03.14.sqlite, in den Ordner data kopieren und in app.sqlite umbenennen.
  5. SmallTime starten und prüfen, ob alles da ist.

Important

Alles, was nach dem Datum der Kopie erfasst wurde (Stempel, Absenzen, Änderungen), ist danach weg und muss neu erfasst werden.

Aus einem vollständigen Backup zurückholen: SmallTime beenden, die Ordner data, uploads, config und die Datei .env aus dem Backup an ihre Stelle kopieren (vorher die -wal/-shm-Dateien in data löschen), SmallTime starten.


Update auf eine neue Version

Bei einem Update ersetzt du nur die Programmdateien. Deine Daten und Einstellungen bleiben, wo sie sind.

Caution

Nie überschreiben oder löschen: .env, config/, data/, uploads/, convert/. Sonst gehen Einstellungen oder Daten verloren oder alle Personen werden abgemeldet.

  1. Backup machen (siehe oben). Das ist wichtig: Eine neue Version passt die Datenbank beim Start an. Zurück zur alten Version geht danach nur mit dem Backup.

  2. Das neue SmallTime-Paket herunterladen und in einen separaten Ordner entpacken, z. B. C:\SmallTime-neu.

  3. SmallTime beenden.

  4. Aus dem neuen Paket nur diese Dateien und Ordner in deinen SmallTime-Ordner kopieren und die alten ersetzen:

    • app.cjs
    • dist/
    • public/
    • package.json
    • package-lock.json

    Lösche die alten Ordner dist und public am besten zuerst und kopiere dann die neuen hinein. So bleiben keine alten Dateien übrig. Das neue Paket enthält eventuell auch eine .env und einen Ordner config: diese nicht mitkopieren.

  5. Konsolenfenster im SmallTime-Ordner öffnen und eingeben:

    npm install --omit=dev
  6. SmallTime starten:

    npm start

    Beim Start bringt SmallTime die Datenbank automatisch auf den neuen Stand. Du musst dafür nichts tun.

  7. Im Browser anmelden und die Version prüfen (siehe unten).

Tip

Steht in den Hinweisen zur neuen Version, dass es neue Einstellungen in config/ gibt? Dann vergleiche die Dateien im Ordner config des neuen Pakets mit deinen und übernimm nur die neuen Zeilen. Fehlt eine Einstellung, verwendet SmallTime einen Standardwert.


Wo sehe ich die Version?

  1. Als Admin anmelden.
  2. Administration öffnen.
  3. Ganz unten im Menü links steht:
    • SmallTime – die Version, z. B. V1.0 oder V0.9.5 Beta
    • Node – die Version von Node.js, z. B. v26.9.0
    • Server – das Betriebssystem

Die Version steht auch in der Datei package.json im SmallTime-Ordner (Zeile "version").


Weiter mit: Installation Schritt für Schritt · Lizenz · Sicherheit und Betrieb (für die Informatik)

Clone this wiki locally