mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-22 05:44:25 +01:00
Avoid repetition of variables and keywords
This commit is contained in:
parent
6e58af8f01
commit
50d87e37a4
8 changed files with 76 additions and 31 deletions
|
|
@ -1,6 +1,11 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
serviceName = "actualbudget";
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
subdomain = "budget";
|
subdomain = "budget";
|
||||||
|
|
||||||
serveConfig = builtins.toJSON {
|
serveConfig = builtins.toJSON {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
serviceName = "onlyoffice";
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
subdomain = "office";
|
subdomain = "office";
|
||||||
|
|
||||||
serveConfig = builtins.toJSON {
|
serveConfig = builtins.toJSON {
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,13 @@
|
||||||
dataDir,
|
dataDir,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
|
userName = config.services.forgejo.user;
|
||||||
|
groupName = config.services.forgejo.group;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 750 forgejo forgejo -" ];
|
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 750 ${userName} ${groupName} -" ];
|
||||||
|
|
||||||
security.polkit = {
|
security.polkit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -21,9 +26,9 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
myConfig.resticBackup.forgejo = {
|
myConfig.resticBackup.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = config.users.users.forgejo.name;
|
user = userName;
|
||||||
healthchecks.enable = true;
|
healthchecks.enable = true;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
|
@ -47,11 +52,11 @@
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "forgejo-restore";
|
name = "${serviceName}-restore";
|
||||||
text = ''
|
text = ''
|
||||||
systemctl stop forgejo.service
|
systemctl stop forgejo.service
|
||||||
sudo -u forgejo restic-forgejo restore --target / latest
|
sudo -u ${userName} restic-${serviceName} restore --target / latest
|
||||||
sudo -u forgejo pg_restore --clean --if-exists --dbname forgejo ${dataDir}/backup/db.dump
|
sudo -u ${userName} pg_restore --clean --if-exists --dbname forgejo ${dataDir}/backup/db.dump
|
||||||
systemctl start forgejo.service
|
systemctl start forgejo.service
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,20 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
|
subdomain = "git";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
containers.forgejo.config =
|
containers.${serviceName}.config =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
dataDir,
|
dataDir,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
userName = config.services.forgejo.user;
|
||||||
|
groupName = config.services.forgejo.group;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [ ./backup.nix ];
|
imports = [ ./backup.nix ];
|
||||||
|
|
||||||
|
|
@ -15,7 +24,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d ${dataDir}/home 750 forgejo forgejo -"
|
"d ${dataDir}/home 750 ${userName} ${groupName} -"
|
||||||
"d ${dataDir}/postgresql 700 postgres postgres -"
|
"d ${dataDir}/postgresql 700 postgres postgres -"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -42,7 +51,7 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
myConfig.tailscale = {
|
myConfig.tailscale = {
|
||||||
subdomain = "git";
|
inherit subdomain;
|
||||||
serve = "3000";
|
serve = "3000";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,17 @@
|
||||||
dataDir,
|
dataDir,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
|
userName = config.users.users.nextcloud.name;
|
||||||
|
groupName = config.users.users.nextcloud.group;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 700 nextcloud nextcloud -" ];
|
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 700 ${userName} ${groupName} -" ];
|
||||||
|
|
||||||
myConfig.resticBackup.nextcloud = {
|
myConfig.resticBackup.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = config.users.users.nextcloud.name;
|
user = userName;
|
||||||
healthchecks.enable = true;
|
healthchecks.enable = true;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
|
@ -31,12 +36,12 @@
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "nextcloud-restore";
|
name = "${serviceName}-restore";
|
||||||
text = ''
|
text = ''
|
||||||
sudo -u nextcloud ${lib.getExe' config.services.nextcloud.occ "nextcloud-occ"} maintenance:mode --on
|
sudo -u ${userName} ${lib.getExe' config.services.nextcloud.occ "nextcloud-occ"} maintenance:mode --on
|
||||||
sudo -u nextcloud restic-nextcloud restore --target / latest
|
sudo -u ${userName} restic-${serviceName} restore --target / latest
|
||||||
sudo -u nextcloud pg_restore --clean --if-exists --dbname nextcloud ${dataDir}/backup/db.dump
|
sudo -u ${userName} pg_restore --clean --if-exists --dbname nextcloud ${dataDir}/backup/db.dump
|
||||||
sudo -u nextcloud ${lib.getExe' config.services.nextcloud.occ "nextcloud-occ"} maintenance:mode --off
|
sudo -u ${userName} ${lib.getExe' config.services.nextcloud.occ "nextcloud-occ"} maintenance:mode --off
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
subdomain = "cloud";
|
subdomain = "cloud";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
containers.nextcloud.config =
|
containers.${serviceName}.config =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
|
|
@ -10,6 +12,10 @@ in
|
||||||
dataDir,
|
dataDir,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
userName = config.users.users.nextcloud.name;
|
||||||
|
groupName = config.users.users.nextcloud.group;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./email-server.nix
|
./email-server.nix
|
||||||
|
|
@ -22,7 +28,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d ${dataDir}/home 750 nextcloud nextcloud -"
|
"d ${dataDir}/home 750 ${userName} ${groupName} -"
|
||||||
"d ${dataDir}/postgresql 700 postgres postgres -"
|
"d ${dataDir}/postgresql 700 postgres postgres -"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,19 @@
|
||||||
dataDir,
|
dataDir,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
|
userName = config.services.paperless.user;
|
||||||
|
groupName = config.users.users.${userName}.group;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 700 paperless paperless -" ];
|
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 700 ${userName} ${groupName} -" ];
|
||||||
|
|
||||||
users.users.paperless.extraGroups = [ "redis-paperless" ];
|
users.users.paperless.extraGroups = [ "redis-paperless" ];
|
||||||
|
|
||||||
myConfig.resticBackup.paperless = {
|
myConfig.resticBackup.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = config.users.users.paperless.name;
|
user = userName;
|
||||||
healthchecks.enable = true;
|
healthchecks.enable = true;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
|
@ -33,10 +38,10 @@
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "paperless-restore";
|
name = "${serviceName}-restore";
|
||||||
text = ''
|
text = ''
|
||||||
sudo -u paperless restic-paperless restore --target / latest
|
sudo -u ${userName} restic-${serviceName} restore --target / latest
|
||||||
sudo -u paperless ${dataDir}/paperless-manage document_importer ${dataDir}/backup
|
sudo -u ${userName} ${dataDir}/paperless-manage document_importer ${dataDir}/backup
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
serviceName = lib.last (lib.splitString "/" (builtins.toString ./.)); # Parent directory name
|
||||||
|
subdomain = "paper";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
containers.paperless.config =
|
containers.${serviceName}.config =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
dataDir,
|
dataDir,
|
||||||
|
|
@ -18,7 +23,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
myConfig.tailscale = {
|
myConfig.tailscale = {
|
||||||
subdomain = "paper";
|
inherit subdomain;
|
||||||
serve = "28981";
|
serve = "28981";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue