diff --git a/poetry.lock b/poetry.lock index 002dfb2..7ac874e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -50,7 +50,7 @@ pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [[package]] name = "beautifulsoup4" -version = "4.11.2" +version = "4.12.0" description = "Screen-scraping library" category = "main" optional = false @@ -263,7 +263,7 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm [[package]] name = "pytz" -version = "2022.7.1" +version = "2023.2" description = "World timezone definitions, modern and historical" category = "main" optional = false @@ -618,11 +618,11 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "watchdog" -version = "2.3.1" +version = "3.0.0" description = "Filesystem events monitoring" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.extras] watchmedo = ["PyYAML (>=3.10)"] @@ -673,8 +673,8 @@ babel = [ {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, ] beautifulsoup4 = [ - {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"}, - {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"}, + {file = "beautifulsoup4-4.12.0-py3-none-any.whl", hash = "sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591"}, + {file = "beautifulsoup4-4.12.0.tar.gz", hash = "sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"}, ] certifi = [ {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, @@ -871,8 +871,8 @@ pytest = [ {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, ] pytz = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, + {file = "pytz-2023.2-py2.py3-none-any.whl", hash = "sha256:8a8baaf1e237175b02f5c751eea67168043a749c843989e2b3015aa1ad9db68b"}, + {file = "pytz-2023.2.tar.gz", hash = "sha256:a27dcf612c05d2ebde626f7d506555f10dfc815b3eddccfaadfc7d99b11c9a07"}, ] pyyaml = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, @@ -1024,34 +1024,33 @@ urllib3 = [ {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, ] watchdog = [ - {file = "watchdog-2.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1f1200d4ec53b88bf04ab636f9133cb703eb19768a39351cee649de21a33697"}, - {file = "watchdog-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:564e7739abd4bd348aeafbf71cc006b6c0ccda3160c7053c4a53b67d14091d42"}, - {file = "watchdog-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:95ad708a9454050a46f741ba5e2f3468655ea22da1114e4c40b8cbdaca572565"}, - {file = "watchdog-2.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a073c91a6ef0dda488087669586768195c3080c66866144880f03445ca23ef16"}, - {file = "watchdog-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa8b028750b43e80eea9946d01925168eeadb488dfdef1d82be4b1e28067f375"}, - {file = "watchdog-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:964fd236cd443933268ae49b59706569c8b741073dbfd7ca705492bae9d39aab"}, - {file = "watchdog-2.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:91fd146d723392b3e6eb1ac21f122fcce149a194a2ba0a82c5e4d0ee29cd954c"}, - {file = "watchdog-2.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:efe3252137392a471a2174d721e1037a0e6a5da7beb72a021e662b7000a9903f"}, - {file = "watchdog-2.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:85bf2263290591b7c5fa01140601b64c831be88084de41efbcba6ea289874f44"}, - {file = "watchdog-2.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f2df370cd8e4e18499dd0bfdef476431bcc396108b97195d9448d90924e3131"}, - {file = "watchdog-2.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ea5d86d1bcf4a9d24610aa2f6f25492f441960cf04aed2bd9a97db439b643a7b"}, - {file = "watchdog-2.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6f5d0f7eac86807275eba40b577c671b306f6f335ba63a5c5a348da151aba0fc"}, - {file = "watchdog-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b848c71ef2b15d0ef02f69da8cc120d335cec0ed82a3fa7779e27a5a8527225"}, - {file = "watchdog-2.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0d9878be36d2b9271e3abaa6f4f051b363ff54dbbe7e7df1af3c920e4311ee43"}, - {file = "watchdog-2.3.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4cd61f98cb37143206818cb1786d2438626aa78d682a8f2ecee239055a9771d5"}, - {file = "watchdog-2.3.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3d2dbcf1acd96e7a9c9aefed201c47c8e311075105d94ce5e899f118155709fd"}, - {file = "watchdog-2.3.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03f342a9432fe08107defbe8e405a2cb922c5d00c4c6c168c68b633c64ce6190"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7a596f9415a378d0339681efc08d2249e48975daae391d58f2e22a3673b977cf"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:0e1dd6d449267cc7d6935d7fe27ee0426af6ee16578eed93bacb1be9ff824d2d"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_i686.whl", hash = "sha256:7a1876f660e32027a1a46f8a0fa5747ad4fcf86cb451860eae61a26e102c8c79"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:2caf77ae137935c1466f8cefd4a3aec7017b6969f425d086e6a528241cba7256"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:53f3e95081280898d9e4fc51c5c69017715929e4eea1ab45801d5e903dd518ad"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:9da7acb9af7e4a272089bd2af0171d23e0d6271385c51d4d9bde91fe918c53ed"}, - {file = "watchdog-2.3.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:8a4d484e846dcd75e96b96d80d80445302621be40e293bfdf34a631cab3b33dc"}, - {file = "watchdog-2.3.1-py3-none-win32.whl", hash = "sha256:a74155398434937ac2780fd257c045954de5b11b5c52fc844e2199ce3eecf4cf"}, - {file = "watchdog-2.3.1-py3-none-win_amd64.whl", hash = "sha256:5defe4f0918a2a1a4afbe4dbb967f743ac3a93d546ea4674567806375b024adb"}, - {file = "watchdog-2.3.1-py3-none-win_ia64.whl", hash = "sha256:4109cccf214b7e3462e8403ab1e5b17b302ecce6c103eb2fc3afa534a7f27b96"}, - {file = "watchdog-2.3.1.tar.gz", hash = "sha256:d9f9ed26ed22a9d331820a8432c3680707ea8b54121ddcc9dc7d9f2ceeb36906"}, + {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, + {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, + {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, + {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, + {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, + {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, + {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, + {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, + {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, + {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, + {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, + {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, + {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, + {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, + {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, ] wcwidth = [ {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, diff --git a/site/source/_static/images/backups/truenas-1-users.png b/site/source/_static/images/backups/truenas-1-users.png new file mode 100644 index 0000000..11f236d Binary files /dev/null and b/site/source/_static/images/backups/truenas-1-users.png differ diff --git a/site/source/_static/images/backups/truenas-2-newuser.png b/site/source/_static/images/backups/truenas-2-newuser.png new file mode 100644 index 0000000..a344fe8 Binary files /dev/null and b/site/source/_static/images/backups/truenas-2-newuser.png differ diff --git a/site/source/_static/images/backups/truenas-3-services-enable_smb.png b/site/source/_static/images/backups/truenas-3-services-enable_smb.png new file mode 100644 index 0000000..0eed1d0 Binary files /dev/null and b/site/source/_static/images/backups/truenas-3-services-enable_smb.png differ diff --git a/site/source/_static/images/backups/truenas-4-shell-mkdir.png b/site/source/_static/images/backups/truenas-4-shell-mkdir.png new file mode 100644 index 0000000..1a60849 Binary files /dev/null and b/site/source/_static/images/backups/truenas-4-shell-mkdir.png differ diff --git a/site/source/_static/images/backups/truenas-5-sharing-smb-create_share.png b/site/source/_static/images/backups/truenas-5-sharing-smb-create_share.png new file mode 100644 index 0000000..3bcef51 Binary files /dev/null and b/site/source/_static/images/backups/truenas-5-sharing-smb-create_share.png differ diff --git a/site/source/_static/images/backups/truenas-6-sharing-smb-config_acl.png b/site/source/_static/images/backups/truenas-6-sharing-smb-config_acl.png new file mode 100644 index 0000000..b9342f0 Binary files /dev/null and b/site/source/_static/images/backups/truenas-6-sharing-smb-config_acl.png differ diff --git a/site/source/_static/images/backups/truenas-7-acl.png b/site/source/_static/images/backups/truenas-7-acl.png new file mode 100644 index 0000000..e1ff713 Binary files /dev/null and b/site/source/_static/images/backups/truenas-7-acl.png differ diff --git a/site/source/_static/images/backups/truenas-9-start9server-create_backup.png b/site/source/_static/images/backups/truenas-9-start9server-create_backup.png new file mode 100644 index 0000000..8f6f1e0 Binary files /dev/null and b/site/source/_static/images/backups/truenas-9-start9server-create_backup.png differ diff --git a/site/source/user-manual/backups/backup-create.rst b/site/source/user-manual/backups/backup-create.rst index 80cd167..5c70347 100644 --- a/site/source/user-manual/backups/backup-create.rst +++ b/site/source/user-manual/backups/backup-create.rst @@ -24,6 +24,7 @@ Select your platform for detailed instructions on how to create a Network Folder Mac Network Folder Windows Network Folder Synology Network Folder + TrueNAS Network Folder Physical Drive via Embassy .. _backup-create: diff --git a/site/source/user-manual/backups/backup-setup/backup-synology.rst b/site/source/user-manual/backups/backup-setup/backup-synology.rst index 88ad705..e644a13 100644 --- a/site/source/user-manual/backups/backup-setup/backup-synology.rst +++ b/site/source/user-manual/backups/backup-setup/backup-synology.rst @@ -52,4 +52,4 @@ Connect Embassy #. Click "Save". -That's it! You can now :ref:`Create` encrypted, private backups of all your Embassy data to your Linux machine or external drive!! +That's it! You can now :ref:`Create` encrypted, private backups of all your Start9 server's data to your Synology NAS! diff --git a/site/source/user-manual/backups/backup-setup/backup-truenas.rst b/site/source/user-manual/backups/backup-setup/backup-truenas.rst new file mode 100644 index 0000000..36f7411 --- /dev/null +++ b/site/source/user-manual/backups/backup-setup/backup-truenas.rst @@ -0,0 +1,101 @@ +.. _backup-truenas: + +====================== +TrueNAS Network Folder +====================== + +.. contents:: + :depth: 2 + :local: + +.. note:: This guide was created by a Start9 community member. This is not yet officially supported. Please report any feedback that may help improve the process. + +Setup Network Folder +-------------------- + + .. note:: This guide assumes you have already created a ZFS disk pool in *Storage > Pool* as a place to store your backups. If you need help with this step, see the `TrueNAS documentation `_. + +#. In the TrueNAS UI, to add a user who will write the backups from the Start9 server to the NAS, go to **Accounts > Users > ADD**: + + .. figure:: /_static/images/backups/truenas-1-users.png + :width: 60% + +#. Fill in a human-readable **Full Name**, **Username**, and **Password** for the new user: + + .. figure:: /_static/images/backups/truenas-2-newuser.png + :width: 60% + + Near the bottom, select **Shell: nologin**, and enable **Samba Authentication**. + Click **SUBMIT** + +#. Enable the SMB service via **Services > SMB**: + + .. figure:: /_static/images/backups/truenas-3-services-enable_smb.png + :width: 60% + + Also ensure the **Start Automatically** box is checked. + +#. Open a shell and create your backups directory: + + + .. figure:: /_static/images/backups/truenas-4-shell-mkdir.png + :width: 60% + + In this example, we will create a directory called *start9backupshare* on the root of our storage pool: + + .. code-block:: bash + + mkdir /mnt/zpooldisk1/start9backupshare + + This is the example path we will use in this guide. You may choose a different name or path. + +#. Under **Sharing > Windows Shares (SMB)**, drill down into the path until you find the directory to be shared: + + .. figure:: /_static/images/backups/truenas-5-sharing-smb-create_share.png + :width: 60% + + We give the share the **Name** *nasshare* + + Click **SUBMIT** to create the share. + +#. A **Configure ACL** dialog will emerge. Click **CONFIGURE NOW**: + + .. figure:: /_static/images/backups/truenas-6-sharing-smb-config_acl.png + :width: 60% + +#. You will be brought to an **Edit ACL** screen. + + Under **User** check "Apply User" and select or type the username we created in Step 2: + + .. figure:: /_static/images/backups/truenas-7-acl.png + :width: 60% + + Off to the right-hand side, *Permissions Type* should be set to "Basic" and *Permissions* should be set to "Full Control". + Click **SAVE** + +Connect Embassy +--------------- + +#. Go to *System > Create Backup*. + + .. figure:: /_static/images/config/embassy_backup.png + :width: 60% + +#. Click "Open". + + .. figure:: /_static/images/config/embassy_backup0.png + :width: 60% + +#. Fill in the following fields: + + * Hostname - Enter your truenas hostname: `truenas.local` + * Path - This is the "Name" of the share that we set in step 5: *nasshare* + * Username - This is the Username of the user we created in Step 2: *s9backup* + * Password - This is the Password of that user, also set in Step 2 + + .. figure:: /_static/images/backups/truenas-9-start9server-create_backup.png + :width: 60% + +#. Click "Save". + +That's it! You can now :ref:`Create` encrypted, private backups of all your Start9 server's data to your TrueNAS!