133 lines
5.1 KiB
Plaintext
133 lines
5.1 KiB
Plaintext
Create user and group
|
|
---------------------
|
|
Credentials -> Local Users -> Add
|
|
Full Name: photoview
|
|
Username: photovw
|
|
Disable Password: <selected>
|
|
Email: stuurmcp@telkomsa.net
|
|
UID: 3018
|
|
Create New Primary Group: <unselected>
|
|
Create Home Directory: <unchecked>
|
|
Samba Authentication: <unchecked>
|
|
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 <foldername>
|
|
# 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: <select>
|
|
Data: <select>
|
|
Post-data: <select>
|
|
Objects:
|
|
Check public to select all objects
|
|
Click Backup
|
|
|
|
Migrating database
|
|
------------------
|
|
# Refresh Dockge window/tab and start photoview in Dockge
|
|
# After successfull startup of photoview and postgress, stop photoview from cmd line
|
|
docker stop photoview
|
|
# copy back up file(s) to photoview backups folder
|
|
cp -vr /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/$(date -I) /mnt/SSD1/docker/data/photoview/pgbackups #replace $(date -I) with date when backup was made if not today
|
|
jlmkr shell docker
|
|
docker exec -it photoview_postgresql sh
|
|
psql -U photoview -d photoview < /mnt/backups/photoview-backup.sql
|
|
docker start photoview
|
|
exit
|
|
|
|
Copying photoview media-cache (optional)
|
|
----------------------------------------
|
|
If you choose not to copy the cache, prepare for a long wait (depending on the number photos) for thumbnails to be regenerated
|
|
In truenas shell:
|
|
cp -rp /mnt/stpool1/apps/photoview/* /mnt/SSD1/docker//data/photoview/appdata/media-cache/
|
|
chown -R photovw:media /mnt/SSD1/docker//data/photoview/appdata/media-cache
|
|
|
|
Starting up new photoview
|
|
---------------------
|
|
If photoview and postgresql containers are healthy in Dockge, browse to photoview.sthome.org
|
|
|
|
Stopping old photoview
|
|
----------------------
|
|
# Use heavyscript (not the truenas gui) to stop the app:
|
|
heavyscript app --stop photoview
|
|
|
|
|
|
|
|
|
|
|