Create user and group --------------------- Credentials -> Local Users -> Add Full Name: home-assistant Username: hmeassist Disable Password: Create Home Directory: Samba Authentication: Save hmeassist UID: 3038 hmeassist GID: 3037 Create datasets --------------- # In Truenas shell: # list datasets zfs list | grep -i "docker.*home-assistant" # create following datasets if not present zfs create SSD1/docker/data/home-assistant/config zfs create SSD1/docker/data/home-assistant/pgbackups zfs create SSD1/docker/data/home-assistant/pgdata chown -R hmeassist:hmeassist /mnt/SSD1/docker/data/home-assistant chown pguser:pguser /mnt/SSD1/docker/data/home-assistant/pgbackups chown pguser:pguser /mnt/SSD1/docker/data/home-assistant/pgdata Create folders -------------- # In Truenas shell: mkdir -p /mnt/SSD1/docker/stacks/home-assistant/secrets Copy folder to docker stacks ---------------------------- # In Windows cmd shell in home-assistant folder, enter: ./cp2nas # or pscp -P 22 -r stacks/*.* root@192.168.2.2:/mnt/SSD1/docker/stacks/home-assistant/ # This should copy home-assistant stacks folder to /mnt/SSD1/docker/stacks/home-assistant Create secrets -------------- # In Truenas shell: cd /mnt/SSD1/docker/stacks/home-assistant/secrets echo -n 'your_db_name' > /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_database echo -n 'your_db_user' > /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_username openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_password # restrict access cd /mnt/SSD1/docker/stacks/home-assistant chown -R hmeassist:hmeassist secrets/ chmod -R 400 secrets/ # read existing acl permissions, if any getfacl /mnt/SSD1/docker/stacks/home-assistant/secrets # set acl permissions setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/home-assistant/secrets setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_password setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_username setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/home-assistant/secrets/home-assistant_postgresql_database # NB! if you want to remove all acl entries from a folder recursively, use setfacl -b -R Backup home-assistant 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 => home-assistant -> Databases -> home-assistant # Right click on home-assistant 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: /#####/home-assistant-backup.sql (this maps to: /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/#####/home-assistant-backup.sql on truenas) # Or click on folder icon and navigate to the folder that was created above. Enter home-assistant-backup.sql in Save As field, then click on Create Format: Plain Encoding: UTF8 Role name: home-assistant Data Options: Sections: Pre-data: Post-data: