mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 21:01:34 +01:00
Add paperless-ngx container
This commit is contained in:
parent
65bd45bfac
commit
2c347bab77
8 changed files with 125 additions and 15 deletions
15
hosts/stratus/containers/default.nix
Normal file
15
hosts/stratus/containers/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
networking.useNetworkd = true;
|
||||||
|
systemd.network = {
|
||||||
|
enable = true;
|
||||||
|
networks."40-eno1" = {
|
||||||
|
matchConfig.Name = "eno1";
|
||||||
|
networkConfig.DHCP = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./nextcloud
|
||||||
|
./paperless
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -7,26 +7,21 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d /var/lib/tailscale-nextcloud - - -"
|
|
||||||
"d /data/nextcloud - - -"
|
"d /data/nextcloud - - -"
|
||||||
|
"d /var/lib/tailscale-nextcloud - - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.useNetworkd = true;
|
|
||||||
systemd.network = {
|
|
||||||
enable = true;
|
|
||||||
networks."40-eno1" = {
|
|
||||||
matchConfig.Name = "eno1";
|
|
||||||
networkConfig.DHCP = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
containers.nextcloud = {
|
containers.nextcloud = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
ephemeral = true;
|
ephemeral = true;
|
||||||
macvlans = [ "eno1" ];
|
macvlans = [ "eno1" ];
|
||||||
|
|
||||||
bindMounts = {
|
bindMounts = {
|
||||||
|
# Secrets
|
||||||
"/run/secrets/nextcloud".isReadOnly = false;
|
"/run/secrets/nextcloud".isReadOnly = false;
|
||||||
"/run/secrets/tailscale-auth-key" = { };
|
"/run/secrets/tailscale-auth-key" = { };
|
||||||
|
|
||||||
|
# State
|
||||||
"/data/nextcloud".isReadOnly = false;
|
"/data/nextcloud".isReadOnly = false;
|
||||||
"/var/lib/tailscale" = {
|
"/var/lib/tailscale" = {
|
||||||
hostPath = "/var/lib/tailscale-nextcloud";
|
hostPath = "/var/lib/tailscale-nextcloud";
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
authKeyFile = "/run/secrets/tailscale-auth-key";
|
authKeyFile = "/run/secrets/tailscale-auth-key";
|
||||||
useRoutingFeatures = "server";
|
useRoutingFeatures = "server";
|
||||||
|
openFirewall = true;
|
||||||
interfaceName = "userspace-networking";
|
interfaceName = "userspace-networking";
|
||||||
extraUpFlags = [ "--ssh" ];
|
extraUpFlags = [ "--ssh" ];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
60
hosts/stratus/containers/paperless/default.nix
Normal file
60
hosts/stratus/containers/paperless/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
sops.secrets = {
|
||||||
|
"paperless-admin-password" = { };
|
||||||
|
tailscale-auth-key = { };
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /data/paperless - - -"
|
||||||
|
"d /var/lib/tailscale-paperless - - -"
|
||||||
|
];
|
||||||
|
|
||||||
|
containers.paperless = {
|
||||||
|
autoStart = true;
|
||||||
|
ephemeral = true;
|
||||||
|
macvlans = [ "eno1" ];
|
||||||
|
|
||||||
|
bindMounts = {
|
||||||
|
# Secrets
|
||||||
|
"/run/secrets/paperless-admin-password" = { };
|
||||||
|
"/run/secrets/tailscale-auth-key" = { };
|
||||||
|
|
||||||
|
# State
|
||||||
|
"/data/paperless".isReadOnly = false;
|
||||||
|
"/var/lib/tailscale" = {
|
||||||
|
hostPath = "/var/lib/tailscale-paperless";
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
specialArgs = {
|
||||||
|
inherit (config.networking) domain;
|
||||||
|
};
|
||||||
|
config =
|
||||||
|
{ domain, ... }:
|
||||||
|
{
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
inherit domain;
|
||||||
|
useNetworkd = true;
|
||||||
|
useHostResolvConf = false;
|
||||||
|
};
|
||||||
|
systemd.network = {
|
||||||
|
enable = true;
|
||||||
|
networks."40-mv-eno1" = {
|
||||||
|
matchConfig.Name = "mv-eno1";
|
||||||
|
address = [ "192.168.2.253/24" ];
|
||||||
|
networkConfig.DHCP = "yes";
|
||||||
|
dhcpV4Config.ClientIdentifier = "mac";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./paperless.nix
|
||||||
|
./tailscale.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
8
hosts/stratus/containers/paperless/paperless.nix
Normal file
8
hosts/stratus/containers/paperless/paperless.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
services.paperless = {
|
||||||
|
enable = true;
|
||||||
|
dataDir = "/data/paperless";
|
||||||
|
passwordFile = "/run/secrets/paperless-admin-password";
|
||||||
|
settings.PAPERLESS_OCR_LANGUAGE = "deu+eng";
|
||||||
|
};
|
||||||
|
}
|
||||||
31
hosts/stratus/containers/paperless/tailscale.nix
Normal file
31
hosts/stratus/containers/paperless/tailscale.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
authKeyFile = "/run/secrets/tailscale-auth-key";
|
||||||
|
useRoutingFeatures = "server";
|
||||||
|
openFirewall = true;
|
||||||
|
interfaceName = "userspace-networking";
|
||||||
|
extraUpFlags = [ "--ssh" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.nextcloud-serve = {
|
||||||
|
after = [
|
||||||
|
"tailscaled.service"
|
||||||
|
"tailscaled-autoconnect.service"
|
||||||
|
];
|
||||||
|
wants = [ "tailscaled.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
script = ''
|
||||||
|
${lib.getExe pkgs.tailscale} cert ${config.networking.fqdn}
|
||||||
|
${lib.getExe pkgs.tailscale} serve reset
|
||||||
|
${lib.getExe pkgs.tailscale} serve --bg 28981
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
../common.nix
|
../common.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./disko.nix
|
./disko.nix
|
||||||
|
./containers
|
||||||
./containers/nextcloud
|
|
||||||
];
|
];
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ tailscale-auth-key: ENC[AES256_GCM,data:zKjJsG23GYrAIAoTe9pRI/b9w6JPB/0EDrdtspQq
|
||||||
nextcloud:
|
nextcloud:
|
||||||
admin-password: ENC[AES256_GCM,data:+gNp7oDzLk2gxalEtj8R0FWW3Jwvr1PzWo7+iZj0,iv:zZjwG+Z1KyrZN/i/rSg5LZ0lnQGBhxlAaREgKUCxco8=,tag:kBQjz1ISX5Gh9LeUfO4KdQ==,type:str]
|
admin-password: ENC[AES256_GCM,data:+gNp7oDzLk2gxalEtj8R0FWW3Jwvr1PzWo7+iZj0,iv:zZjwG+Z1KyrZN/i/rSg5LZ0lnQGBhxlAaREgKUCxco8=,tag:kBQjz1ISX5Gh9LeUfO4KdQ==,type:str]
|
||||||
gmail-password: ENC[AES256_GCM,data:lbdSZPEmXx1zU0fdaXHle9by9rk=,iv:SSN379SVvonVQjEpopFe8O6tY30k1l9YxKPB6a+xo6U=,tag:jiWy3b16i0zXTyaOhY+5Vw==,type:str]
|
gmail-password: ENC[AES256_GCM,data:lbdSZPEmXx1zU0fdaXHle9by9rk=,iv:SSN379SVvonVQjEpopFe8O6tY30k1l9YxKPB6a+xo6U=,tag:jiWy3b16i0zXTyaOhY+5Vw==,type:str]
|
||||||
|
paperless-admin-password: ENC[AES256_GCM,data:xBk3n5czMwuf0I7kU2WkTExJnw8=,iv:4Fegh3sogB1ga+zdBBlWdpsAgQmqmhZoun/ShfHISGk=,tag:s7U4gQK3E5mh3Rd0DAMEqA==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
|
|
@ -27,8 +28,8 @@ sops:
|
||||||
aW00MUpGdXpYam5LYVFUenh2VndzcE0KT6Hfx1CYJFseFaEZxwi4Fds4v1HEFzBo
|
aW00MUpGdXpYam5LYVFUenh2VndzcE0KT6Hfx1CYJFseFaEZxwi4Fds4v1HEFzBo
|
||||||
FdSC6pzpZkfXso8EtSftq0lPx10GfJ6GZXYb+bCB2S9ROvUMPYDH3A==
|
FdSC6pzpZkfXso8EtSftq0lPx10GfJ6GZXYb+bCB2S9ROvUMPYDH3A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-08-29T13:58:05Z"
|
lastmodified: "2024-08-31T15:16:37Z"
|
||||||
mac: ENC[AES256_GCM,data:E1zrsHL+mVaX6mVuPVw793e5/epoRV06nMguU7CT3v9yeDJ4ftO3dwqBChsR2xcISeIuTMc7W72GS57UMhrY08q/jwAKnR7WiPt6/6iK3TLyAKdOj9q/B8FYVuRu+T5cN5CY7cNE0EK+KAVXUcfNi6KAzt1Mow39cgjfddTMdA4=,iv:+GaMKNQaI4mtg0E5b0Ua0c7+K66/9cIUNkWFTxG6gzY=,tag:NnmL6HKv9J3RuqwH01UyNA==,type:str]
|
mac: ENC[AES256_GCM,data:moMeG8RCInTiMVBHca3Z4XxDT1p/51E/PEUDwTDk7skOYasAfse2VAGAI5c8TlwudrzNICDoKP7ks8KUfruv8WVSd+omUxjmSiO5ZuS7KdW9nu/vvTPwSOfk7wS39+Wt8B+/LNlkECOJeCOKIqiPeShDt0rf0shEOgmtj2jJXD8=,iv:P6hPnhpdr46FHfzZinPwZzDcjaRteSrCQwzGqk6iKc4=,tag:t8qYGxObcLuGIYtFdc3SLw==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.0
|
version: 3.9.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue