externe Festplatte richtig mouten für Docker/Immich und Co.

becksmania

New Member
Aug 24, 2024
8
0
1
Hallo zusammen,

ich habe mir vor kurzem einen Dell Wyse 5070 Mini PC mit einer 256GB M2-SSD zugelegt. Auf das System hab ich Proxmox installiert und die ersten LXCZ/VM. Pihole und HomeAssistant laufen super. Hab dann von Immich gehört und war direkt begeistert und wollte das ganze installieren. Das hat auch geklappt. Nun wollte ich unter anderem dafür mehr Speicher und hab mir eine 5TB externe Platte geholt. Diese will ich jetzt gerne richtig ins System einbinden, damit ich diese unter anderem unter Docker/Immich mit nutzen kann.

Nun die Frage an euch Experten, wie ist der richtige Weg. Sollte Docker per LXC oder besser unter eine VM laufen? Sollte ich die externe Platte vorher partitionieren oder reicht es, wenn ich mehre Ordner später anlege? Oder sollte ich per OpenMediaVault nen Share Ordner erstellen?

Vielen Dank für die Hilfe!
BecksMania
 
Last edited:
Docker am besten immer in eine VM.
Wenn die Disk nur für immich sein soll, dann per virtuelles USB oder direkt als Disk Device per qm set in die VM hängen. Partitionieren und Formatieren kannst du dann in der VM.
 
Docker am besten immer in eine VM.
Wenn die Disk nur für immich sein soll, dann per virtuelles USB oder direkt als Disk Device per qm set in die VM hängen. Partitionieren und Formatieren kannst du dann in der VM.
Hey Falk,

danke für deine Antwort. Ich will die Disk auch gerne noch für andere Sachen nutzen. Wie sollte ich das dann am besten machen?
 
Dann würde ich wie du geschrieben hast, OMV nutzen und nur einen Share für deine Docker Container bereitstellen.
 
  • Like
Reactions: becksmania
Dann würde ich wie du geschrieben hast, OMV nutzen und nur einen Share für deine Docker Container bereitstellen.
Danke! Wie sollte ich da bei OMV am besten vorgehen? den kompletten USB Port mit der Platte durchschleifen oder mehre virtuelle Ordner erstellen?
 
Last edited:
  • Like
Reactions: becksmania
Ja, OMV will ja unbedingt eine komplette Platte haben.

In OMV kannst du dann Freigaben einrichten wie du willst.

Edit: Du könntest die Disk auch per Disk-Passthrough an die VM hängen, falls dir der Standby der USB-Platte nicht wichtig ist:

https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM)
Hey Ernst,
danke für deine Antwort. Dann wird OMV die komplette 5TB USB-Platte erhalten. Der Standby der USB-Platte ist mir wichtig. Worauf muss ich dann dort genau drauf achten?

@Falk R. @ErnstM
Sollte Docker dann immer noch über die VM laufen oder reicht hier dann wieder LXC?
 
Hallo zusammen,
habe jetzt erfolgreich OpenMediaVault installiert, die Festplatte dort eingebunden und Zugriff über das Netzwerk. Hab dann eine VM mit Ubuntu Server aufgesetzt und dort Docker und Portainer installiert. Läuft ebenfalls. Hab dann in der /etc/fstab den Netzwerk Pfad eingegeben und die Login Daten in der .smbcredentials hinterlegt und den Ordnet mit mount -a verküpft. Läuft ebenfalls.

Nur wie teile ich Immich jetzt mit, wohin er die Daten speichern soll? Könnt ihr mir da bitten helfen?
DANKE!
 
Ich kenne Immich nicht. aber ich vermute du musst den gemounteten Ordner in der docker-compose.yaml anpassen.
Bei meinem Photoprism sieht das zB. so aus:

Code:
    ## Storage Folders:
    volumes:
      - "/mnt/photo:/photoprism/originals"               # Original media files (DO NOT REMOVE)
      - "/daten/photoprism:/photoprism/storage"          # *Writable* storage folder for cache, database, and sidecar files (DO NOT REMOVE)

/mnt/photo kommt vom FileServer auf dem die Fotos liegen. Sollte bei Immich ähnlich sein ...
 
Last edited:
  • Like
Reactions: becksmania
Bei Immich gibt es 2 Daten. Einmal die Datei .env und die docker-compose.yaml. Wenn ich das richtig verstanden habe, darf ich die {UPLOAD_LOCATION} nicht ändern. Also ändere ich nur den Punkt in der .env?

.env
YAML:
# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

docker-compose.yaml
YAML:
 immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
      volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of U>     
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
    restart: always

volumes:
  model-cache:

Der Mount-Ordner heißt bei mir /media/immich
Wäre der Code für die .env dann wiefolgt richtig?
YAML:
UPLOAD_LOCATION=/media/immich:./library

Danke!
 
Hallo
bei mir funktioniert das mit dem Upload nicht richtig.
ext. Library heißt /samsung/immich und wird auch als ext. Bibliothek erkannt und validiert. Einlesen der Bilder klappt

Die Thumbs usw wir aber alles "intern" auf der Systemplatte generiert.
in der .env hab ich folgendes:
UPLOAD_LOCATION=/samsung/immich

in der docker-compose.yml steht
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /samsung/immich/fotos:/samsung/immich/fotos

habs auch schon versucht mit
- ${UPLOAD_LOCATION}:/samsung/imich/upload
- /samsung/immich/fotos:/samsung/immich/fotos

klappt auch nicht. was mach ich da falsch?

danke
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!