Bearcat in Docker ausführen
Das Docker-Image enthält RAR und 7-Zip und verwendet SQLite. Du brauchst daher nur einen Container.
Du brauchst Docker mit Docker Compose. Das Image unterstützt nur linux/amd64. Raspberry Pi wird nicht unterstützt.
Unter Windows oder auf einem Mac mit Apple Silicon kannst du die native Desktopanwendung verwenden.
0. Docker installieren
Abschnitt betitelt „0. Docker installieren“Synology NAS
Abschnitt betitelt „Synology NAS“Installiere Container Manager über das Paket-Zentrum.
Windows
Abschnitt betitelt „Windows“Installiere Docker Desktop oder Rancher Desktop.
Unter Linux empfehle ich Docker Engine, auch auf Rechnern mit grafischer Oberfläche. Sie läuft direkt auf dem Host und vermeidet die zusätzliche Dateifreigabe zwischen Host und VM.
Du kannst Docker Desktop oder Rancher Desktop verwenden. Unter macOS empfehle ich OrbStack, besonders wegen der schnellen Dateizugriffe über Bind Mounts.
1. Compose-Datei herunterladen
Abschnitt betitelt „1. Compose-Datei herunterladen“Erstelle einen Ordner und lade diese Dateien über Download raw file auf GitHub herunter:
- docker-compose.yml
- .env.example, umbenannt in
.env
2. Releaseordner festlegen
Abschnitt betitelt „2. Releaseordner festlegen“Öffne .env in einem Texteditor und setze RELEASES_DIR auf einen vorhandenen Ordner mit deinen
Releasedateien. Bearcat braucht Lese- und Schreibzugriff darauf. Zum Beispiel:
Ersetze /srv/releases durch deinen eigenen Pfad. Die übrigen Einstellungen kannst du unverändert lassen.
Docker legt einen fehlenden Releaseordner nicht an. Existiert der Ordner nicht, startet der Container nicht.
BEARCAT_DATA_DIR speichert die Datenbank und den Verschlüsselungsschlüssel, standardmässig in
bearcat-data neben deiner Compose-Datei. Lege diesen Datenordner auf lokalen Speicher.
Releasedateien können auf einer NFS- oder SMB-Freigabe liegen.
Die folgenden Einstellungen gelten nur für Docker Engine direkt auf Linux. Mit Docker Desktop auf Windows, macOS oder Linux behältst du den normalen Bindmount aus der Compose-Datei.
Mit Docker Engine kann rslave Mountänderungen innerhalb von RELEASES_DIR vom Host an den Container weitergeben.
Der Hostmount muss dafür shared sein. Wird RELEASES_DIR selbst neu eingebunden, kann es nötig sein,
den Container neu zu erstellen. Details unter
Bindpropagation in Docker.
Ergänze in docker-compose.yml unter services.bearcat.volumes im Abschnitt bind des Eintrags für
${RELEASES_DIR} die Zeile propagation: rslave. Lass den Eintrag für den Datenordner unverändert.
3. Bearcat starten
Abschnitt betitelt „3. Bearcat starten“Öffne ein Terminal im Ordner mit docker-compose.yml und führe aus:
Öffne http://localhost:8080. Läuft Docker auf einem anderen Rechner oder einem NAS,
öffne stattdessen http://<server-address>:8080. Der erste Start kann einen Moment dauern.
Weiter: Bearcat einrichten und erstes Release hochladen.
In Bearcats Ordnerauswahl erscheint dein Releaseordner als /mnt/data/releases.
Bearcat aktualisieren
Abschnitt betitelt „Bearcat aktualisieren“- Öffne ein Terminal im Ordner deiner bestehenden Composedatei und führe aus:
- Lade die Weboberfläche neu und prüfe die angezeigte Version in der Seitenleiste unter dem Logo.
Mit latest lädt pull das aktuelle Image für Bearcat. Hast du in .env unter BEARCAT_IMAGE eine feste
Version eingetragen, ändere zuerst den Versionstag auf die gewünschte Version.
Ein Containerneustart allein lädt kein neues Image.
Behalte deine Composedateien, .env und Datenordner. Bei PostgreSQL muss weiterhin dieselbe
docker-compose.postgres.yml eingebunden sein. Der Pullbefehl lädt nur das Image für Bearcat.
Bearcat aktualisiert die Datenbank beim Start automatisch.
Bestehende Installationen mit PostgreSQL
Abschnitt betitelt „Bestehende Installationen mit PostgreSQL“Behalte deine bestehenden Compose-Dateien, um PostgreSQL weiterzuverwenden. Ersetzt du sie durch
die aktuellen Dateien mit SQLite als Standard, füge diese Zeile in .env ein (Windows: ; statt :):
Oder starte mit beiden Dateien:
Ohne den Override startet Bearcat mit einer leeren SQLite-Datenbank. Deine PostgreSQL-Daten sind
weiterhin vorhanden. Füge den Override hinzu und führe docker compose up -d erneut aus, um zurückzuwechseln.
Datenbank
Abschnitt betitelt „Datenbank“Behalte SQLite oder richte mit den folgenden Schritten PostgreSQL ein.
Stattdessen PostgreSQL verwenden
Abschnitt betitelt „Stattdessen PostgreSQL verwenden“- Speichere docker-compose.postgres.yml neben deiner Compose-Datei.
- Setze in
.envden WertPOSTGRES_PASSWORDauf ein eigenes Passwort. - Füge diese Zeile in
.envein, damit alle Compose-Befehle PostgreSQL verwenden:
Unter Windows trennst du die Dateinamen mit ; statt :.
Mit docker compose up -d startest du PostgreSQL in einem zweiten Container und verbindest Bearcat damit.
PostgreSQL speichert seine Daten in POSTGRES_DATA_DIR, standardmässig ./postgres-data.
Bearcat braucht BEARCAT_DATA_DIR weiterhin für seinen Verschlüsselungsschlüssel.
Ein Datenbankwechsel überträgt keine Daten; die neue Datenbank startet leer.
Backups
Abschnitt betitelt „Backups“Stoppe Bearcat vor dem Kopieren der SQLite-Datenbank:
Kopiere BEARCAT_DATA_DIR (normalerweise bearcat-data) samt bearcat.db und bearcat.key. Starte Bearcat danach wieder:
Für ein Backup bei laufendem Bearcat verwende auf dem Host sqlite3 bearcat-data/bearcat.db ".backup bearcat-backup.db".
Das Kopieren der verwendeten Datenbankdatei ergibt kein konsistentes Backup.
Bei PostgreSQL stoppst du beide Container, kopierst BEARCAT_DATA_DIR und POSTGRES_DATA_DIR und
startest sie wieder. Sichere Releasedateien separat.
Bewahre bearcat.key zusammen mit deinem Datenbankbackup auf. Ohne diese Datei kann Bearcat deine gespeicherten Kontozugangsdaten nicht lesen.
Docker-Einstellungen
Abschnitt betitelt „Docker-Einstellungen“| Variable | Zweck |
|---|---|
RELEASES_DIR |
Verzeichnis auf dem Host mit deinen Releasedateien. Erforderlich. |
BEARCAT_DATA_DIR |
Datenbank (bearcat.db bei SQLite) und Verschlüsselungsschlüssel (bearcat.key). |
BEARCAT_PORT |
Port der Weboberfläche, normalerweise 8080. |
BEARCAT_API_KEY |
Schlüssel für die Befehlsendpunkte der REST-API. Leer deaktiviert sie. Siehe Bearcat mit externen Tools steuern. |
BEARCAT_TIMEZONE |
Zeitzone für angezeigte Zeiten, zum Beispiel Europe/Berlin. Leer verwendet UTC. Siehe Zeitzone. |
BEARCAT_IMAGE |
Image, standardmässig ghcr.io/gizmo93/bearcat:latest. Trage hier einen Versionstag oder ein eigenes Image ein. |
BEARCAT_CPU_LIMIT |
CPU-Limit in Kernen, zum Beispiel 0.5 für einen halben Kern. |
BEARCAT_MEMORY_LIMIT |
Speicherlimit, zum Beispiel 512m oder 1g. |
PostgreSQL-Einstellungen
Abschnitt betitelt „PostgreSQL-Einstellungen“Diese Werte gelten nur mit docker-compose.postgres.yml.
| Variable | Zweck |
|---|---|
POSTGRES_DATA_DIR |
Verzeichnis auf dem Host für persistente PostgreSQL-Daten. |
POSTGRES_USER |
PostgreSQL-Benutzername. |
POSTGRES_PASSWORD |
PostgreSQL-Passwort. Wähle ein eigenes. |
POSTGRES_DB |
Datenbankname. |
POSTGRES_PORT |
Port auf dem Host für Datenbankverbindungen, normalerweise 5432. Ändere ihn, falls dieser Port bereits belegt ist. |
POSTGRES_CPU_LIMIT |
CPU-Limit in Kernen, zum Beispiel 0.5 für einen halben Kern. |
POSTGRES_MEMORY_LIMIT |
Speicherlimit, zum Beispiel 512m oder 1g. |
