Immich Backup aus dem Unraid Docker


nice83

Recommended Posts

Hi Leute,

 

vielleicht kann mir einer von euch folgendes Beantworten. Ich habe Immich als Docker aus dem Unraidstore installiert und eingerichtet. Läuft seit einem halben Jahr wirklich super :)

Ich benutze zum sichern  AppDataBackup hier sind alle meine Docker ausgewählt.

Meine Fotos sind separat nochmal mit LuckyBackup gesichert

Jetzt habe ich das Immich Update gemacht und der erst Start funktionierte nicht, hier war dann erstmal Panik angesagt und wollte dann eigentlich einen Restore machen mit AppDataBackup. Hier fiel mir dann aber auf das ich Immich nicht auswählen konnte für das wiederherstellen. Da war der Schock dann natürlich noch etwas größer.

 

Ich habe Immich aber mit der neuen Version wieder hinbekommen und alles läuft wie es soll.

 

Jetzt aber meine Frage. Weiß jemand von euch wie ich Immich am besten sichern kann, also speziell die Datenbank falls doch mal ein Docker zerschossen wird ? 

Ich finde leider auch nirgends einen Ordner indem die Docker drin sind. Unter appdata ist nichts von Immich zu sehen und meinen Immich Ordner den ich sichere, indem sind nur die Fotos drin. 

 

Ich hatte auf der Immichseite gelesen das man einen Dump machen kann aber das wäre mir tatsächlich zu aufwändig und riskant. Alternativ wäre für mich sonst noch eine VM anzulegen aber das wäre jetzt nur wenn es keine andere Möglichkeit gibt

 

Ich freue mich über ein paar Tipps oder Ratschläge

 

Link to comment

Ich und viele andere nutzen das Backup Script von Mgutt.
Das kann ich nur empfehlen. Macht saubere inkrementelle Backups. Das hilft mir jedes Mal, wenn meine Nextcloud z.B. zicken macht. Da überlege ich gar nicht lang. Da kommt einfach das letzte Backup drüber. Ich sichere damit einfach täglich und hab meine Ruhe.

Link to comment
5 hours ago, nice83 said:

Jetzt aber meine Frage. Weiß jemand von euch wie ich Immich am besten sichern kann, also speziell die Datenbank falls doch mal ein Docker zerschossen wird ? 

Ich finde leider auch nirgends einen Ordner indem die Docker drin sind. Unter appdata ist nichts von Immich zu sehen und meinen Immich Ordner den ich sichere, indem sind nur die Fotos drin. 

naja, wundert mich jetzt etwas aber ich kenne die app auch nicht.

 

dann wird wohl eh alles innerhalb des Dockers laufen und alles relevante wird nur über die env Variables geregelt ... dann ist das bei jedem Update auch immer wieder neu ... da gibt es dann auch nichts zu sichern wo keine persistent Daten sind, sprich, der legt die Datenbank (sofern vorhanden) eh immer wieder neu an ...

Link to comment

Die Datenbank ist natürlich auch persisten. 

Je nachdem, wie du deinen Dockerdienst eingestellt hast findest du, wenn du in der Settings zu Docker "Directory" anstatt "Volume" genommen hast auch genau an dem Pfad die Volumes für Immich. 

Bei mir wäre es somit unter /mnt/cache/docker/volumes/immich_*    

Diese kannst du natürlich auch beim ersten ausrollen des Containers umleiten. Dazu muss man bei den Pfaden für die Volumes im docker-compose file entsprechend passend vergeben. 

Hier mal meine Docker-Compose Datei

version: "3.8"

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ["start.sh", "immich"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /mnt/cache/Bilder:/mnt/Bilder
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.yml
    #   service: hwaccel
    command: ["start.sh", "microservices"]
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /mnt/cache/Bilder:/mnt/Bilder
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
      - typesense
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - /mnt/cache/appdata/immich/model-cache:/cache
    env_file:
      - .env
    restart: always

  typesense:
    container_name: immich_typesense
    image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
    environment:
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_DATA_DIR=/data
      # remove this to get debug messages
      - GLOG_minloglevel=1
    volumes:
      - /mnt/cache/appdata/immich/tsdata:/data
    restart: always

  redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:3995fe6ea6a619313e31046bd3c8643f9e70f8f2b294ff82659d409b47d06abb
    restart: always

  database:
    container_name: immich_postgres
    image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - /mnt/cache/appdata/immich/pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  model-cache:
  tsdata:

So landen die wichtigen Datenbank Dateien z.B. in

/mnt/cache/appdata/immich/

 

"cache" ist dabei der Name meines CachePools. Auf diesem liegt naheliegend mein "appdata"-Ordner indem ich dann einen Ordner für immich anlegen lasse.

 

So wird alles so wie es sein sollte automatisch gesichert, wenn man den Appdata Ordner sichert.

 

  • Thanks 2
Link to comment
  • 1 month later...

So jetzt habe ich doch noch mal ne Frage. Ich habe mich nun entschieden einen neuen Unraidserver aufzusetzen (kleiner und feiner) 😂

Ich habe nun alle Docker erfolgreich umgezogen aber bei Immich möchte ich nun ein bisschen was optimieren aber ich komme leider gerade nicht weiter.

 

Ich habe ein Dump gemacht wie hier beschrieben klick

 

Ich habe Immich mit dem Docker Compose Plugin eingerichtet. Nun habe ich aber gesehen das es Immich auch als richtige App gibt im Store. Ich finde das etwas angenehmer da ich hier das Gefühl habe besser zu sichern und etwas mehr Kontrolle habe über die einzelnen Docker. (Immich, Redis & Postgres)

Also alle Docker installiert. Dump Wiederhergestellt und Immich gestartet. Log bis jetzt ohne Fehler 😁

 

Nun kommt die Seite mit den Fotos und im Log ist ordentlich was los:

 

[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/39f9e3ba-2f9b-4980-8a6f-5cc41e846a19.jpeg'] Unable to send file: Error
[Nest] 176  - 12/30/2023, 6:39:18 AM    WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/39f9e3ba-2f9b-4980-8a6f-5cc41e846a19.jpeg'
Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/39f9e3ba-2f9b-4980-8a6f-5cc41e846a19.jpeg'
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/9444d170-dfdd-4006-9b9c-68508a358d9b.jpeg'] Unable to send file: Error
[Nest] 176  - 12/30/2023, 6:39:18 AM    WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/9444d170-dfdd-4006-9b9c-68508a358d9b.jpeg'
Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/9444d170-dfdd-4006-9b9c-68508a358d9b.jpeg'
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/68b8cb25-8fc6-4967-9937-1132dd6fca57.jpeg'] Unable to send file: Error
[Nest] 176  - 12/30/2023, 6:39:18 AM    WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/68b8cb25-8fc6-4967-9937-1132dd6fca57.jpeg'
Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/68b8cb25-8fc6-4967-9937-1132dd6fca57.jpeg'
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/2e/26/2e2640f6-c3f0-42d2-99be-0e63a46a8f15.webp'] Unable to send file: Error
[Nest] 176  - 12/30/2023, 6:39:18 AM    WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses
[Nest] 176  - 12/30/2023, 6:39:18 AM   ERROR [ExceptionsHandler] ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/2e/26/2e2640f6-c3f0-42d2-99be-0e63a46a8f15.webp'
Error: ENOENT: no such file or directory, access 'upload/thumbs/be7e3455-449c-485a-bb16-05acd2126d57/2e/26/2e2640f6-c3f0-42d2-99be-0e63a46a8f15.webp'
.... usw ...

 

Die Pfade sind im Docker angepasst:

 

Photos: /mnt/user/Immich/

Upload: /mnt/user/Immich/

 

im Immich Ordner ist der Upload Ordner und den Thumbs Ordner habe ich dort hineingeschoben da er vorher direkt im Immich Rootverzeichnis war.

Hab ich hier vielleicht nur ein Problem mit den Rechten ?

 

Wäre cool wenn hier jemand einen Tipp für mich hat :)

 

Gruß Nico

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.