summaryrefslogtreecommitdiff
path: root/microvms/nextcloud
diff options
context:
space:
mode:
Diffstat (limited to 'microvms/nextcloud')
-rw-r--r--microvms/nextcloud/default.nix115
-rw-r--r--microvms/nextcloud/oxaproxy.nix58
-rw-r--r--microvms/nextcloud/secrets.nix11
3 files changed, 0 insertions, 184 deletions
diff --git a/microvms/nextcloud/default.nix b/microvms/nextcloud/default.nix
deleted file mode 100644
index 94b1fa3..0000000
--- a/microvms/nextcloud/default.nix
+++ /dev/null
@@ -1,115 +0,0 @@
-{ config, pkgs, ... }: {
-
- imports = [
- ./oxaproxy.nix
- ./secrets.nix
- ];
-
- # nextcloud goes here
- networking.firewall.interfaces.oxaproxy.allowedTCPPorts = [ 8080 ];
-
- services.postgresql = {
- enable = true;
- package = pkgs.postgresql_14;
- ensureDatabases = [ "nextcloud" ];
- ensureUsers = [{
- name = "nextcloud";
- ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
- }];
- };
-
- services.redis.servers.nextcloud.enable = true;
-
- services.nginx = {
- enable = true;
- recommendedGzipSettings = true;
- recommendedOptimisation = true;
- virtualHosts."nc.oxapentane.com" = {
- extraConfig = ''
- # HTTP response headers borrowed from Nextcloud .htaccess
- add_header Referrer-Policy "no-referrer" always;
- #add_header X-Content-Type-Options "nosniff" always;
- add_header X-Download-Options "noopen" always;
- #add_header X-Frame-Options "SAMEORIGIN" always;
- add_header X-Permitted-Cross-Domain-Policies "none" always;
- add_header X-Robots-Tag "none" always;
- add_header X-XSS-Protection "1; mode=block" always;
- add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
-
- # Remove X-Powered-By, which is an information leak
- fastcgi_hide_header X-Powered-By;
- '';
- listen = [{
- # We are listening on wireguard interface only
- addr = "10.34.45.100";
- port = 8080;
- ssl = false;
- }];
- };
- };
-
- services.nextcloud = {
- enable = true;
- hostName = "nc.oxapentane.com";
- home = "/var/lib/nextcloud-oxa";
- package = pkgs.nextcloud28;
- maxUploadSize = "5000M";
- caching.redis = true;
- autoUpdateApps = {
- enable = true;
- startAt = "07:00:00";
- };
- config = {
- overwriteProtocol = "https";
- trustedProxies = [ "10.34.45.1" ];
-
- dbtype = "pgsql";
- dbuser = "nextcloud";
- dbhost = "/run/postgresql";
- dbname = "nextcloud";
- adminuser = "admin";
- adminpassFile = config.sops.secrets."nextcloud/adminpass".path;
- };
- };
-
- systemd.services."nextcloud-setup" = {
- requires = [ "postgresql.service" ];
- after = [ "postgresql.service" ];
- };
-
-
-
-
- microvm = {
- hypervisor = "qemu";
- mem = 4 * 1024;
- vcpu = 3;
-
- shares = [{
- source = "/nix/store";
- mountPoint = "/nix/.ro-store";
- tag = "store";
- proto = "virtiofs";
- socket = "store.socket";
- }] ++ map
- (dir: {
- source = "/var/lib/microvms/${config.networking.hostName}/${dir}";
- mountPoint = "/${dir}";
- tag = dir;
- proto = "virtiofs";
- socket = "${dir}.socket";
- }) [ "etc" "var" "home" ];
-
- interfaces = [{
- type = "tap";
- id = "vm-nextcloud";
- mac = "02:00:00:00:00:00";
- }];
- };
-
- networking = {
- hostName = "nextcloud";
- };
-
- system.stateVersion = "22.05";
-}
diff --git a/microvms/nextcloud/oxaproxy.nix b/microvms/nextcloud/oxaproxy.nix
deleted file mode 100644
index 3a3843c..0000000
--- a/microvms/nextcloud/oxaproxy.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ config, ... }: {
- networking.wireguard.enable = true;
- networking.useNetworkd = true;
- systemd.network = {
- enable = true;
- netdevs."10-oxaproxy" = {
- netdevConfig = {
- Kind = "wireguard";
- Name = "oxaproxy";
- Description = "oxa's enterprise reverse-proxy network";
- };
- wireguardConfig = {
- PrivateKeyFile = config.sops.secrets."wg/oxaproxy-seckey".path;
- #own pubkey: KCYoGx7TGei4X79EZo2NONCcmQjPzBUN1Ds6I9lQbz0=
- };
- wireguardPeers = [
- {
- # cirrus
- wireguardPeerConfig = {
- PublicKey = "0KMtL2fQOrrCH6c2a2l4FKiM73G86sUuyaNj4FarzVM=";
- AllowedIPs = [ "10.34.45.0/24" ];
- Endpoint = [ "95.216.166.21:51821" ];
- PersistentKeepalive = 25;
- };
- }
- ];
- };
- networks."10-oxaproxy" = {
- matchConfig.Name = "oxaproxy";
- networkConfig = {
- Address = "10.34.45.100/24";
- };
- };
-
- networks."111-host" = {
- matchConfig.MACAddress = "02:00:00:00:00:00";
- networkConfig = {
- Address = "10.99.99.100/24";
- };
- routes = [
- {
- routeConfig = {
- Gateway = "10.99.99.1";
- Destination = "0.0.0.0/0";
- Metric = 1024;
- };
- }
- {
- routeConfig = {
- Gateway = "10.99.99.1";
- Destination = "10.99.99.0/24";
- Metric = 1024;
- };
- }
- ];
- };
- };
-}
diff --git a/microvms/nextcloud/secrets.nix b/microvms/nextcloud/secrets.nix
deleted file mode 100644
index 50ae8e0..0000000
--- a/microvms/nextcloud/secrets.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ config, ... }: {
- sops.defaultSopsFile = ../../secrets/nextcloud/secrets.yaml;
- sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
-
- sops.secrets."wg/oxaproxy-seckey" = {
- owner = config.users.users.systemd-network.name;
- };
- sops.secrets."nextcloud/adminpass" = {
- owner = config.users.users.nextcloud.name;
- };
-}