Add nextcloud synchronization

This commit is contained in:
SebastianStork 2024-10-20 13:06:13 +02:00
parent 9a6056f51b
commit dc295a9e49
7 changed files with 68 additions and 20 deletions

View file

@ -25,7 +25,6 @@
virtualisation.enable = true;
sops.enable = true;
printing.enable = true;
syncthing.enable = true;
auto-gc.enable = true;
geoclue.enable = true;
tailscale = {

View file

@ -23,7 +23,6 @@
virtualisation.enable = true;
sops.enable = true;
printing.enable = true;
syncthing.enable = true;
auto-gc.enable = true;
geoclue.enable = true;
tailscale = {

View file

@ -0,0 +1,59 @@
{
config,
pkgs,
lib,
...
}:
let
paths = [
"Documents"
"Downloads"
"Pictures"
"Music"
"Videos"
"Projects"
];
syncCommand =
path:
"nextcloudcmd ${
lib.concatStringsSep " " [
"--user seb"
"--password \"$(cat ${config.sops.secrets."nextcloud-password".path})\""
"--path /Sync/${path}"
"--non-interactive"
"~/${path}"
"https://cloud.stork-atlas.ts.net"
]
}";
in
{
options.myConfig.nextcloud-sync.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.nextcloud-sync.enable {
sops.secrets."nextcloud-password" = { };
systemd.user = {
services.nextcloud-autosync = {
Service = {
ExecStart = lib.getExe' (pkgs.writeShellApplication {
name = "nextcloud-sync-script";
runtimeInputs = [ pkgs.nextcloud-client ];
text = builtins.concatStringsSep "\n" (map syncCommand paths);
}) "nextcloud-sync-script";
};
};
timers.nextcloud-autosync = {
Install.WantedBy = [ "default.target" ];
Timer = {
OnBootSec = "1min";
OnUnitActiveSec = "5min";
};
Unit.After = [
"network-online.target"
"sops-nix.service"
];
};
};
};
}

View file

@ -1,11 +0,0 @@
{ config, lib, ... }:
{
options.myConfig.nextcloud.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.nextcloud.enable {
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
};
}

View file

@ -1,4 +1,5 @@
github-ssh-key: ENC[AES256_GCM,data:ahboYxvvd8QuDT7BKpAfqCJzUnhoWpsHmAP5RIy0fVnetIEZFVMgf1tAgchqkisG05mQRPp17xMIsGaeZG0WrPEct1l5VhLjC7cgxBgFM/pMlfxAJUaZQG8pIKUMtlpDmpdRO1SW+8wUOwNNyWoo2yd513XGM04L91QdUYXRe12YsGz+JddJSGgQd/3PZJknDhI/NGCBCj25u9oIfhw6aYdsrEYTbeFIO8lomCgLb1AlITwwQFqcyCzV42Ifk/v2KoCK6JO7mvAb1rtOqwCUm6r6rfyv8Hy2P5ckGmu8/h4ZzaccuhWZQyFhhxFMYJFHEejqnZFehGL+EV4JxXzBQuL2mrZmDfC9sNsresZSkM9CL6+ZvYq3X9eldLLGt9m3Hx6a7+dTTnLVvqz2ycmbR/EHY6BkQ6rd2FomjBIFWubBCa76UPOT7uuwY3ebtB/aHtKf+nqrkYiWDpoIpI7o7hr85j65IMEGvyqJqYxJN4mI/z3yreOfbUTv+3ymExeqeTdQLb/ryD9Kk/GzZtXa,iv:9yf3/tzhvKbI2T5NA5cWdjuVVfPCVKDou84SKvEVG4M=,tag:437owh8BgJ7urnVuW2PzyQ==,type:str]
nextcloud-password: ENC[AES256_GCM,data:xzoP07fEC8lMEfpppFo2zW3Ea1J37UvlnAp4+Vg=,iv:wFNVM3LZcSK+TA2ZYrdk3WJotYPro7QMEiA/qX0/mVI=,tag:zCzFwFnEJ1lzfWXu8Fn9dQ==,type:str]
sops:
kms: []
gcp_kms: []
@ -23,8 +24,8 @@ sops:
LzNhelFLTWhqd1FxazMzdmNXZnVwODAKQqwbkhPmBliuWpvrDbMn50yxYx8izVGE
XsSeOv9OEKmxiWUJX928vxBNUm8cLtOazvRbdTxgbiAgHWIoEv4mUg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-07-04T22:45:41Z"
mac: ENC[AES256_GCM,data:8spcUd/bcvLIWU+a9Zbf9TKfWAHhqdkU0vtsuiTY6CkXmja5HsTiQ0kqfUgcmE2c+vM7PaXqIRV/4j/6tcaAiYly/+Y9uKGIhjs8QoRsP7NVvnUsNO1rc13yEFPe5c1DVZrTxbKAFWV9N66h6Qm1ZVkpCS2YqTUa7Jdo006oGNI=,iv:jc2F3IcXR1bCNNvvnCvNMS+UfnKWuxHvOhis0bQ6Yuc=,tag:la5RA3dCisEwUWbgRf9OHA==,type:str]
lastmodified: "2024-10-19T15:28:57Z"
mac: ENC[AES256_GCM,data:VFN6IR2FIuR5lHLoHIrIR/xgVmWzslKlp15oqybP0W4sdBJlUhjW4FoHl9CLmTQwOKxiQ+leItW56WI+zQu3HlKz78I/LKKN4XvDMTx1LBplcXsKZlMSmr0l3c/gsPlk44l5pNJiaqQugb5f4GkhRehrpw6gjBeQ5ISHVEg6L4Q=,iv:7yd6H99IKQvr2t32sIe2ewgvIHFpXO22xsiCmN3CHuk=,tag:EWojkfIpd7hWENRoYWUE8A==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1
version: 3.9.1

View file

@ -1,4 +1,5 @@
github-ssh-key: ENC[AES256_GCM,data:j8+ZA2oLeRbd8SeOELiV8UUYIreKUqg5SEkpaRshZDeiEoHEd7JCrShFY378aqWPBKqi6OZOI69dU/oBqXRnVzRhJCJb0GdeWItcOt85EtwPdMg6zDno3h3pnnkxd+9BsUZRx9WPh9uihxfk78tB/I9XN9Xl3kjBEBZrV0PUJQkYzbZ6HXHOIzz0k5ysEiGkscP/NQNQ8nnYpDZDz/BHhyJEcbaUXDgIVlbIskzfoWFIjRH+kpxgkwikwhAV7DBFex/CbLqwUvT53q0S8k0tHKf/HPdc84vPfl5sNT0iy4qxLt/l1mJZYjGyFJYdz5G7xSZnTE05bEEOLPAfAt7gIOzTETi+ZByzvEyu3VJah4SiJCbel9DZxqF1fxBXGhAExA6Lo6Q5QbuJZISCXFK4SZW+M30cA2WbRKL1aThix2eFRI9XJKvWMscyqo1do8xhdSy1ZZwRHD+MHWTuh8L/gVLevf4CuZLAQfguNhKGzpCBZNPABx2vSLxwtS+brJxyJOPSdNa3+Wuh+N01aJv3,iv:Tr2mM8/uQjORcXi3g2dcEPp1lXBOC/1ykKUJkNFOLZI=,tag:LPiiFUeu0Csjb6qrGdXsAA==,type:str]
nextcloud-password: ENC[AES256_GCM,data:f9KhzSU0z7z3PNpm4K5YRjnoRADr4BF9leSzDE8=,iv:tFwSeOJ6AO+pHiDFt0ricSJLQqIKpWu7cF+scdU50No=,tag:tFzwLgncwRyopiPUnQIFbQ==,type:str]
sops:
kms: []
gcp_kms: []
@ -23,8 +24,8 @@ sops:
RWtJdlNqRkU3OC9KVGhpcC9QcW5WTG8K+TYbo8tudt7mYuBce5n5ShuqcXkPA80e
avMoxXZ74tZEWz8qaQtgMR6ayeUU+3p2sHoY5ayHfmzmjljt/CCwvw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-07-04T22:03:44Z"
mac: ENC[AES256_GCM,data:sDT9OQf1hNWaARnsdL1K5S1uthySEtrPauRkeEEgpUo0Li4DhqAUY9TJHKG8UIG9eZ8WduIKm8ciUGx7zSkgWflGx3o3dmkVpTRKz73HLmU5SqQoZ0r8xLR2mVtqxhy3c5WWVp9mKRKt+lH98SyPVpU5aXX5KWAuTm+nBdQu4+E=,iv:bWWUklD5CWHoOGTY3/J34mtV430xCfX6QvVigXgrFIE=,tag:eM3sXD1o2K1hYqcSatU2qw==,type:str]
lastmodified: "2024-10-19T15:28:35Z"
mac: ENC[AES256_GCM,data:BkU2+cbKatfgPbT2VL3ym8RCpFWhSzdEzfZcV88iwMPC7cLP/ckqaD1hqANLMEuG1IyKENbsl2N65mlPzMrY6D2bAkEjPIR3cJT2ZfvHIj8SaJAHI8Fig6XlRT5o8zTQzHx595a+3rofZgS5IzxBQz9CZp7Z+4HZ/ElQUgR4FCk=,iv:SpGH8Jiu9Zoeevb1ub1JQMUwzokPBqvB9H1IGGk103E=,tag:QPUZLTTqJj8TeOlHcayGWg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1
version: 3.9.1

View file

@ -15,7 +15,7 @@
git.enable = true;
vscode.enable = true;
equalizer.enable = true;
nextcloud.enable = true;
nextcloud-sync.enable = true;
};
home.packages = [