Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44cbc96e0d |
Generated
+3
-3
@@ -264,11 +264,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1792615934,
|
"lastModified": 1788187754,
|
||||||
"narHash": "sha256-MlvRfa1O5Cqc2/a+gG+l9TSuowEoCKCmrJ1d9oAVm0I=",
|
"narHash": "sha256-bu1QxmXKmPuvBLN7bHP355OV9Qo13x9WCiRDH62CqRM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "da6dc0e7b26060f2f71ce3ef7088fb56ee44fa36",
|
"rev": "5dfba6236110080a54247d6460bc2ff5dda939cc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ 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 = {
|
||||||
@@ -40,7 +39,7 @@ in
|
|||||||
|
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud35;
|
package = pkgs.nextcloud33;
|
||||||
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";
|
||||||
@@ -50,10 +49,16 @@ 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 deck;
|
inherit (config.services.nextcloud.package.packages.apps) contacts calendar polls registration collectives forms;
|
||||||
|
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" ];
|
||||||
@@ -63,6 +68,7 @@ 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,7 +1,12 @@
|
|||||||
nextcloudAdminPass: ENC[AES256_GCM,data:RsP8Q1FqS9qgYTNe+H/nDHwQwr0fvlQawCOJWZVoF2U=,iv:AqJ79m3GAUd6sczDByJlb+K3XxxEt3HS4fURd7kn0bY=,tag:n/GyRKrIwOcksDtewnnXZw==,type:str]
|
nextcloudAdminPass: ENC[AES256_GCM,data:es9hhtCcqBqPbV2L,iv:Kyq5kqao0uaMPs0GeRkJT9OWYSZfImBXngg51k0uQ0M=,tag:zN/u90/j4rmdo0HtY+cF9w==,type:str]
|
||||||
sops:
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
age:
|
age:
|
||||||
- enc: |
|
- recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c
|
||||||
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPT3ZxNEpRVktDWG9BR0Rv
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPT3ZxNEpRVktDWG9BR0Rv
|
||||||
ZUZQTkJwQ0pSblNvTkFOT3BBdjVaSzJhVzBvCnVWc2xRUjBnRFFXSDgxczRMSFMy
|
ZUZQTkJwQ0pSblNvTkFOT3BBdjVaSzJhVzBvCnVWc2xRUjBnRFFXSDgxczRMSFMy
|
||||||
@@ -9,8 +14,8 @@ sops:
|
|||||||
aDd0UlpMR3RNd3BDMmhqNmxhTFRoUlkK6Pni+cswKIU94WkP/fg5fzSmx/fhXjjl
|
aDd0UlpMR3RNd3BDMmhqNmxhTFRoUlkK6Pni+cswKIU94WkP/fg5fzSmx/fhXjjl
|
||||||
mRG2o4ALCqcOxAxHBrKJppUCLjUgKG53wPF/jlIzkvbwHwnqVMfYsQ==
|
mRG2o4ALCqcOxAxHBrKJppUCLjUgKG53wPF/jlIzkvbwHwnqVMfYsQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1ljpdczmg5ctqyeezn739hv589fwhssjjnuqf7276fqun6kc62v3qmhkd0c
|
- recipient: age1g084sl230x94mkd2wq92s03mw0e8mnpjdjfx9uzaxw6psm8neyzqqwpnqe
|
||||||
- enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRK2o2K2tPTFcvbXRkZ0lq
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRK2o2K2tPTFcvbXRkZ0lq
|
||||||
bS9ZOUc3dG1JeERZYVNsc3k3RjcxQ0RsdkRJCkx1VFhBQXRDOElqakJ0eTd3NEJX
|
bS9ZOUc3dG1JeERZYVNsc3k3RjcxQ0RsdkRJCkx1VFhBQXRDOElqakJ0eTd3NEJX
|
||||||
@@ -18,9 +23,8 @@ sops:
|
|||||||
VjBFeldXS1p0Zk1uSk02aHpJd3BPOHcKvCmnK/KttB4RgnID/fj2KOdjvNnV3EWU
|
VjBFeldXS1p0Zk1uSk02aHpJd3BPOHcKvCmnK/KttB4RgnID/fj2KOdjvNnV3EWU
|
||||||
B9mW4yxbEqhoxtu+GFD3eR/8SvMPEsHl9xorT/ZygMG7hAzedSukWw==
|
B9mW4yxbEqhoxtu+GFD3eR/8SvMPEsHl9xorT/ZygMG7hAzedSukWw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1g084sl230x94mkd2wq92s03mw0e8mnpjdjfx9uzaxw6psm8neyzqqwpnqe
|
lastmodified: "2024-11-26T20:00:50Z"
|
||||||
lastmodified: "2026-10-22T19:07:13Z"
|
mac: ENC[AES256_GCM,data:qoY9SfpoU+8HfvD5v/1S6BOkbnZUmHIbtwr0tTSuPETjnFNgr1VVw9mnRatJKPYYFb9/rMZQWIqTY+iUIEkcTVyVXhd6ki5CHW+uxCeBIyMzq33rtEa/btkEUoii4iPieamBCIY21W0znE+edxfR04yRJtLxMICEbuW4Hjf6bwk=,iv:nG42fRgjpuIjPMYnn/6egEdzYolcUBsspaZ8zMv4888=,tag:C6apGoAvVLsWdLWSCwrx6w==,type:str]
|
||||||
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: |-
|
||||||
@@ -61,4 +65,4 @@ sops:
|
|||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4
|
fp: aef8d6c7e4761fc297cda833df13aebb1011b5d4
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.13.3
|
version: 3.8.1
|
||||||
|
|||||||
+17
-6
@@ -47,12 +47,18 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
|
|||||||
shellHook = ''echo "Available scripts: ${builtins.concatStringsSep " " installed}"'';
|
shellHook = ''echo "Available scripts: ${builtins.concatStringsSep " " installed}"'';
|
||||||
};
|
};
|
||||||
|
|
||||||
legacyPackages = {
|
legacyPackages.scripts = {
|
||||||
scripts.remote-install = pkgs.writeShellScriptBin "remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh);
|
malobeo-remote-install = pkgs.writeShellScriptBin "malobeo-remote-install" (builtins.readFile ./scripts/remote-install-encrypt.sh);
|
||||||
scripts.boot-unlock = pkgs.writeShellScriptBin "boot-unlock" (builtins.readFile ./scripts/unlock-boot.sh);
|
malobeo-boot-unlock = pkgs.writeShellScriptBin "malobeo-boot-unlock" (builtins.readFile ./scripts/unlock-boot.sh);
|
||||||
scripts.add-host-keys = pkgs.writeShellScriptBin "add-host-keys" (builtins.readFile ./scripts/add_new_host_keys.sh);
|
malobeo-add-host-keys = pkgs.writeShellScriptBin "malobeo-add-host-keys" (builtins.readFile ./scripts/add_new_host_keys.sh);
|
||||||
scripts.run-vm = self.packages.${system}.run-vm;
|
malobeo-run-vm = self.packages.${system}.run-vm;
|
||||||
};
|
} // (import ./packages/ssh_to_hosts.nix) {
|
||||||
|
malobeo = (import ./machines/hosts.nix {}).malobeo;
|
||||||
|
peers = import ./machines/modules/malobeo/peers.nix;
|
||||||
|
pkgs = pkgs;
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
vmBuilder = utils.buildVM;
|
vmBuilder = utils.buildVM;
|
||||||
|
|
||||||
@@ -75,6 +81,11 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
|
|||||||
};
|
};
|
||||||
|
|
||||||
run-vm = pkgs.writeShellScriptBin "run-vm" (builtins.readFile ./scripts/run-vm.sh);
|
run-vm = pkgs.writeShellScriptBin "run-vm" (builtins.readFile ./scripts/run-vm.sh);
|
||||||
|
} // (import ./packages/ssh_to_hosts.nix) {
|
||||||
|
malobeo = (import ./machines/hosts.nix {}).malobeo;
|
||||||
|
peers = import ./machines/modules/malobeo/peers.nix;
|
||||||
|
pkgs = pkgs;
|
||||||
|
lib = nixpkgs.lib;
|
||||||
};
|
};
|
||||||
|
|
||||||
apps = {
|
apps = {
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{ malobeo, peers, pkgs, lib, ... }:
|
||||||
|
#mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value))
|
||||||
|
let
|
||||||
|
get_ip = hostname: malobeo.hosts.${hostname}.network.address;
|
||||||
|
generate_ssh_command = hostname: hostConfig: (
|
||||||
|
if hostConfig.network.local == true then
|
||||||
|
if hostname == "fanny" then
|
||||||
|
"ssh admin@${malobeo.hosts."fanny".network.address}"
|
||||||
|
else
|
||||||
|
"ssh -J admin@${malobeo.hosts."fanny".network.address} admin@${get_ip hostname}"
|
||||||
|
else
|
||||||
|
"offsite"
|
||||||
|
);
|
||||||
|
in
|
||||||
|
(lib.attrsets.mapAttrs' (hostname: hostConfig: lib.nameValuePair
|
||||||
|
("malobeo-ssh-${hostname}")
|
||||||
|
(pkgs.writeShellScriptBin "malobeo-ssh-${hostname}"
|
||||||
|
''
|
||||||
|
#!/bin/sh
|
||||||
|
echo "${hostname} ${generate_ssh_command hostname hostConfig}"
|
||||||
|
'')) malobeo.hosts )
|
||||||
|
#{
|
||||||
|
# test-pkg = pkgs.writeShellScriptBin "run-vm" (builtins.readFile ../scripts/run-vm.sh);
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
# microvm
|
||||||
|
# - local:
|
||||||
|
# - yes: ssh through fanny
|
||||||
|
# - no: if in peers.nix -> ssh through vpn, else not possible
|
||||||
|
# not microvm:
|
||||||
|
# - local:
|
||||||
|
# - yes: ssh through fanny (except for fanny)
|
||||||
|
# - no: not supported
|
||||||
|
|
||||||
Reference in New Issue
Block a user