Installed PS using Docker via Synology Docker UI but won't start

hey all, I’m sure this is something simple but I couldn’t figure out how to fix this. tried to search on the forum but didn’t find anything like this.

I installed PS following the instruction here PhotoStructure | PhotoStructure for Docker (refer to Synology docker instructions section). but when I start the docker, it has the following error:

it looks like a permission error, but not sure how to fix it. thanks

node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^
[Error: EACCES: permission denied, scandir '/ps/config'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/ps/config'
}
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^
[Error: EACCES: permission denied, scandir '/ps/config'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/ps/config'
}

Welcome to PhotoStructure, @zlly20 !

Did you perhaps omit the config bind mount? See https://photostructure.com/server/photostructure-for-docker/#psconfig

If that’s not it, please email (support@photostructure.com) or dm me your docker command so I can take a look.

thanks, @mrm, I used Synology docker GUI to install PhotoStrucuture, not sure what command behind the scene it is using as the container can’t start so I can’t really get a ps -ef output from the SSH. I will see what I can do. but I did config the config bind mount via the Synology docker GUI and give read and write access.

Ok, tried again using Portainer to deploy, where it gives me the option to deloy using docker compose, so I used the following docker compose file

version: "3.7"
services:
  photostructure:
    # You can run alpha, beta, or stable builds. See
    # <https://forum.photostructure.com/t/274> for details.
    image: photostructure/server:latest
    container_name: photostructure
    restart: on-failure
    stop_grace_period: 2m

    volumes:
      # This is where your PhotoStructure Library will be stored.
      # It must be readable, writable, and have sufficient free space.
      # If it is a remote volume, uncomment the PS_FORCE_LOCAL_DB_REPLICA
      # environment line below.

      - type: bind
        source: /volume3/familyalbum/photostructure/library # < CHANGE THIS LINE
        target: /ps/library

      # This must be fast, local disk with many gigabytes free.
      # PhotoStructure will use this directory for file caching
      # and for storing a temporary database replica when your
      # library is on a remote volume.

      - type: bind
        source: /volume3/familyalbum/photostructure/tmp
        target: /ps/tmp

      # This directory stores your "system settings"

      - type: bind
        source: /volume3/familyalbum/photostructure/config
        target: /ps/config

      # This directory stores PhotoStructure logfiles.

      - type: bind
        source: /volume3/familyalbum/photostructure/logs
        target: /ps/logs

      # Example additional directories to import into your library.
      # Add as many as you'd like, or remove one or both of these examples.

      # Set the target to /media/... or /mnt/...
      # (the name doesn't matter, as long as it is unique)

      - type: bind
        source: /volume3/familyalbum/photostructure/backup # < CHANGE THIS LINE
        target: /var/photos-backup

      # Here's another example directory to scan:
      # - type: bind
      #   source: /home/jamie/Pictures
      #   target: /var/home-jamie-pictures

    ports:
      - 1787:1787/tcp

    environment:
      # PhotoStructure has _tons_ of settings. See
      # <https://photostructure.com/faq/environment-variables/>

      # This tells PhotoStructure to only log errors, which is the default:
      - "PS_LOG_LEVEL=error"
      
      # - "PUID=1000" # < CHANGE THIS LINE to match the userid you want PhotoStructure to run under, or delete this line to run as root.
      # - "PGID=1000" # < CHANGE THIS LINE to match the groupid you want PhotoStructure to run under, or delete this line to run as root.


    labels:
      # See https://containrrr.dev/watchtower/container-selection/
      - "com.centurylinklabs.watchtower.enable=true"

  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    # Check for updates every couple hours: (3h * 60m * 60s)
    command: --interval 10800
    environment:
      - "WATCHTOWER_LABEL_ENABLE=true"

but still the same error occurs. wondering why it has a access issue to those folders.

That docker-compose looks good to me. Did you create those directories, like /volume3/familyalbum/photostructure/config?

(Apologies that this is a hassle: I’ll think about how I can simplify this by only requiring one bind-mount that the library, config, logs, and cache directories all live within)

no problem @mrm. and yes, I did create those folders, the paths to those folders in the compose file are literally copied and pasted from the file station, so they are definitely there.

image

Ok. I’ll try to reproduce your config on my Synology today and see if I can get to the bottom of it.