# https://github.com/ONLYOFFICE/Docker-documentserver/blob/master/README.md # https://hub.docker.com/r/onlyoffice/documentserver # https://github.com/ONLYOFFICE/Docker-documentserver Create user and group --------------------- Credentials -> Local Users -> Add Full Name: onlyoffice Username: onlyoff Disable Password: Primary Group: onlyoff Create Home Directory: Samba Authentication: Save onlyoff UID: 3049 onlyoff GID: 3048 Create datasets --------------- # In Truenas shell: # list datasets zfs list | grep -i "docker.*onlyoffice" zfs list | grep -i "NData2.*onlyoffice" # create following datasets if not present zfs create SSD1/docker/data/onlyoffice zfs create SSD1/docker/data/onlyoffice/communityserver zfs create SSD1/docker/data/onlyoffice/documentserver zfs create SSD1/docker/data/onlyoffice/mailserver zfs create SSD1/docker/data/onlyoffice/rabbitmq zfs create SSD1/docker/data/onlyoffice/redis zfs create SSD1/docker/data/onlyoffice/communityserver/letsencrypt zfs create SSD1/docker/data/onlyoffice/communityserver/logs zfs create SSD1/docker/data/onlyoffice/communityserver/data zfs create SSD1/docker/data/onlyoffice/documentserver/logs zfs create SSD1/docker/data/onlyoffice/documentserver/data zfs create SSD1/docker/data/onlyoffice/documentserver/lib zfs create SSD1/docker/data/onlyoffice/mailserver/logs zfs create SSD1/docker/data/onlyoffice/mailserver/data zfs create SSD1/docker/data/onlyoffice/pgdata zfs create SSD1/docker/data/onlyoffice/pgbackups zfs create SSD1/docker/data/onlyoffice/mysqldata zfs create stpool1/NData2/bulkstore zfs create stpool1/NData2/bulkstore/onlyoffice zfs create stpool1/NData2/bulkstore/onlyoffice/mailserver zfs create stpool1/NData2/bulkstore/onlyoffice/mailserver/data chown -R onlyoff:onlyoff /mnt/SSD1/docker/data/onlyoffice chown -R postgres:postgres /mnt/SSD1/docker/data/onlyoffice/pgdata chown -R postgres:postgres /mnt/SSD1/docker/data/onlyoffice/pgbackups chown -R onlyoff:onlyoff /mnt/SSD1/docker/data/onlyoffice/mysqldata chown -R onlyoff:onlyoff /mnt/stpool1/NData2/bulkstore/onlyoffice Create secrets folder --------------------- mkdir -p /mnt/SSD1/docker/stacks/onlyoffice/secrets mkdir /mnt/SSD1/docker/data/onlyoffice/redis/data Create folders -------------- mkdir /mnt/SSD1/docker/data/onlyoffice/documentserver/data/certs mkdir /mnt/SSD1/docker/data/onlyoffice/documentserver/public mkdir /mnt/SSD1/docker/data/onlyoffice/documentserver/fonts mkdir /mnt/SSD1/docker/data/onlyoffice/mailserver/data/certs chown onlyoff:onlyoff /mnt/SSD1/docker/data/onlyoffice/documentserver/data chown onlyoff:onlyoff /mnt/SSD1/docker/data/onlyoffice/documentserver/public chown onlyoff:onlyoff /mnt/SSD1/docker/data/onlyoffice/documentserver/fonts Copy folder to docker stacks ---------------------------- # In Windows cmd shell in onlyoffice folder, enter: ./cp2nas # or pscp -P 22 -r stacks/*.* root@192.168.2.2:/mnt/SSD1/docker/stacks/onlyoffice/ Create secrets -------------- # In Truenas shell: cd /mnt/SSD1/docker/stacks/onlyoffice/secrets echo -n $(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 32) > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_jwt_secret echo -n 'your_postgresql_database_name' > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_postgresql_database echo -n 'your_postgresql_username' > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_postgresql_username openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_postgresql_password openssl rand 64 | base64 -w 0 | sed 's/[\$,\#,/,+,=]//g' | cut -c -50 | tr -d '\n' > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_redis_password openssl rand 48 | base64 -w 0 > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_mysql_rootpassword openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_mysql_password openssl rand 36 | base64 -w 0 > /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_mysql_mailpassword # restrict access chown -R onlyoff:onlyoff /mnt/SSD1/docker/stacks/onlyoffice/secrets/ chmod -R 400 /mnt/SSD1/docker/stacks/onlyoffice/secrets/ # read existing acl permissions, if any getfacl /mnt/SSD1/docker/stacks/onlyoffice/secrets # set acl permissions setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/onlyoffice/secrets setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_postgresql_password setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_postgresql_username setfacl -m u:postgres:4 /mnt/SSD1/docker/stacks/onlyoffice/secrets/onlyoffice_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/onlyoffice/secrets for i in $(ls -1); do echo $i = `cat $i`; done | sort Backup onlyoffice 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 => onlyoffice -> Databases -> onlyoffice # Right click on onlyoffice 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: /#####/onlyoffice-backup.sql (this maps to: /mnt/stpool1/apps/pgadmin/storage/stuurmcp_telkomsa.net/#####/onlyoffice-backup.sql on truenas) # Or click on folder icon and navigate to the folder that was created above. Enter onlyoffice-backup.sql in Save As field, then click on Create Format: Plain Encoding: UTF8 Role name: onlyoffice Data Options: Sections: Pre-data: Post-data: