diff --git a/services/nextcloud.nix b/services/nextcloud.nix new file mode 100644 index 0000000..21afde6 --- /dev/null +++ b/services/nextcloud.nix @@ -0,0 +1,92 @@ +{ + config, + pkgs, + ... +}: let + cfg = config.services.nextcloud; +in { + imports = [ + "${fetchTarball { + url = "https://github.com/onny/nixos-nextcloud-testumgebung/archive/fa6f062830b4bc3cedb9694c1dbf01d5fdf775ac.tar.gz"; + sha256 = "0gzd0276b8da3ykapgqks2zhsqdv4jjvbv97dsxg0hgrhb74z0fs"; + }}/nextcloud-extras.nix" + ]; + + services.nextcloud = let + version = "33"; + in { + enable = false; + package = pkgs."nextcloud${version}"; + webserver = "caddy"; + hostName = "nextcloud.local"; + appstoreEnable = false; + configureRedis = true; + database.createLocally = true; + extraApps = { + inherit + (pkgs."nextcloud${version}Packages".apps) + # mail + calendar + contacts + memories + news + notes + # recognize + ; + }; + config = { + adminuser = "admin"; + adminpassFile = config.sops.secrets."services/nextcloud/adminpass".path; + + dbtype = "pgsql"; + + # objectstore.s3 = { + # enable = true; + # verify_bucket_exists = false; + # bucket = "nextcloud"; + # hostname = "localhost"; + # port = 3461; + # usePathStyle = true; + # useSsl = false; + # region = config.services.garage.settings.s3_api.s3_region; + # key = "GK7b6d9214adf40850e5f39d66"; + # secretFile = config.sops.secrets."nextcloud/s3/secret".path; + # # sseCKeyFile = config.sops.secrets."nextcloud/s3/sseC".path; # Needs SSL + # }; + }; + settings = { + "auth.authtoken.v1.disabled" = true; + debug = false; + default_language = "pt_BR"; + default_locale = "pt_BR"; + default_phone_region = "BR"; + default_timezone = config.time.timeZone; + loglevel = 2; + maintenance_window_start = 4; # 1:00 AM at UTC-3 + trusted_proxies = ["127.0.0.1"]; + }; + phpExtraExtensions = all: + with all; [ + opcache + ]; + phpOptions = { + "opcache.interned_strings_buffer" = 10; + "opcache.jit" = 1255; + "opcache.jit_buffer_size" = "8M"; + "opcache.revalidate_freq" = 60; + "opcache.save_comments" = 1; + }; + }; + + environment.persistence."/persist".directories = [ + { + directory = cfg.datadir; + user = "nextcloud"; + group = "nextcloud"; + } + ]; + + # sops.secrets = { + # "services/nextcloud/adminpass" = {owner = "nextcloud";}; + # }; +}