Compare commits
23 Commits
0fa3b9de30
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
c7eefea616
|
|||
|
7608249b0b
|
|||
|
61b35e5f4a
|
|||
|
1ccc0041d6
|
|||
|
2856e30cbf
|
|||
|
3e577066c1
|
|||
|
3f10536deb
|
|||
|
25e995dfb3
|
|||
|
f2faa9047b
|
|||
|
22fc403563
|
|||
|
d5e11e4909
|
|||
|
bcc764dd50
|
|||
|
4e317cfd81
|
|||
|
2ad5372267
|
|||
|
6e93e251d6
|
|||
|
770ecc6c02
|
|||
|
86fb493a80
|
|||
|
3057f13858
|
|||
|
155c4f3525
|
|||
|
3abfa5cb84
|
|||
|
5d1b075adb
|
|||
|
6a3fbf2d80
|
|||
|
9a35cefd62
|
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
DIR=$(HOME)/Projects/zion
|
||||
|
||||
switch:
|
||||
nixos-rebuild switch --fast --target-host root@zion \
|
||||
nixos-rebuild switch --no-reexec --target-host root@zion \
|
||||
--build-host root@zion --flake path://$(DIR)#zion
|
||||
|
||||
.DEFAULT_GOAL := switch
|
||||
|
||||
@@ -99,6 +99,8 @@ with pkgs;
|
||||
"root"
|
||||
"coolneng"
|
||||
];
|
||||
lazy-trees = true;
|
||||
eval-cores = 2;
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
@@ -183,8 +185,6 @@ with pkgs;
|
||||
};
|
||||
secrets.telegram = {
|
||||
file = secrets/telegram.age;
|
||||
owner = "matrix-as-telegram";
|
||||
group = "matrix-as-telegram";
|
||||
};
|
||||
secrets.mqtt-sender = {
|
||||
file = secrets/mqtt-sender.age;
|
||||
@@ -198,13 +198,9 @@ with pkgs;
|
||||
};
|
||||
secrets.facebook = {
|
||||
file = secrets/facebook.age;
|
||||
owner = "matrix-as-facebook";
|
||||
group = "matrix-as-facebook";
|
||||
};
|
||||
secrets.signal = {
|
||||
file = secrets/signal.age;
|
||||
owner = "matrix-as-signal";
|
||||
group = "matrix-as-signal";
|
||||
};
|
||||
secrets.inadyn-duckdns = {
|
||||
file = secrets/inadyn-duckdns.age;
|
||||
@@ -216,6 +212,11 @@ with pkgs;
|
||||
owner = "inadyn";
|
||||
group = "inadyn";
|
||||
};
|
||||
secrets.inadyn-porkbun-secret = {
|
||||
file = secrets/inadyn-porkbun-secret.age;
|
||||
owner = "inadyn";
|
||||
group = "inadyn";
|
||||
};
|
||||
secrets.acme-duckdns = {
|
||||
file = secrets/acme-duckdns.age;
|
||||
owner = "acme";
|
||||
@@ -226,22 +227,27 @@ with pkgs;
|
||||
owner = "acme";
|
||||
group = "nginx";
|
||||
};
|
||||
secrets.wallabag.file = secrets/wallabag.age;
|
||||
secrets.wallabag-postgres.file = secrets/wallabag-postgres.age;
|
||||
secrets.microbin = {
|
||||
file = secrets/microbin.age;
|
||||
owner = "63026";
|
||||
group = "63026";
|
||||
};
|
||||
secrets.readeck = {
|
||||
file = secrets/readeck.age;
|
||||
owner = "63026";
|
||||
group = "63026";
|
||||
};
|
||||
identityPaths = [ "/etc/ssh/id_ed25519" ];
|
||||
};
|
||||
|
||||
# Auto-upgrade the system
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
allowReboot = true;
|
||||
flake = "/home/coolneng/system";
|
||||
flags = [
|
||||
"--update-input agenix --update-input nixpkgs"
|
||||
"--update-input"
|
||||
"nixpkgs"
|
||||
"--commit-lock-file"
|
||||
];
|
||||
};
|
||||
|
||||
249
flake.lock
generated
249
flake.lock
generated
@@ -10,11 +10,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736955230,
|
||||
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
|
||||
"lastModified": 1762618334,
|
||||
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
|
||||
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -31,11 +31,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700795494,
|
||||
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||
"lastModified": 1744478979,
|
||||
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -45,6 +45,63 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"determinate": {
|
||||
"inputs": {
|
||||
"determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin",
|
||||
"determinate-nixd-aarch64-linux": "determinate-nixd-aarch64-linux",
|
||||
"determinate-nixd-x86_64-linux": "determinate-nixd-x86_64-linux",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766177528,
|
||||
"narHash": "sha256-Bl+p766mM7qNCZtMqmTz13RuUbOMKsFa+/vnGYoxgPk=",
|
||||
"rev": "b159c082f0f9bdefa6c386189a13c5fa0734d8d8",
|
||||
"revCount": 317,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.15.0/019b3865-57a1-7d80-98c5-962fac29c404/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/determinate/%2A"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-aarch64-darwin": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-vDaEQ5T4eA7kEPREmm68IVWGR6zT0aDL5slZxA6dkSc=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/macOS"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/macOS"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-aarch64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-Hf4JsIv5G3IR0Q0RHGLSNdmDzFv97sVQQKwzY6A0vV4=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/aarch64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/aarch64-linux"
|
||||
}
|
||||
},
|
||||
"determinate-nixd-x86_64-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-J+J4E02XpEl0ZkpzMbUmGCf6S4yk0gYCYmiGzZ058ik=",
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/x86_64-linux"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.15.0/x86_64-linux"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"locked": {
|
||||
"lastModified": 1642188268,
|
||||
@@ -61,6 +118,22 @@
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1641205782,
|
||||
@@ -76,6 +149,53 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"determinate",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748821116,
|
||||
"narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=",
|
||||
"rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1",
|
||||
"revCount": 377,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.377%2Brev-49f0870db23e8c1ca0b5259734a02cd9e1e371a1/01972f28-554a-73f8-91f4-d488cc502f08/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/hercules-ci/flake-parts/0.1"
|
||||
}
|
||||
},
|
||||
"git-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": [
|
||||
"determinate",
|
||||
"nix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"determinate",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"revCount": 1026,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/cachix/git-hooks.nix/0.1.1026%2Brev-80479b6ec16fefd9c1db3ea13aeb038c60530f46/0196d79a-1b35-7b8e-a021-c894fb62163d/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/cachix/git-hooks.nix/0.1.941"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -84,11 +204,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1703113217,
|
||||
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||
"lastModified": 1745494811,
|
||||
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -97,10 +217,31 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks-nix": "git-hooks-nix",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-23-11": "nixpkgs-23-11",
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766174426,
|
||||
"narHash": "sha256-0ZofAQZNgg5nfIKsVb7g4It6ufmIyLtfFRPOf+6WRkk=",
|
||||
"rev": "15d6091194b5b90d292e8d6283db77f09c303b1e",
|
||||
"revCount": 24285,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.15.0/019b3854-cca6-7298-a91c-0fd8551a7270/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/nix-src/%2A"
|
||||
}
|
||||
},
|
||||
"nix-matrix-appservices": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixlib": "nixlib",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@@ -137,11 +278,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1740646007,
|
||||
"narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=",
|
||||
"lastModified": 1764440730,
|
||||
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49",
|
||||
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -153,41 +294,87 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1748708770,
|
||||
"narHash": "sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a59eb7800787c926045d51b70982ae285faa2346",
|
||||
"type": "github"
|
||||
"lastModified": 1761597516,
|
||||
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
|
||||
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
|
||||
"revCount": 811874,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.811874%2Brev-daf6dc47aa4b44791372d6139ab7b25269184d55/019a3494-3498-707e-9086-1fb81badc7fe/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"type": "indirect"
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"nixpkgs-23-11": {
|
||||
"locked": {
|
||||
"lastModified": 1729880355,
|
||||
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
|
||||
"lastModified": 1717159533,
|
||||
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-regression": {
|
||||
"locked": {
|
||||
"lastModified": 1643052045,
|
||||
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1765772535,
|
||||
"narHash": "sha256-aq+dQoaPONOSjtFIBnAXseDm9TUhIbe215TPmkfMYww=",
|
||||
"rev": "09b8fda8959d761445f12b55f380d90375a1d6bb",
|
||||
"revCount": 911985,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.911985%2Brev-09b8fda8959d761445f12b55f380d90375a1d6bb/019b25ab-7c11-79e0-a0b0-c94d455b7190/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1766201043,
|
||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"determinate": "determinate",
|
||||
"nix-matrix-appservices": "nix-matrix-appservices",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
||||
25
flake.nix
25
flake.nix
@@ -1,9 +1,16 @@
|
||||
{
|
||||
description = "System configuration for zion";
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = "https://install.determinate.systems";
|
||||
extra-trusted-public-keys = ''
|
||||
cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM=
|
||||
'';
|
||||
};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -16,14 +23,7 @@
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
agenix,
|
||||
nixos-hardware,
|
||||
...
|
||||
}@inputs:
|
||||
{ self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
|
||||
@@ -37,8 +37,9 @@
|
||||
inherit system;
|
||||
modules = [
|
||||
(import ./configuration.nix)
|
||||
agenix.nixosModules.age
|
||||
nixos-hardware.nixosModules.aoostar-r1-n100
|
||||
inputs.agenix.nixosModules.age
|
||||
inputs.nixos-hardware.nixosModules.aoostar-r1-n100
|
||||
inputs.determinate.nixosModules.default
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
|
||||
@@ -44,31 +44,24 @@
|
||||
ports = [ "127.0.0.1:9090:8080" ];
|
||||
volumes = [ "/vault/opodsync:/var/www/server/data" ];
|
||||
};
|
||||
# Wallabag
|
||||
wallabag = {
|
||||
image = "wallabag/wallabag@sha256:a87160e4445e11f9bcec0f4b201c31e1eb0d201d7bcd1aac421e8f3c2b8f553c";
|
||||
environmentFiles = [ config.age.secrets.wallabag.path ];
|
||||
dependsOn = [ "postgresql" ];
|
||||
extraOptions = [ "--pod=wallabag-pod" ];
|
||||
};
|
||||
# Wallabag database
|
||||
postgresql = {
|
||||
image = "postgres:16.8@sha256:e95b0cb95f719e0ce156c2bc5545c89fbd98a1a692845a5331ddc79ea61f1b1e";
|
||||
environmentFiles = [ config.age.secrets.wallabag-postgres.path ];
|
||||
extraOptions = [ "--pod=wallabag-pod" ];
|
||||
volumes = [ "/var/lib/postgresql-wallabag:/var/lib/postgresql/data" ];
|
||||
# Photo gallery
|
||||
pigallery2 = {
|
||||
image = "bpatrik/pigallery2@sha256:c936e4504cfe7158198542a8db794b24afb0301155d89e911f13bd04e0b406c2";
|
||||
ports = [ "127.0.0.1:9191:80" ];
|
||||
volumes = [
|
||||
"/vault/pigallery2/config:/app/data/config"
|
||||
"/vault/pigallery2/db:/app/data/db"
|
||||
"/vault/pigallery2/tmp:/app/data/tmp"
|
||||
"/vault/syncthing/Photos:/app/data/images"
|
||||
];
|
||||
cmd = [
|
||||
"-e"
|
||||
"NODE_ENV=production"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# Allow networking between Wallabag and Postgresql
|
||||
systemd.services.create-wallabag-pod = {
|
||||
serviceConfig.Type = "oneshot";
|
||||
wantedBy = [ "podman-postgresql.service" ];
|
||||
script = with pkgs; ''
|
||||
${podman}/bin/podman pod exists wallabag-pod || ${podman}/bin/podman pod create -n wallabag-pod -p '127.0.0.1:8090:80'
|
||||
'';
|
||||
};
|
||||
|
||||
# Start services after ZFS mount
|
||||
systemd.services.podman-mqtt2prometheus.unitConfig.RequiresMountsFor = [ /vault/mqtt2prometheus ];
|
||||
|
||||
@@ -24,4 +24,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
# Readeck configuration
|
||||
services.readeck = {
|
||||
enable = true;
|
||||
settings = {
|
||||
server = {
|
||||
host = "127.0.0.1";
|
||||
port = 9092;
|
||||
allowed_hosts = [ "read.psydnd.org" ];
|
||||
trusted_proxies = [ "127.0.0.1" ];
|
||||
environmentFile = config.age.secrets.readeck.path;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# NOTE Load credentials using environment variables
|
||||
systemd.services.readeck.serviceConfig.EnvironmentFile = config.age.secrets.readeck.path;
|
||||
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ in
|
||||
address = [ "192.168.128.2/23" ];
|
||||
gateway = [ "192.168.128.1" ];
|
||||
dns = [
|
||||
"1.1.1.1"
|
||||
"9.9.9.9"
|
||||
"127.0.0.1"
|
||||
"::1"
|
||||
];
|
||||
networkConfig.DNSSEC = "no";
|
||||
};
|
||||
@@ -47,11 +47,9 @@ in
|
||||
# NOTE Temporary workaround until Inadyn fixes the Porkbun module
|
||||
services.oink = {
|
||||
enable = true;
|
||||
settings = {
|
||||
apiKey = "PLACEHOLDER";
|
||||
secretApiKey = "PLACEHOLDER";
|
||||
interval = 1800;
|
||||
};
|
||||
apiKeyFile = config.age.secrets.inadyn-porkbun.path;
|
||||
secretApiKeyFile = config.age.secrets.inadyn-porkbun-secret.path;
|
||||
settings.interval = 1800;
|
||||
domains = [
|
||||
{
|
||||
domain = "psydnd.org";
|
||||
@@ -59,8 +57,6 @@ in
|
||||
}
|
||||
];
|
||||
};
|
||||
# NOTE Load credentials using environment variables
|
||||
systemd.services.oink.serviceConfig.EnvironmentFile = config.age.secrets.inadyn-porkbun.path;
|
||||
|
||||
# Firewall configuration
|
||||
networking.firewall = {
|
||||
@@ -112,6 +108,14 @@ in
|
||||
"fd00::3/128"
|
||||
];
|
||||
}
|
||||
# kathreftis
|
||||
{
|
||||
PublicKey = "qfHtv6LSZjtxvH46d8pysr+/yPo2tV9cZumgIpxBNF4=";
|
||||
AllowedIPs = [
|
||||
"10.8.0.4/32"
|
||||
"fd00::4/128"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -127,6 +131,16 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# Disable systemd-resolved DNS stub
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
llmnr = "false";
|
||||
extraConfig = ''
|
||||
MulticastDNS=yes
|
||||
DNSStubListener=no
|
||||
'';
|
||||
};
|
||||
|
||||
# DNS server with ad-block
|
||||
services.dnsmasq = {
|
||||
enable = true;
|
||||
@@ -150,11 +164,12 @@ in
|
||||
|
||||
conf-file = "${pkgs.dnsmasq}/share/dnsmasq/trust-anchors.conf";
|
||||
dnssec = false;
|
||||
address = "/psydnd.org/192.168.128.2";
|
||||
};
|
||||
};
|
||||
|
||||
# Encrypted DNS
|
||||
services.dnscrypt-proxy2 = {
|
||||
services.dnscrypt-proxy = {
|
||||
enable = true;
|
||||
upstreamDefaults = true;
|
||||
settings = {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedTlsSettings = true;
|
||||
recommendedZstdSettings = true;
|
||||
recommendedBrotliSettings = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedOptimisation = true;
|
||||
clientMaxBodySize = "0";
|
||||
@@ -134,18 +134,6 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
"wallabag.psydnd.org" = {
|
||||
useACMEHost = "psydnd.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:8090/";
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-Host $server_name;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
'';
|
||||
};
|
||||
};
|
||||
"books.psydnd.org" = {
|
||||
useACMEHost = "psydnd.org";
|
||||
forceSSL = true;
|
||||
@@ -176,6 +164,16 @@
|
||||
forceSSL = true;
|
||||
locations."/".proxyPass = "http://localhost:9091/";
|
||||
};
|
||||
"read.psydnd.org" = {
|
||||
useACMEHost = "psydnd.org";
|
||||
forceSSL = true;
|
||||
locations."/".proxyPass = "http://localhost:9092/";
|
||||
};
|
||||
"photos.psydnd.org" = {
|
||||
useACMEHost = "psydnd.org";
|
||||
forceSSL = true;
|
||||
locations."/".proxyPass = "http://localhost:9191/";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -20,30 +20,31 @@ echo "============================================================
|
||||
- System uptime.......: $upDays days $upHours hours $upMins minutes $upSecs seconds
|
||||
============================================================"
|
||||
services=(
|
||||
"syncthing.service"
|
||||
"radicale.service"
|
||||
"miniflux.service"
|
||||
"gitea.service"
|
||||
"dendrite.service"
|
||||
"nginx.service"
|
||||
"dnsmasq.service"
|
||||
"podman-openbooks.service"
|
||||
"mosquitto.service"
|
||||
"podman-mqtt2prometheus.service"
|
||||
"prometheus.service"
|
||||
"grafana.service"
|
||||
"syncthing.service"
|
||||
"radicale.service"
|
||||
"miniflux.service"
|
||||
"gitea.service"
|
||||
"dendrite.service"
|
||||
"nginx.service"
|
||||
"dnsmasq.service"
|
||||
"dnscrypt-proxy.service"
|
||||
"podman-openbooks.service"
|
||||
"mosquitto.service"
|
||||
"podman-mqtt2prometheus.service"
|
||||
"prometheus.service"
|
||||
"grafana.service"
|
||||
)
|
||||
|
||||
for var in "${services[@]}"; do
|
||||
if [[ -z $var ]]; then
|
||||
printf "\n"
|
||||
else
|
||||
if systemctl -q is-active "${var}"; then
|
||||
printf "%-40s [\e[32mOK\e[39m]\n" "$var"
|
||||
else
|
||||
printf "%-40s [\e[31mFAIL\e[39m]\n" "$var"
|
||||
fi
|
||||
fi
|
||||
if [[ -z $var ]]; then
|
||||
printf "\n"
|
||||
else
|
||||
if systemctl -q is-active "${var}"; then
|
||||
printf "%-40s [\e[32mOK\e[39m]\n" "$var"
|
||||
else
|
||||
printf "%-40s [\e[31mFAIL\e[39m]\n" "$var"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "============================================================"
|
||||
|
||||
5
secrets/inadyn-porkbun-secret.age
Normal file
5
secrets/inadyn-porkbun-secret.age
Normal file
@@ -0,0 +1,5 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 iUaRGg paS5BxWWicriSLAZyCBKd2xylLAp4/LcHmogO7me8yQ
|
||||
MWW/Pkvn+4G4YeYXY9ZPXC92TbcFXQMyHJ2ltFzXpZs
|
||||
--- ZdFfQ7tHfEo+u/0MmigCNh6OIxkd2bimRN30rMUs1ks
|
||||
<EFBFBD>9<EFBFBD>7Y<EFBFBD>$B<>sX<0E>ʽb<CABD>O'J<><4A>S'<27>5!<21><>UMʯ-v<>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD>8%|R,<2C>~I<><14><>G<EFBFBD><47>VQE<0E>0D<30>:Qv<<1E><>)<29><0B><>%fc<66><63>XZչ 7+yB
|
||||
Binary file not shown.
BIN
secrets/readeck.age
Normal file
BIN
secrets/readeck.age
Normal file
Binary file not shown.
@@ -17,9 +17,9 @@ in
|
||||
"signal.age".publicKeys = [ zion ];
|
||||
"inadyn-duckdns.age".publicKeys = [ zion ];
|
||||
"inadyn-porkbun.age".publicKeys = [ zion ];
|
||||
"inadyn-porkbun-secret.age".publicKeys = [ zion ];
|
||||
"acme-duckdns.age".publicKeys = [ zion ];
|
||||
"acme-porkbun.age".publicKeys = [ zion ];
|
||||
"wallabag.age".publicKeys = [ zion ];
|
||||
"wallabag-postgres.age".publicKeys = [ zion ];
|
||||
"microbin.age".publicKeys = [ zion ];
|
||||
"readeck.age".publicKeys = [ zion ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user