Synology Photos Immich Foto Cloud – Vergleich, Eindruck, Installationsleitfaden

Eine Frage zum service; "immich_folder_album_creator"

Ich habe Immich gestartet, dann einen neuen API-Key erstellt, diesen kopiert und dann in Portainer im WebEditor eingetragen (anstelle des API-Key aus dem Code von oben). Dann den Stack upgedatet.

Der Container für "immich_folder_album_creator" wurde neu gestartet, hat jetzt im Container-Manager einen kryptischen Präfix vor dem Namen bekommen und läuft wieder.

Wenn ich allerdings http://192.168.xxx.xxx:8212/api (natürlich ersetzte ich xxx mit meinen realen Daten), dann erhalte ich folgende Fehlermeldung:

{
"message": "Cannot GET /api",
"error": "Not Found",
"statusCode": 404,
"correlationId": "g5261jyh"
}

Habe ich etwas vergessen / übersehen? Wann werden die Alben erzeugt?
 
1. Interne IPs musst du nicht zensieren. Damit kann niemand was anfangen.
2. Von welchem Container ist das der Port? Von Immich? Dann ist das doch ok.... Es gibt glaube ich keinen /api Endpunkt.
3. Gibt es was in den Logs?

Habe ich etwas vergessen / übersehen? Wann werden die Alben erzeugt?
Da müsstest du mal zeigen wie du es eingerichtet hast. Hast du den Cron gesetzt? Oder wann sollte er das erzeugen? Wenn du nichts setzt, sollte er beim start das erzeugen.....
 
Ok, Danke!

Ich habe im Browser http://192.168.3.91:8212/api eingegeben. Das ist doch die url unter der die api aufgerufen wird? Im Stack habe ich folgendes unter den services eingetragen:

Code:
  immich-folder-album-creator:
    container_name: immich_folder_album_creator
    image: salvoxia/immich-folder-album-creator:latest
    restart: unless-stopped
    environment:
      API_URL: http://192.168.3.91:8212/api
      API_KEY: "S5XMvJFRsxJbvmmZrs7v7llWZx1EMNetTORq1IUBc"
      ROOT_PATH: /home/photo/archiv,/home/grace,/home/ralf
      ALBUM_LEVELS: "2,2"
      CRON_EXPRESSION: "*/5 * * * *"
      TZ: Europe/Berlin

Im Log des Container "immich-folder-album-creator" finde ich als letzten Eintrag:

Code:
  requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='192.168.3.91', port=8212): Max retries exceeded with url: /api/server/version (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f5629bf2d50>, 'Connection to 192.168.3.91 timed out. (connect timeout=20)'))

Die IP 192.168.3.91 ist die (feste) IP meines NAS im eigenen Netzwerk.
 
Ja. Die Vorschauen werden noch generiert, deshalb fehlen einige noch.

1741253727268.png
 
Hmm merkwürdig....
Geh mal ins Terminal von dem Container und probiert mal curl http://192.168.3.91:8212/api/server/version aufzurufen. Du kannst das auch mal probieren in deinem Browser aufzurufen. Da müsste sowas kommen: {"major":1,"minor":129,"patch":0}
 
Mit dem Aufruf:
Code:
http://192.168.3.91:8212/api/server/version

erhalte ich folgende Ausgabe:
Code:
http://192.168.3.91:8212/api/server/version

Es scheint also zu laufen. Darf man vielleicht den root path http://192.168.3.91:8212/api/ nicht benutzen?
 
Copy&Paste Fehler? Du erhälst nicht wirklich die URL wieder zurück oder? :)
Und geht das auch im Container?
 
:eek: Ja, Cut&Paste Error ...

Die Antwort war:

Code:
{
  "major": 1,
  "minor": 129,
  "patch": 0
}
 
Im Browser
 
Im Container bekomme ich es nicht hin. Im Container Manager sehe ich die Fehlermeldungen, bash kann ich nicht öffnen. Im Portainer fehlt ein "Attach"? Irgendwie bin ich hilflos bei dem Hinweis : "... mach es auf der Console ..."
Jedenfalls ist die Fehlermeldung immer noch da.
 
Muss nicht der Aufruf mit der internen IP des containers erfolgen? Also irgendeine 127.0.0.x Adresse?
 
Siehe https://docs.portainer.io/user/docker/containers/console Ich verwende kein Portainer und kann daher keine Screenshots machen wo du klicken musst. Wenn Bash nicht geht, dann mal sh probieren.
Nein es muss nicht über 127.0.0.x erfolgen. Entweder über den Servicenamen, wenn sie im selben Docker Netzwerk sind oder ansonsten machst du mit Host-IP:Port nichts falsch.
 
sh war ein guter Tipp. Allerdings can ich kein curl absetzen (nur http://192.168.3.91:8212/api/server/version klappt ja nicht).
Ein Ping auf 192.168.3.91 funktioniert NICHT in der Console. Alle packets lost. Ein Ping auf 127.20.0.6 (immich-server) funktioniert!
Wenn der Ping nicht funktioniert, dann muss noch etwas geändert werden. Aber was?

Was könnte / muss ich in der Console eingeben?
 
Zuletzt bearbeitet:
Wäre interessant wieso du es nicht kannst. Ist curl nicht vorhanden oder was ist die Meldung?
 
Zuletzt bearbeitet:
Ein Ping auf 192.168.3.91 funktioniert NICHT in der Console. Alle packets lost. Ein Ping auf 127.20.0.6 (immich-server) funktioniert!
Die 127.x.x.x kann sich jederzeit ändern. Du könntest aber statt der IP den Containernamen verwenden.
Ohne zu wissen wie es aber konkret eingerichtet ist, ist es schwer zu helfen oder Tipps zu geben. Das komplette Bild fehlt da halt.
 
In der ENV-Datei steht: "IMMICH_SERVER_URL=http://immich-server:3001"

Wenn ich dies im Container eintrage:
Code:
  immich-folder-album-creator:
    container_name: immich_folder_album_creator
    image: salvoxia/immich-folder-album-creator:latest
    restart: unless-stopped
    environment:
      API_URL: http://immich-server:3001/api
      API_KEY: "S5XMvJFRsxJbvmmZrs7v7llWZx1EMNetTORq1IUBc"
      ROOT_PATH: /home/photo/archiv,/home/grace,/home/ralf
      ALBUM_LEVELS: "2,2"
      CRON_EXPRESSION: "*/5 * * * *"
      TZ: Europe/Berlin

Dann bekomme ich jetzt folgende Fehlermeldung:
Code:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='immich-server', port=3001): Max retries exceeded with url: /api/server/version (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f6392ca3650>: Failed to establish a new connection: [Errno 111] Connection refused'))

Scheinbar wird der immich-server gefunden, aber die Verbindung wird zurückgewiesen. Der Benutzer den ich zum aufsetzen der Container verwende ist ein Administrator, aber nicht root und nicht admin. Wenn ich die Beschreibung am Anfang verstanden habe, wird ja ein user mit id und grp benötigt, dem der Container gehört:

Code:
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    container_name: Immich-SERVER
    hostname: immich-server
    user: 1035:101
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    ports:
      - 8212:2283
    volumes:
 
Hier das komplette Stackfile:

Code:
services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    container_name: Immich-SERVER
    hostname: immich-server
    user: 1035:101
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    ports:
      - 8212:2283
    volumes:
      - /volume1/sonstiges-tmp/docker/immich/upload:/usr/src/app/upload:rw
      - /volume1/photo:/home/photo/archiv:rw
      - /volume1/homes/Grace/Photos:/home/grace:rw
      - /volume1/homes/Ralf/Photos:/home/ralf:rw 
    restart: on-failure:5
    depends_on:
      immich-redis:
        condition: service_healthy
      immich-db:
        condition: service_started

  immich-redis:
    image: redis
    container_name: Immich-REDIS
    hostname: immich-redis
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    user: 1035:100
    environment:
      - TZ=Europe/Berlin
    volumes:
      - /volume2/docker/immich/redis:/data:rw
    restart: on-failure:5

  immich-db:
    image: tensorchord/pgvecto-rs:pg16-v0.2.0
    container_name: Immich-DB
    hostname: immich-db
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - /volume2/docker/immich/db:/var/lib/postgresql/data:rw
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_DB=immich
      - POSTGRES_USER=immichuser
      - POSTGRES_PASSWORD=immichpassword
    restart: on-failure:5

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:release
    container_name: Immich-LEARNING
    hostname: immich-machine-learning
    user: 1035:100
    security_opt:
      - no-new-privileges:true
    env_file:
      - stack.env
    volumes:
      - /volume1/sonstiges-tmp/docker/immich/upload:/usr/src/app/upload:rw
      - /volume2/docker/immich/cache:/cache:rw
      - /volume2/docker/immich/matplotlib:/matplotlib:rw
    environment:
      - MPLCONFIGDIR=/matplotlib
    restart: on-failure:5
    depends_on:
      immich-db:
        condition: service_started
      
  immich-folder-album-creator:
    container_name: immich_folder_album_creator
    image: salvoxia/immich-folder-album-creator:latest
    restart: unless-stopped
    environment:
      API_URL: http://immich-server:3001/api
      API_KEY: "S5XMvJFRsxJbvmmZrs7v7llWZx1EMNetTORq1IUBc"
      ROOT_PATH: /home/photo/archiv,/home/grace,/home/ralf
      ALBUM_LEVELS: "2,2"
      CRON_EXPRESSION: "*/5 * * * *"
      TZ: Europe/Berlin
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat