Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d238e48a6 | ||
|
|
0323bf8ef4
|
||
|
|
ee5dba6dea | ||
|
|
db7affb02d | ||
|
|
5474555fe2
|
||
|
|
c060796659
|
||
|
|
ef5f811bc7 | ||
|
|
b570bddbc5 | ||
|
|
66328a5fbf | ||
|
|
2f964aeeae | ||
|
|
3e6c40f0dc | ||
|
|
6917bc359b | ||
|
|
b5d0ef7099 | ||
|
|
7c395a72e0 | ||
|
|
5be3d3ba62 | ||
|
|
c4b38ecc7a | ||
|
|
d273204b7d | ||
|
|
dd776cfede | ||
|
|
586dbc711a | ||
|
|
95f7e039ac | ||
|
|
7800ea61f3
|
||
|
|
0862da3576 | ||
|
|
9c884e553c | ||
|
|
fcb9642023 | ||
|
|
ce09e8003e | ||
|
|
cbcf5a0c5b | ||
|
|
52b43a9b2b | ||
|
|
5c373880fd | ||
|
|
f7533dff9d |
Generated
+63
-8
@@ -88,11 +88,11 @@
|
|||||||
"uv2nix": "uv2nix"
|
"uv2nix": "uv2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1786138873,
|
"lastModified": 1794324984,
|
||||||
"narHash": "sha256-+G/hTquaK4AjYxNSJTpcZXUEKxFDv9lOn3x+lHHTWJw=",
|
"narHash": "sha256-av7o0pNaukTFE2NPD/t7s8YW9tXUlkZD4h6OlGP8L/0=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "c5934d05c6f01c94c36221deb7ed4de03aa91ca1",
|
"rev": "70aaab5596d217c7201829c7cc174515a9a84e7b",
|
||||||
"revCount": 127,
|
"revCount": 152,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.dynamicdiscord.de/malobeo/gatekeeper"
|
"url": "https://git.dynamicdiscord.de/malobeo/gatekeeper"
|
||||||
},
|
},
|
||||||
@@ -278,6 +278,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"portal": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"utils": "utils_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1794324704,
|
||||||
|
"narHash": "sha256-f8IaShGcCQ42VuuT8JHBhX1b8jw/dGpRhpAcw3rkhQ0=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "cfb18582948c2249a8d6b625ddc68de31f668f1d",
|
||||||
|
"revCount": 34,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.dynamicdiscord.de/malobeo/portal"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.dynamicdiscord.de/malobeo/portal"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pyproject-build-systems": {
|
"pyproject-build-systems": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -341,9 +362,10 @@
|
|||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"portal": "portal",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"tasklist": "tasklist",
|
"tasklist": "tasklist",
|
||||||
"utils": "utils_3",
|
"utils": "utils_4",
|
||||||
"zineshop": "zineshop"
|
"zineshop": "zineshop"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -443,6 +465,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tasklist": {
|
"tasklist": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -503,6 +540,24 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1791914995,
|
||||||
|
"narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils_4": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
@@ -517,9 +572,9 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils_4": {
|
"utils_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -565,7 +620,7 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"utils": "utils_4"
|
"utils": "utils_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1792488750,
|
"lastModified": 1792488750,
|
||||||
|
|||||||
@@ -32,6 +32,11 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
portal = {
|
||||||
|
url = "git+https://git.dynamicdiscord.de/malobeo/portal";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
ep3-bs = {
|
ep3-bs = {
|
||||||
url = "git+https://git.dynamicdiscord.de/kalipso/ep3-bs.nix";
|
url = "git+https://git.dynamicdiscord.de/kalipso/ep3-bs.nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ keys:
|
|||||||
- &machine_pretalx age1y04q8n7mgk82c87rfddm0u72h0ny6sfzktjsk0cc3gu93kezudfqdp9v9g
|
- &machine_pretalx age1y04q8n7mgk82c87rfddm0u72h0ny6sfzktjsk0cc3gu93kezudfqdp9v9g
|
||||||
- &machine_albert age1mfarz0n7qfa7vg8zz355qf8eregm6myl38lld0h767nuvhgjqd4qruxuhn
|
- &machine_albert age1mfarz0n7qfa7vg8zz355qf8eregm6myl38lld0h767nuvhgjqd4qruxuhn
|
||||||
- &machine_ns1 age1mam7y7x4my6g8yt8leze3pvlq0fr48hdsqz62gs7l9rstf9hh3fs03xf7n
|
- &machine_ns1 age1mam7y7x4my6g8yt8leze3pvlq0fr48hdsqz62gs7l9rstf9hh3fs03xf7n
|
||||||
|
- &machine_goldman age10gk6kydhljjk99vmaj6z0sz5d9x7pwp458gpr3hzqpl5hh04z5xqgley7j
|
||||||
#this dummy key is used for testing.
|
#this dummy key is used for testing.
|
||||||
- &machine_dummy age18jn5mrfs4gqrnv0e2sxsgh3kq4sgxx39hwr8z7mz9kt7wlgaasjqlr88ng
|
- &machine_dummy age18jn5mrfs4gqrnv0e2sxsgh3kq4sgxx39hwr8z7mz9kt7wlgaasjqlr88ng
|
||||||
creation_rules:
|
creation_rules:
|
||||||
@@ -132,6 +133,14 @@ creation_rules:
|
|||||||
age:
|
age:
|
||||||
- *machine_ns1
|
- *machine_ns1
|
||||||
- *admin_atlan
|
- *admin_atlan
|
||||||
|
- path_regex: goldman/secrets.yaml$
|
||||||
|
key_groups:
|
||||||
|
- pgp:
|
||||||
|
- *admin_kalipso
|
||||||
|
- *admin_kalipso_dsktp
|
||||||
|
age:
|
||||||
|
- *machine_goldman
|
||||||
|
- *admin_atlan
|
||||||
- path_regex: .*/secrets/.*
|
- path_regex: .*/secrets/.*
|
||||||
key_groups:
|
key_groups:
|
||||||
- pgp:
|
- pgp:
|
||||||
|
|||||||
@@ -149,6 +149,7 @@ in
|
|||||||
"antamap"
|
"antamap"
|
||||||
"ns1"
|
"ns1"
|
||||||
"wordpress"
|
"wordpress"
|
||||||
|
"portal"
|
||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
@@ -184,6 +185,22 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
virtualHosts."portal.hq.malobeo.org" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
acmeRoot = null;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${hosts.malobeo.hosts.portal.network.address}:8080";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
client_max_body_size ${inputs.self.nixosConfigurations.nextcloud.config.services.nextcloud.maxUploadSize};
|
||||||
|
client_body_timeout 3600s;
|
||||||
|
send_timeout 3600s;
|
||||||
|
fastcgi_buffers 64 4K;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
virtualHosts."cloud.hq.malobeo.org" = {
|
virtualHosts."cloud.hq.malobeo.org" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
|
|||||||
@@ -10,17 +10,33 @@ in
|
|||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
inputs.gatekeeper.nixosModules.gatekeeper
|
inputs.gatekeeper.nixosModules.gatekeeper
|
||||||
../modules/malobeo_user.nix
|
inputs.self.nixosModules.malobeo.users
|
||||||
#inputs.nixos-hardware.nixosModules.raspberry-pi-3
|
#inputs.nixos-hardware.nixosModules.raspberry-pi-3
|
||||||
(modulesPath + "/profiles/minimal.nix")
|
(modulesPath + "/profiles/minimal.nix")
|
||||||
#(modulesPath + "/installer/sd-card/sd-image.nix")
|
#(modulesPath + "/installer/sd-card/sd-image.nix")
|
||||||
|
../modules/autoupdate.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
malobeo.users = {
|
||||||
|
malobeo = false;
|
||||||
|
admin = true;
|
||||||
|
backup = false;
|
||||||
|
hostKeyLocation = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-label/NIXOS_SD";
|
{ device = "/dev/disk/by-label/NIXOS_SD";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
malobeo.autoUpdate = {
|
||||||
|
enable = true;
|
||||||
|
url = "https://hydra.malobeo.org";
|
||||||
|
project = "malobeo";
|
||||||
|
jobset = "master";
|
||||||
|
cacheurl = "https://cache.malobeo.org";
|
||||||
|
};
|
||||||
|
|
||||||
#Try to reduce size
|
#Try to reduce size
|
||||||
documentation.man.enable = false;
|
documentation.man.enable = false;
|
||||||
documentation.nixos.enable = false;
|
documentation.nixos.enable = false;
|
||||||
@@ -50,18 +66,13 @@ in
|
|||||||
settings.allow_anonymous = true;
|
settings.allow_anonymous = true;
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
sops.secrets.gatekeeperEnv = {
|
||||||
|
sopsFile = ./secrets.yaml;
|
||||||
|
};
|
||||||
services = {
|
services = {
|
||||||
gatekeeper = {
|
gatekeeper = {
|
||||||
enable = true;
|
enable = true;
|
||||||
envFile = pkgs.writeText "env" ''
|
envFile = config.sops.secrets.gatekeeperEnv.path;
|
||||||
MIFARE_APP_MASTER_KEY="7b195adb892073c9e34ebe7e0ca28b2b"
|
|
||||||
MIFARE_ACL_READ_BASE_KEY="741a50f2b189cc9f151e0600f50a6e1a"
|
|
||||||
MIFARE_ACL_WRITE_BASE_KEY="f1aa99f81cca268de98d422ee0ccb65c"
|
|
||||||
SECRET_KEY="8b14d0b447bff7efa24d5019cc59a999786e31f6f865173bbd642bf18de5ad85"
|
|
||||||
MQTT_HOST = "localhost"
|
|
||||||
MQTT_PORT = "1883"
|
|
||||||
'';
|
|
||||||
mock = "False";
|
mock = "False";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -86,7 +97,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 443 1883];
|
networking.firewall.allowedTCPPorts = [ 80 443 1883 8000 ];
|
||||||
|
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "23.05";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
gatekeeperEnv: ENC[AES256_GCM,data:1zcanuvSNQlxschxfHF3g7FRFwZr/0xLvLsShKYzDeTOjabnzJzn+uFSbOblvQTFUU6PLj3XuQ8iHaCO7l8aHqw8Omu/3VZXYb7ImvDC39Swxx9SqaGKzZKxLksp6tDf/m1YG0KrPYtw6E21PGOtwovawYNEpth3I8YH6yb/Aw62tsOFiJmC3AszQK16pffsCuahJtJRnTh488YTBSR1GTFAPHkEOTsKWCw3WoXyniQJSvNLICMB1LBmIXYvDicIQQsQouK6TTHkV9EQx6Vs54cTEzlAXgSpiQn+ka7aCaHLaZzXTN/s3wd2DK+C+gMyqP5XTc9zeYKOiUxvRhW217u8pmn7TnYbxS09WAlw+VnDGGhZwv2xhdNwuvdSbtxKvLJGYmn1X8sLn6gn4hDj675WSZNxOQkxLMkTn+ixTnIBhnVV89f4SvWkNwygJbV53sLzLgPUkvscz2HxeQkQ1s8y89O/WvhOgM8i5OQ5jDRcq9vKG9E7AvVXFx0cuk1uN6JKT1OAUUEWsjUEQgdLwfajMYCN2zLUvxGTYbvI67/UsAx5JgLzyXGeVrzBB8U/HQrclFdE3LQg5SfJvZp2yoFbbAasU+UiBj3yorRJ1IeFuBKSMmf2RcK7U7990uR4kZGyQJ5ZLxpxTeZTDR5dhk78qBAWAAJkSJeF,iv:ZGI/OOZtHRCb8MUb5bmHzDKys4W6TrJ2R4rczGIfXLg=,tag:LO+Ejl06xvOnHyUAGHhv4A==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ZVNEdENac1RGaXdzb0ox
|
||||||
|
aXJvQ3RhOHZULzVUMjIzVkFKMUp0aG00ZHlnCmFqQmlLbmZQVUUveG1INGVnbW5x
|
||||||
|
OE1HOUx1TmR6bERuUGxYUjNwSGoyRlEKLS0tIE1tWEJXQk5CT1lMdmdad2FTOENa
|
||||||
|
NW9lOTd5TGNobFN5VFR4Q2xIMjk3MkkKj85PvBY45bF4UlwQ2BhCjmfLdpWvtuD5
|
||||||
|
MmBql3JijU22TVh4d85tvKGrxmwMPenLC+GzawR0wbMXKKwmGu+Tqg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
recipient: age10gk6kydhljjk99vmaj6z0sz5d9x7pwp458gpr3hzqpl5hh04z5xqgley7j
|
||||||
|
- enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4UlYvam94d1hvbmRpdHI2
|
||||||
|
dEhocE5ZQUkwQ1ljcDlwYVZYelRTcHI3T0VnCjVURFNvc1c3Q2tTNXB1cXE5SWZj
|
||||||
|
aXl6YU9TMmJNaERGT1pOZWFEVG9tNDgKLS0tIEE2TzZ2eTJlQXMzOUp5UXIvMGFU
|
||||||
|
b0o0VFdNZGpjOWRSSmQ2RWlkUm9IZkkK33kOgGs5K8QEYwQ/n65y+Lftio1A6SGD
|
||||||
|
UK46fFb+yAoK/H3XRgzot0dt8+7RBTCJwNF+1tHWPl2Nk/1KY2bJ1g==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c
|
||||||
|
lastmodified: "2026-11-10T16:15:22Z"
|
||||||
|
mac: ENC[AES256_GCM,data:33FyofOAHb5EX4ZQe7pURPmfyG86LlF1BrigKtiFNrJ0MH6c5o+Bi/PG+zf0sKqcqkNr8PybL6iexj4YRMOqNA/OcEI9LSKCrtV1e9weUfknC4wQXLww3jba8StBZpHdMOpQ0LtbWbZwzkKF9lY3nFFtC/duprBDD7qe8L/IlXw=,iv:VZMt+wC9vV4YQOiJNy3XpjfwMBZwLJkmSk7lWSyi6x8=,tag:oF1pKKNvo5weyvhyMDdKOQ==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2026-11-10T14:43:03Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQGMA5HdvEwzh/H7AQwAmZuazwF5B/LTZMEe6nV+TBPubQN2b4CVI8HEFwfFKPeM
|
||||||
|
sKhn8isOnf+Q7gonZVLRiSraMc/Ttj2VZEJDA1Y76GSBNQK5irIQsYHl6J7fd2c4
|
||||||
|
85+YBbNiFLeSTmUMdkqjRDeo49o2J0ItAy7nwtiqpL59rLVcUq5cPvAHiaEGSTes
|
||||||
|
c1qe23BpRuagvKlzKYOoauGD3cDNyQ+jOhfJxsROlrsAL2N+1QNhIxE95JGhDnX9
|
||||||
|
AirNruuufDGVBsryZVUDo8fdZzc+p5CsL9UHMgowLiH+UjmfEvEr1y6uNgQnjhG3
|
||||||
|
SMVf0qnbJNI7jSpRtnLYg/x0y3NxcmZEWvTqJ7s1LoM3z8Fc8iSYz9W6xLmZXZMg
|
||||||
|
LxmYfd3tmYyE7CAKQ7UAPs0yu9YGbLP9hNRhALEW9mse8wpgQ377wl6nB7CtF3dT
|
||||||
|
F64zrB9P72RAHrn882LQac4gY7hAERkGzgtC1zOfPBUTHUo+b839lNQ1nBDYzNr9
|
||||||
|
On85Sud8dAd2mLEaCCG60lgBDdYz5kzoXkY7trpIG+w9YLJhOwXt4jMsbTlQTs2x
|
||||||
|
NFnCUxik+W65Bl7PIACCmfjsdPoiGy/yrdeAblCZlthjy4AkKlaRb4NpdTKt3tSc
|
||||||
|
9v+JtcrlUFpC
|
||||||
|
=Bhqc
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: c4639370c41133a738f643a591ddbc4c3387f1fb
|
||||||
|
- created_at: "2026-11-10T14:43:03Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQIMA98TrrsQEbXUAQ/6Awh/C2TD7Bz3JrOE4+aKm79MuHYHCjwqat2F/bfpRANr
|
||||||
|
MqEjrKi1YpfcPoSd05FbmjJgXdp3vHk1xz7n28rjEtqdNhV30bWyvEEc+XOpcyPV
|
||||||
|
hjAzHcw93Hk7PZDRsq70JhwXo4GFwI+jamgtxKy3stcCeUPpjvX97Z9GhGLhPh+3
|
||||||
|
PVoAR13p0NtliYVLs53IYnJ1ZkAsGoyNaTdjAT4FgeIrXJxfW1QS+8A51ERNpW8f
|
||||||
|
i+GfvYdZhgjBh187hCvPdkW6Bl5tk3Rf9fOTKIQe3mrrqYzzzESQy43UskFod0I4
|
||||||
|
IOobruNzm6nxmdzA9tFITYFljtWSAH3HQMokY+UufsRuJWgc6r+osPWVGZTGrMF8
|
||||||
|
HYly3lYNZ5alwevk5R/jQ1cTQFrRbJr3+iRR6FNVf/clnLLnRzsjAbxlQobFW7tb
|
||||||
|
YxyQYMh7f8jXvl/T+HYM6yM8G4qtFYmaRVhnssHFvyOcBxNTc1rOvr4xrLLX+QG7
|
||||||
|
YYZiS+JYh3/Jf4SGahc4UW9Qq19spBSXz9nAy+WJ+wFv1UUQwBTDxne2dO8DMCQv
|
||||||
|
J5BI0tGc7LiavFJPnUkFtFMvl/+Q56QE6lALc8M0HmEOX4m2y/8HJdptyXO/DasZ
|
||||||
|
y23JHAOxFRgOWbiVEsNjtT2n2wCP3gkZrqYP2XKMTdLXSfvlRbKs/oUlzgMFUBXS
|
||||||
|
WAHCyiUKfKq3CkTknBAORgZDMqbX2L6uFLkDKdoD7XREzJruYxUOfmuzvgUI2/iR
|
||||||
|
RXdxeKrJhCRYTrKwyTO00eT0W+IK08E0clZM0SrMjsbggoYtOcAElyE=
|
||||||
|
=brjr
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.13.3
|
||||||
+7
-2
@@ -146,10 +146,15 @@ in
|
|||||||
|
|
||||||
wordpress = {
|
wordpress = {
|
||||||
type = "microvm";
|
type = "microvm";
|
||||||
network = createMaloNet "21" "52:DA:0D:F9:EF:F6";
|
network = createMaloNet "21" "52:DA:0D:F9:EF:F7";
|
||||||
};
|
};
|
||||||
|
|
||||||
# last host id: 21
|
portal = {
|
||||||
|
type = "microvm";
|
||||||
|
network = createMaloNet "22" "52:DA:0D:F9:EF:F8";
|
||||||
|
};
|
||||||
|
|
||||||
|
# last host id: 22
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ in
|
|||||||
default = false;
|
default = false;
|
||||||
description = "enable backup user, ";
|
description = "enable backup user, ";
|
||||||
};
|
};
|
||||||
|
hostKeyLocation = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
default = "/etc/ssh/${hostName}";
|
||||||
|
description = "path to the hostkey used for sops. Defaults to '/etc/ssh/${hostName}'. Change to '/etc/ssh/ssh_host_ed25519_key' for migrating other machines.";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.malobeo {
|
(lib.mkIf cfg.malobeo {
|
||||||
@@ -81,13 +86,14 @@ in
|
|||||||
})
|
})
|
||||||
{
|
{
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
|
|
||||||
services.openssh.hostKeys = [
|
services.openssh.hostKeys = [
|
||||||
{
|
{
|
||||||
path = "/etc/ssh/${hostName}";
|
path = cfg.hostKeyLocation;
|
||||||
type = "ssh-ed25519";
|
type = "ssh-ed25519";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
sops.age.sshKeyPaths = [ "/etc/ssh/${hostName}" ];
|
sops.age.sshKeyPaths = [ cfg.hostKeyLocation ];
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
vim
|
vim
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ let
|
|||||||
hosts = import ../hosts.nix {};
|
hosts = import ../hosts.nix {};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
microvm.vcpu = 2;
|
||||||
sops.defaultSopsFile = ./secrets.yaml;
|
sops.defaultSopsFile = ./secrets.yaml;
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
nextcloudAdminPass = {
|
nextcloudAdminPass = {
|
||||||
@@ -39,7 +40,7 @@ in
|
|||||||
|
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud33;
|
package = pkgs.nextcloud35;
|
||||||
hostName = "cloud.malobeo.org";
|
hostName = "cloud.malobeo.org";
|
||||||
config.adminpassFile = config.sops.secrets.nextcloudAdminPass.path;
|
config.adminpassFile = config.sops.secrets.nextcloudAdminPass.path;
|
||||||
maxUploadSize = "10G";
|
maxUploadSize = "10G";
|
||||||
@@ -49,16 +50,10 @@ in
|
|||||||
configureRedis = true;
|
configureRedis = true;
|
||||||
caching = {
|
caching = {
|
||||||
redis = true;
|
redis = true;
|
||||||
apcu = true;
|
|
||||||
};
|
};
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
extraApps = {
|
extraApps = {
|
||||||
inherit (config.services.nextcloud.package.packages.apps) contacts calendar polls registration collectives forms;
|
inherit (config.services.nextcloud.package.packages.apps) contacts calendar polls registration collectives forms deck;
|
||||||
deck = pkgs.fetchNextcloudApp {
|
|
||||||
sha256 = "sha256-Oc/J0Ey7f9aHhLBWoAXaDMe2t0eeEQKvpwY510qNpiI=";
|
|
||||||
url = "https://s3.g.megas4.com/ya5mczgkbk6bw7tcy2yr4bl2vdryfe76ok2dj/malo/deck33.tar.gz";
|
|
||||||
license = "agpl3Plus";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
trusted_domains = [ "cloud.malobeo.org" "cloud.hq.malobeo.org" ];
|
trusted_domains = [ "cloud.malobeo.org" "cloud.hq.malobeo.org" ];
|
||||||
@@ -68,7 +63,6 @@ in
|
|||||||
"default_phone_region" = "DE";
|
"default_phone_region" = "DE";
|
||||||
};
|
};
|
||||||
phpOptions = {
|
phpOptions = {
|
||||||
"realpath_cache_size" = "0";
|
|
||||||
"opcache.interned_strings_buffer" = "32";
|
"opcache.interned_strings_buffer" = "32";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
nextcloudAdminPass: ENC[AES256_GCM,data:es9hhtCcqBqPbV2L,iv:Kyq5kqao0uaMPs0GeRkJT9OWYSZfImBXngg51k0uQ0M=,tag:zN/u90/j4rmdo0HtY+cF9w==,type:str]
|
nextcloudAdminPass: ENC[AES256_GCM,data:RsP8Q1FqS9qgYTNe+H/nDHwQwr0fvlQawCOJWZVoF2U=,iv:AqJ79m3GAUd6sczDByJlb+K3XxxEt3HS4fURd7kn0bY=,tag:n/GyRKrIwOcksDtewnnXZw==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
age:
|
||||||
- recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c
|
- enc: |
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPT3ZxNEpRVktDWG9BR0Rv
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPT3ZxNEpRVktDWG9BR0Rv
|
||||||
ZUZQTkJwQ0pSblNvTkFOT3BBdjVaSzJhVzBvCnVWc2xRUjBnRFFXSDgxczRMSFMy
|
ZUZQTkJwQ0pSblNvTkFOT3BBdjVaSzJhVzBvCnVWc2xRUjBnRFFXSDgxczRMSFMy
|
||||||
@@ -14,8 +9,8 @@ sops:
|
|||||||
aDd0UlpMR3RNd3BDMmhqNmxhTFRoUlkK6Pni+cswKIU94WkP/fg5fzSmx/fhXjjl
|
aDd0UlpMR3RNd3BDMmhqNmxhTFRoUlkK6Pni+cswKIU94WkP/fg5fzSmx/fhXjjl
|
||||||
mRG2o4ALCqcOxAxHBrKJppUCLjUgKG53wPF/jlIzkvbwHwnqVMfYsQ==
|
mRG2o4ALCqcOxAxHBrKJppUCLjUgKG53wPF/jlIzkvbwHwnqVMfYsQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1g084sl230x94mkd2wq92s03mw0e8mnpjdjfx9uzaxw6psm8neyzqqwpnqe
|
recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRK2o2K2tPTFcvbXRkZ0lq
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRK2o2K2tPTFcvbXRkZ0lq
|
||||||
bS9ZOUc3dG1JeERZYVNsc3k3RjcxQ0RsdkRJCkx1VFhBQXRDOElqakJ0eTd3NEJX
|
bS9ZOUc3dG1JeERZYVNsc3k3RjcxQ0RsdkRJCkx1VFhBQXRDOElqakJ0eTd3NEJX
|
||||||
@@ -23,8 +18,9 @@ sops:
|
|||||||
VjBFeldXS1p0Zk1uSk02aHpJd3BPOHcKvCmnK/KttB4RgnID/fj2KOdjvNnV3EWU
|
VjBFeldXS1p0Zk1uSk02aHpJd3BPOHcKvCmnK/KttB4RgnID/fj2KOdjvNnV3EWU
|
||||||
B9mW4yxbEqhoxtu+GFD3eR/8SvMPEsHl9xorT/ZygMG7hAzedSukWw==
|
B9mW4yxbEqhoxtu+GFD3eR/8SvMPEsHl9xorT/ZygMG7hAzedSukWw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-11-26T20:00:50Z"
|
recipient: age1g084sl230x94mkd2wq92s03mw0e8mnpjdjfx9uzaxw6psm8neyzqqwpnqe
|
||||||
mac: ENC[AES256_GCM,data:qoY9SfpoU+8HfvD5v/1S6BOkbnZUmHIbtwr0tTSuPETjnFNgr1VVw9mnRatJKPYYFb9/rMZQWIqTY+iUIEkcTVyVXhd6ki5CHW+uxCeBIyMzq33rtEa/btkEUoii4iPieamBCIY21W0znE+edxfR04yRJtLxMICEbuW4Hjf6bwk=,iv:nG42fRgjpuIjPMYnn/6egEdzYolcUBsspaZ8zMv4888=,tag:C6apGoAvVLsWdLWSCwrx6w==,type:str]
|
lastmodified: "2026-10-22T19:07:13Z"
|
||||||
|
mac: ENC[AES256_GCM,data:HD1uqrxxfLrHGQfu7HFpuunpj/npPe35AvvFrhGFRUTtXLGRPDn5xeOiuHyT+qSs51lukE+hYhv/+u4xolb0SInOJtPTZ6suRcZ4maJ+9P0mgjs7OmI4e68CpGo0xuOg378WvlF15VQH2KCcVskEkO9UBTfOUmyNku1g4F6PeWw=,iv:cJaz6dYkspBlBY9aCaK2/zBDiVg7J7nCE+fnwNHz1Tw=,tag:5sKITZ8uD7JnRtwhaOPoGw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2025-03-05T08:24:30Z"
|
- created_at: "2025-03-05T08:24:30Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
@@ -65,4 +61,4 @@ sops:
|
|||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4
|
fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.8.1
|
version: 3.13.3
|
||||||
|
|||||||
@@ -270,6 +270,12 @@ in
|
|||||||
targets = [ "${hosts.malobeo.hosts.wordpress.network.address}:9002" ];
|
targets = [ "${hosts.malobeo.hosts.wordpress.network.address}:9002" ];
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
job_name = "portal";
|
||||||
|
static_configs = [{
|
||||||
|
targets = [ "${hosts.malobeo.hosts.zineshop.network.address}:9002" ];
|
||||||
|
}];
|
||||||
|
}
|
||||||
# add vpn - check how to reach it first. most probably 10.100.0.1
|
# add vpn - check how to reach it first. most probably 10.100.0.1
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{ self, config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
hosts = import ../hosts.nix {};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = mkDefault "portal";
|
||||||
|
useDHCP = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.malobeo.nixosModules.malobeo.metrics
|
||||||
|
inputs.portal.nixosModules.portal
|
||||||
|
inputs.self.nixosModules.malobeo.users
|
||||||
|
../modules/sshd.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
malobeo.metrics = {
|
||||||
|
enable = true;
|
||||||
|
enablePromtail = true;
|
||||||
|
logNginx = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
malobeo.users = {
|
||||||
|
admin = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.portal = {
|
||||||
|
enable = true;
|
||||||
|
#TODO: we should use FQDN like gatekeeper.hq.malobeo.org
|
||||||
|
gatekeeperHost = "${hosts.malobeo.hosts.goldman.network.address}:8000";
|
||||||
|
gatekeeperScheme = "http";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8080 ];
|
||||||
|
|
||||||
|
system.stateVersion = "22.11"; # Did you read the comment?
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user