# https://docs.mealie.io/documentation/getting-started/installation/postgres/ Create user and group --------------------- Credentials -> Local Users -> Add Full Name: mealie Username: mealie Disable Password: Create Home Directory: Samba Authentication: Save mealie UID: 3011 mealie GID: 3010 Create datasets --------------- # In Truenas shell: # list datasets zfs list | grep -i "docker.*mealie" zfs list | grep -i "NData2.*mealie" # create following datasets if not present zfs create SSD1/docker/data/mealie zfs create SSD1/docker/data/mealie/appdata zfs create SSD1/docker/data/mealie/pgdata zfs create SSD1/docker/data/mealie/pgbackups chown -R mealie:mealie /mnt/SSD1/docker/data/mealie chown -R postgres:postgres /mnt/SSD1/docker/data/mealie/pgdata chown -R postgres:postgres /mnt/SSD1/docker/data/mealie/pgbackups Create folders -------------- mkdir -p /mnt/SSD1/docker/stacks/mealie/secrets Copy folder to docker stacks ---------------------------- # In Windows cmd shell in mealie folder, enter: ./cp2nas 10.0.0.20 # or pscp -P 22 -r stacks/*.* root@10.0.0.20:/mnt/SSD1/docker/stacks/mealie/ Create secrets -------------- # In Truenas shell: cd /mnt/SSD1/docker/stacks/mealie/secrets # database secrets echo -n 'your_postgresql_database_name' > /mnt/SSD1/docker/stacks/mealie/secrets/mealie_postgresql_database echo -n 'your_postgresql_username' > /mnt/SSD1/docker/stacks/mealie/secrets/mealie_postgresql_username openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/mealie/secrets/mealie_postgresql_password # smtp email secrets echo -n 'your_smtp_destination' > /mnt/SSD1/docker/stacks/mealie/secrets/smtp_destination echo -n 'your_smtp_from' > /mnt/SSD1/docker/stacks/mealie/secrets/smtp_from echo -n 'your_smtp_host' > /mnt/SSD1/docker/stacks/mealie/secrets/smtp_host echo -n 'your_smtp_password' > /mnt/SSD1/docker/stacks/mealie/secrets/smtp_password echo -n 'your_smtp_username' > /mnt/SSD1/docker/stacks/mealie/secrets/smtp_username # restrict access chown -R mealie:mealie /mnt/SSD1/docker/stacks/mealie/secrets/ chmod -R 400 /mnt/SSD1/docker/stacks/mealie/secrets/ # read existing acl permissions, if any getfacl /mnt/SSD1/docker/stacks/mealie/secrets # set acl permissions setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/mealie/secrets setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/mealie/secrets/mealie_postgresql_password setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/mealie/secrets/mealie_postgresql_username setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/mealie/secrets/mealie_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/mealie/secrets for i in $(ls -1); do echo $i = `cat $i`; done | sort Backup mealie 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 => mealie -> Databases -> mealie # Right click on mealie database and select Backup... # Enter the following on the different tabs of dialog box that opened: General: # Replace ##### with date in YYYY-MM-DD format when backup is being made Filename: /#####/mealie-backup.sql (this maps to: /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/#####/mealie-backup.sql on truenas) # Or click on folder icon and navigate to the folder that was created above. Enter mealie-backup.sql in Save As field, then click on Create Format: Plain Encoding: UTF8 Role name: mealie Data Options: Sections: Pre-data: Post-data: