mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-19 19:27:31 -08:00
69 lines
1.6 KiB
Nix
69 lines
1.6 KiB
Nix
{ config, lib, pkgs, user, ... }:
|
|
let
|
|
dumpFolder = "/engi/backup/dumps/nextcloud";
|
|
domain = "cloud.tstarr.us";
|
|
in {
|
|
environment.systemPackages = with pkgs; [
|
|
cron
|
|
zip
|
|
rsync
|
|
(pkgs.writeScriptBin "dump-nextcloud" ''
|
|
#!/bin/sh
|
|
cd ${dumpFolder}
|
|
[ -e nextcloud-sql ] && rm nextcloud-sql
|
|
nextcloud-occ maintenance:mode --on
|
|
mysqldump --single-transaction nextcloud > ${dumpFolder}/nextcloud-sql
|
|
nextcloud-occ maintenance:mode --off
|
|
'')
|
|
];
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d ${dumpFolder} 0775 nextcloud nextcloud -"
|
|
];
|
|
|
|
# nextcloud secrets
|
|
age.secrets."nextcloud/password" = {
|
|
file = ../../secrets/nextcloud/password.age;
|
|
owner = "nextcloud";
|
|
group = "nextcloud";
|
|
};
|
|
|
|
services = {
|
|
nginx.virtualHosts = {
|
|
"${domain}" = {
|
|
forceSSL = true;
|
|
enableACME = true;
|
|
};
|
|
};
|
|
|
|
nextcloud = {
|
|
enable = true;
|
|
hostName = "${domain}";
|
|
|
|
# Need to manually increment with every major upgrade.
|
|
package = pkgs.nextcloud29;
|
|
|
|
# Let NixOS install and configure the database automatically.
|
|
database.createLocally = true;
|
|
|
|
# Let NixOS install and configure Redis caching automatically.
|
|
configureRedis = true;
|
|
|
|
# Increase the maximum file upload size to avoid problems uploading videos.
|
|
maxUploadSize = "16G";
|
|
https = true;
|
|
autoUpdateApps.enable = true;
|
|
settings = {
|
|
overwriteprotocol = "https";
|
|
default_phone_region = "US";
|
|
};
|
|
|
|
config = {
|
|
dbtype = "mysql";
|
|
adminuser = "admin";
|
|
adminpassFile = "/run/agenix/nextcloud/password";
|
|
};
|
|
};
|
|
};
|
|
}
|