Create user and group --------------------- Credentials -> Local Users -> Add Full Name: photoview Username: photovw Disable Password: Email: stuurmcp@telkomsa.net UID: 3018 Create New Primary Group: Create Home Directory: Samba Authentication: Save Credentials -> Local Groups -> Add Name: photovw GID: 3056 photovw UID: 3018 photovw GID: 3056 Create datasets --------------- # In Truenas shell: # list datasets zfs list | grep -i "docker.*photoview" # create following datasets if not present zfs create SSD1/docker/data/photoview zfs create SSD1/docker/data/photoview/appdata zfs create SSD1/docker/data/photoview/config zfs create SSD1/docker/data/photoview/pgdata zfs create SSD1/docker/data/photoview/pgbackups chown -R photovw:photovw /mnt/SSD1/docker/data/photoview chown -R postgres:postgres /mnt/SSD1/docker/data/photoview/pgdata chown -R postgres:postgres /mnt/SSD1/docker/data/photoview/pgbackups Create folder ------------- mkdir -p /opt/stacks/photoview/secrets Copy folder to docker stacks ---------------------------- In Windows cmd shell in photoview parent (apps) folder, enter: ./cp2nas 10.0.0.20 photoview # or pscp -P 22 -r photoview/stacks/*.* root@10.0.0.20:/mnt/SSD1/docker/stacks/photoview/ Create secrets -------------- # NB! As of writing of this guide, I could not get photoview to work with docker secrets; steps are included to adopt docker secrets as soon as photoview supports it # In Truenas shell: cd /mnt/SSD1/docker/stacks/photoview/secrets # database secrets echo -n 'your_postgresql_database_name' > /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_database echo -n 'your_postgresql_username' > /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_username openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_password # for future photoview's benefit cd /mnt/SSD1/docker/stacks/photoview/secrets/ echo -n "postgres://$(cat photoview_postgresql_username):$(cat photoview_postgresql_password)@photoview_postgresql:5432/$(cat photoview_postgresql_database)" > photoview_database_url # restrict access chown -R photovw:photovw /mnt/SSD1/docker/stacks/photoview/secrets/ chmod -R 400 /mnt/SSD1/docker/stacks/photoview/secrets/ # read existing acl permissions, if any getfacl /mnt/SSD1/docker/stacks/photoview/secrets # set acl permissions setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/photoview/secrets setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_password setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_username setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/photoview/secrets/photoview_postgresql_database # NB! if you want to remove all acl entries from a folder recursively, use setfacl -b -R # to list secrets in secrets dir cd /mnt/SSD1/docker/stacks/photoview/secrets for i in $(ls -1); do echo $i = `cat $i`; done | sort Backup photoview database --------------------- In truenas shell: mkdir /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/$(date -I) chown pgadmin:pgadmin /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/$(date -I) Using browser log in to pgAdmin on truenas Connect to servers; refer to "connecting to servers.txt", which also explains how to obtain db passwords To perform plain text backup: Navigate to Servers => photoview -> Databases -> photoview Right click on photoview database and select Backup... Enter the following on the different tabs of dialog box that opened: General: Replace ##### with today's date in YYYY-MM-DD format Filename: /#####/photoview-backup.sql (this maps to: /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/#####/photoview-backup.sql on truenas) Format: Plain Encoding: UTF8 Role name: photoview Data Options: Sections: Pre-data: Post-data: