host(ryo): add part 1/2 of funny

Changed files
+46 -4
creds
sops
systems
+4 -2
creds/sops/ryo/default.yaml
···
vmetrics:
auth: ENC[AES256_GCM,data:D+EKKAsDVIrTdXyxhQQ65rkgbOUlTfbMqYn3a1GWYwHQDAplb1lAqY7yPbvrLhC7QJRagMMfMxN1q39dsz5eBiUZU3YORrt/Eo3sjlZGT5HcZo7ASnGWO62FarjAZOk2dFk6Qj3TtZ+z8OOnmW4JpoaILKBA3KTb5PQKRmrF7iEJwjr3w8ojqmRjt/nGn6CE5xU6Fpq3tuwSHNmfGiK9hpVRig9WyzDv6Ii+Fg==,iv:BVNHFOmGisiiEvX4+qyFrY/kfF9lhFh+iLXO3lLVIbE=,tag:H7N5XPqr1wjAZeKnBjCH8Q==,type:str]
+
lego:
+
cf_token: ENC[AES256_GCM,data:rH9al1jeSY/FsyQ2dDsjyi39m4VKjouBydo85wTxE3qTKDNLY/anhQ==,iv:XssbI1d82KkP0OLK4hHe2a4UwCdT+4TZX51JalSRZ2c=,tag:bqOCrxg6+HX6hDRn4xLOhQ==,type:str]
sops:
kms: []
gcp_kms: []
···
emlNZ1dUT2J6TlNRVjJsZlJDeWZOQ3MKEj9zpAX8PJ1wWuokrXJf0tkwPJx3zZAD
MTy/t6dddmzfrltmZnE+MdsS9U5Dol/TdGOR7YhjdvsWfHcCT6g2TA==
-----END AGE ENCRYPTED FILE-----
-
lastmodified: "2025-01-18T16:33:50Z"
-
mac: ENC[AES256_GCM,data:6twftanA8IZwvmFvMoRHcrD5p7fa3CDTGntb1dYXZqx2wKhJ0LGKsCmWx/g4SYnRDFcKTr0BIQUm9r0n0AIiCXM2T9ZOJ5qW9k5cf5/VSFzbg3CUjkqHTHO1KmMGTcv9qvhLZsRd1ltbynrxVajpEZwNl+qGiq1V1wjjm0aL1QE=,iv:odSFhKTBU5Ap88F55FOCEsnHMW6iSuUnGMz0i0/IXbk=,tag:8kQbfjASESvv6MLvCMZMsA==,type:str]
+
lastmodified: "2025-01-20T13:19:18Z"
+
mac: ENC[AES256_GCM,data:vSZDS9yqyQNiBbqvI4fCsPU/vEbxjX22E6d+N2Dz2oa+/0OP1X7aQiT4JJ2g5HRGo4ziGUrE8fZLR32s7V3VEErx6AETotwnzVMRYbfw+rHbjaWWb4kjgMOiJRO1iYa28t+0FnEXdFICDw/DB9unJT2Vtj55Og1p8sp3UqBGef4=,iv:HPisIwKptZSPkgIhzPnVbRa9aInOTZWrN38aIVpWC+c=,tag:YM8sZFee7RTKHkaYC07mzQ==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.2
+5
systems/ryo/certificates/default.nix
···
+
{...}: {
+
imports = [
+
./ryo.nix
+
];
+
}
+5
systems/ryo/certificates/ryo.nix
···
+
{...}: {
+
security.acme.certs."ryo.soopy.moe" = {
+
group = "nginx";
+
};
+
}
+9 -2
systems/ryo/configuration.nix
···
# ryo because empty-headed. also btr naming scheme.
# DO NOT copy anything done on this host, it's insecure by design.
{...}: {
-
imports = [];
+
imports = [
+
./certificates
+
./services
+
];
-
gensokyo.presets.vmetrics = true;
+
gensokyo.presets = {
+
vmetrics = true;
+
certificates = true;
+
nginx = true;
+
};
zramSwap.enable = true;
system.stateVersion = "23.11";
}
+6
systems/ryo/services/default.nix
···
+
{...}: {
+
imports = [
+
./novnc.nix
+
# ./thefunny.nix
+
];
+
}
+17
systems/ryo/services/novnc.nix
···
+
{_utils, pkgs, lib, ...}: {
+
services.nginx.virtualHosts."ryo.soopy.moe" = _utils.mkSimpleProxy {
+
port = 6080;
+
websockets = true;
+
extraConfig = {
+
locations."= /".return = "303 /vnc_lite.html";
+
useACMEHost = "ryo.soopy.moe";
+
};
+
};
+
+
systemd.services."novnc" = {
+
serviceConfig = {
+
DynamicUser = true;
+
ExecStart = "${lib.getExe pkgs.novnc} --file-only";
+
};
+
};
+
}