From 87aa6e059fc5a950729576b6c3e5f50b75c238a5 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Wed, 13 Apr 2022 06:51:45 +0000 Subject: [PATCH] Add NextCloud support --- hosts/linode/default.nix | 1 + hosts/linode/nextcloud.nix | 37 +++++++++++++++++++++++++++++++++++ secrets/nextcloudadmin.age | 40 ++++++++++++++++++++++++++++++++++++++ secrets/secrets.nix | 1 + 4 files changed, 79 insertions(+) create mode 100644 hosts/linode/nextcloud.nix create mode 100644 secrets/nextcloudadmin.age diff --git a/hosts/linode/default.nix b/hosts/linode/default.nix index 23bff72..edf9e3c 100644 --- a/hosts/linode/default.nix +++ b/hosts/linode/default.nix @@ -3,6 +3,7 @@ { imports = [ ../../profiles/linode.nix + ./nextcloud.nix ./nginx.nix ./postgres.nix ./synapse.nix diff --git a/hosts/linode/nextcloud.nix b/hosts/linode/nextcloud.nix new file mode 100644 index 0000000..b4c7265 --- /dev/null +++ b/hosts/linode/nextcloud.nix @@ -0,0 +1,37 @@ +{ config, pkgs, ... }: + +{ + age.secrets.nextcloudadmin.file = ../../secrets/nextcloudadmin.age; + age.secrets.nextcloudadmin.owner = "nextcloud"; + + services.nextcloud = { + enable = true; + package = pkgs.nextcloud23; + appstoreEnable = true; + hostName = "next.${config.networking.domain}"; + https = true; + config = { + adminpassFile = config.age.secrets.nextcloudadmin.path; + adminuser = "greg"; + dbhost = "/run/postgresql"; + dbtype = "pgsql"; + defaultPhoneRegion = "US"; + overwriteProtocol = "https"; + }; + }; + + services.nginx.virtualHosts."next.thehellings.com" = { + forceSSL = true; + enableACME = true; + }; + + services.syncthing.folders."nextcloud-backup" = { + path = "${config.services.nextcloud.datadir}"; + enable = true; + devices = [ "nas" ]; + }; + + services.cron.systemCronJobs = [ + "59 2 * * * root chmod -R a+r ${config.services.syncthing.folders.nextcloud-backup.path} && find ${config.services.syncthing.folders.nextcloud-backup.path} -type d -exec chmod a+x '{}' \\;" + ]; +} diff --git a/secrets/nextcloudadmin.age b/secrets/nextcloudadmin.age new file mode 100644 index 0000000..bcb8bb4 --- /dev/null +++ b/secrets/nextcloudadmin.age @@ -0,0 +1,40 @@ +age-encryption.org/v1 +-> ssh-rsa KsR+0w +VMaTGFrR/XXf3I5UpvEE0w0Om0TlRl7TsqCQjQXKbk13R35Y7C0Lz9fm7XPIhZje +9Uh52TZMuh5prWP5f5NBLhp0n22ASAY2zdyv/eR5QU9kV0ai8opsT/Bx79Ocuk6N +bAhlyAOfrT/o1wJuTxTXCU+6a2XmJnbrYwYQVsERiGT08RV7xL6awAT3Dk4b9ucF +2kYGdx9egq0dIp2qE5Ws8bo9LBuE8NjncK4H3vbne1g37gEBFpa4oicuK4PvVsWk +TsdfizPDA7NI4avaMNL7izCxYWIdSb25dTu9NUtQXfVQxvgAC71pVDcOXUO4iau8 +jS4Nh4/PB/2UNLhxBZ/a2Xc1HfHBxlENHDRy4VyhjhwDvzy6EFj85KEQdfC5BKiF +yo2BTHlRJJVLGkdF6oeG/rCMtRqjr6QPYPBRis/Lziz4DhGvBb0rpaG47CZfGyCo +Ev5yZGJssiNIfm38zfNmpN/xsd9K/kQjZMMpjd121CMDs0XV/sifANmPcvL0l9Sy +kzbbJjN+Tu7sN1PU01J/DpntEX8na4B/xJktP/LMwIkhyPWEz9L8qwKlZMzKQ3is +8n34BcHnmJHyVSTVrYgKUned+Wnhan4luWZD0S8RdCmnCRoR2U7ikuSTRRadatgl +8AxZCqNd+OnjNj5nsm4wBdbIixiMiAynHymyUx/hx0w +-> ssh-rsa hjSvjw +EVfVhO2sgOqRtoLuJZKAzLpHzw3iqNBqrklOuXtev6no1uvK91eaNWarry6M21BA +ukGeN089MdvWZ+ZuooQT1iOd1uNmuauwKtERR1306rRFBRnrhIIsEPYMxqPif2r9 +qX6+XjoEUTXO/nKjQExmipknORiXMQTpU0/PPmy2syRu0f1hizEpc8/aMTkve0f4 +2hoC5sieprQPOojmwyxGfAp9dT5ierKs7/PRH2ln2rOFg5569kOIheEDrfMblbVi +CrhbqcJ9ewqfjEC7pZiPtRUUarwlUnVZ3pLul99QKALDIFYwcprz4l9VFr6lqUwn +3qtWKmjKEzN2jw2mB2RvymKRl50auOreH8GMOk7pvL8T6bAhvU9ApYZsHPN9Z/1B +AHzgCmyM4p3l5w3o0N14jkDbUB5ev9T7QiCcvrUCRvjLc8ZSX3V61mElAzNQcTP/ +3wWHOL8Wq8l8L73kRmn/My/lgn/s4cL09g2TElmcJ2RWfeFs+gmPF0wH7HZJpBqp +BoHQ5YUi1ixQXilYr+Ix8swhFL9PnrVoJ3Ln/gkG2fqG+bjknGzOlTsyl4u1xjua +X18XsYkJ9cl4K9R+ArL3fWxXg5SRJNhpJUYenedySvngnBjVkF0NgbkzZMIR9y89 +mh0hVmSxidbUUKZZ2v3x8Oez/OIz67Qn9oEFEgr0XwKPD9uK1nnRlDOEs+NTiN2R +G4laxV7VjCCVOEJrQMNQp9TivhHLFO5VFq9JCJkdA15iGwRR304QHv2RvBAxJ0Fl +NHOqSX0zw07BTjKaaDng8phlC/2Eou3hxOz9i2lrxKAFtoq3wuo4Uz743Yp3QkcU +DTNAp+XNFcqWvfgDa1s8pMWD0ayyWFhu9E3LyGYswWtB1eeow1oBGY3i3vn3ddjr +3StEhwoH9wFo+luYYYha7lZexbwEkwTs3ZFiGA8d0vU7NsLdwtd7YlFueVmqCLc6 +rjQMuhcSMedLq0ACNP0X+PCLfGiHRXPrfx0UQRZFMhaF7Wb4B5gsQkssco02BY5H +4AJyAxArafltEmtCPW6lPU0lQKKm/u6NrdwuwMln9KJfMZwRXiVdeyVxiLxznpls +0LU7rMhjMVVodZyHRRur3oIGb96X1w5uzY64BPLOZx94vXKFCVCKFC7BfKb563tb +99VzH5t0jsD1z51HcN8QtAUhvaPTtZP4w82xgy3nuefx3R3D0ns1ylI7logU1VzG +el/j5TYbQiDN7fGvBK7/YlLV02XDSI6wI/AmzerosDKLxe7/lvJJk/87pzFx5X/2 +mRDHHHaPT3j49K9PIqzYhjmXMkfNDF1F8wzBZ8uuB+cu2JQ4USbI8UiZCF1kh1mI +hZMXOKtC/tkEQMBHIFjepQ +-> QD-grease +IGsXeglI2u+sj7bs5NoSeG+LplglQrYvp2skjHaNOIgXGA9bi00 +--- LTL5VCdJPqJku3MXXoRRIXVDuog2iimLW6CbFeL/Hz0 +q60f*f"&ˏT!@U%ÈnXu"$m1 \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 6da41b4..4dea125 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -11,4 +11,5 @@ in # age.secrets.matrix.file = ../../secrets/matrix.age; # Then you can reference the file at /run/agenix/matrix "mautrixfacebook.age".publicKeys = [ linode user ]; + "nextcloudadmin.age".publicKeys = [ linode user ]; }