forked from CCCHH/nix-infra
Compare commits
13 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
ebb0cea592 |
|||
|
213707b310 |
|||
|
175df86928 |
|||
|
62885a0095 |
|||
|
193ccedbee |
|||
|
709afd0a1d |
|||
|
827c469415 |
|||
|
30b6d54f95 |
|||
|
0ea41b3141 |
|||
|
e51e631918 |
|||
|
28d82f149d |
|||
|
79952f8c63 |
|||
|
c9e27a5bb6 |
22 changed files with 158 additions and 403 deletions
|
|
@ -3,11 +3,11 @@
|
||||||
# - https://forgejo.org/docs/latest/user/actions/
|
# - https://forgejo.org/docs/latest/user/actions/
|
||||||
# - https://docs.gitea.com/next/usage/actions/act-runner
|
# - https://docs.gitea.com/next/usage/actions/act-runner
|
||||||
|
|
||||||
{ config, pkgs-unstable, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.gitea-actions-runner = {
|
services.gitea-actions-runner = {
|
||||||
package = pkgs-unstable.forgejo-actions-runner;
|
package = pkgs.forgejo-runner;
|
||||||
instances.ccchh-forgejo-global-docker = {
|
instances.ccchh-forgejo-global-docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = "Global Docker Forgejo Actions Runner";
|
name = "Global Docker Forgejo Actions Runner";
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
hostName = "hydra";
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./configuration.nix
|
|
||||||
./hydra.nix
|
|
||||||
./networking.nix
|
|
||||||
./nginx.nix
|
|
||||||
./nix.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.hydra = {
|
|
||||||
enable = true;
|
|
||||||
listenHost = "localhost";
|
|
||||||
port = 3000;
|
|
||||||
hydraURL = "https://hydra.hamburg.ccc.de/";
|
|
||||||
# E-Mail configuration requires some work/investigation still.
|
|
||||||
notificationSender = "no-reply@hydra.hamburg.ccc.de";
|
|
||||||
useSubstitutes = true;
|
|
||||||
minimumDiskFree = 8;
|
|
||||||
minimumDiskFreeEvaluator = 2;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
interfaces.net0 = {
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "172.31.17.163";
|
|
||||||
prefixLength = 25;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
defaultGateway = "172.31.17.129";
|
|
||||||
nameservers = [ "212.12.50.158" "192.76.134.90" ];
|
|
||||||
search = [ "hamburg.ccc.de" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.network.links."10-net0" = {
|
|
||||||
matchConfig.MACAddress = "BC:24:11:45:7C:D6";
|
|
||||||
linkConfig.Name = "net0";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
domain = "hydra.hamburg.ccc.de";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
virtualHosts = {
|
|
||||||
"acme-${domain}" = {
|
|
||||||
default = true;
|
|
||||||
enableACME = true;
|
|
||||||
serverName = "${domain}";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 31820;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"${domain}" = {
|
|
||||||
default = true;
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "${domain}";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 8443;
|
|
||||||
ssl = true;
|
|
||||||
proxyProtocol = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://${config.services.hydra.listenHost}:${builtins.toString config.services.hydra.port}";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
# Make use of the ngx_http_realip_module to set the $remote_addr and
|
|
||||||
# $remote_port to the client address and client port, when using proxy
|
|
||||||
# protocol.
|
|
||||||
# First set our proxy protocol proxy as trusted.
|
|
||||||
set_real_ip_from 172.31.17.140;
|
|
||||||
# Then tell the realip_module to get the addreses from the proxy protocol
|
|
||||||
# header.
|
|
||||||
real_ip_header proxy_protocol;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8443 31820 ];
|
|
||||||
networking.firewall.allowedUDPPorts = [ 8443 ];
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Allow Hydra to fetch flake inputs.
|
|
||||||
nix.settings.allowed-uris = [
|
|
||||||
"github:"
|
|
||||||
"https://github.com/"
|
|
||||||
"https://git.hamburg.ccc.de/"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,18 +1,24 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
networking = {
|
networking.useDHCP = false;
|
||||||
interfaces.net0 = {
|
|
||||||
ipv4.addresses = [
|
services.cloud-init = {
|
||||||
{
|
enable = true;
|
||||||
address = "172.31.17.161";
|
network.enable = true;
|
||||||
prefixLength = 25;
|
|
||||||
}
|
# Version without ssh of:
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/3c9db02515ef1d9b6b709fc60ba9a540957f661c/nixos/modules/services/system/cloud-init.nix#L145
|
||||||
|
# So we don't get ssh hostkey regenerations.
|
||||||
|
settings.cloud_config_modules = [
|
||||||
|
"disk_setup"
|
||||||
|
"mounts"
|
||||||
|
"ssh-import-id"
|
||||||
|
"set-passwords"
|
||||||
|
"timezone"
|
||||||
|
"disable-ec2-metadata"
|
||||||
|
"runcmd"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
defaultGateway = "172.31.17.129";
|
|
||||||
nameservers = [ "212.12.50.158" "192.76.134.90" ];
|
|
||||||
search = [ "hamburg.ccc.de" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.network.links."10-net0" = {
|
systemd.network.links."10-net0" = {
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,6 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.nginx.streamConfig = ''
|
|
||||||
map $ssl_preread_server_name $address {
|
|
||||||
status.ccchh.net 10.31.206.15:8443;
|
|
||||||
status.hamburg.ccc.de 10.31.206.15:8443;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Listen on port 443 as a reverse proxy and use PROXY Protocol for the
|
|
||||||
# upstreams.
|
|
||||||
server {
|
|
||||||
listen 0.0.0.0:443;
|
|
||||||
proxy_pass $address;
|
|
||||||
ssl_preread on;
|
|
||||||
proxy_protocol on;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.nginx.appendHttpConfig = ''
|
services.nginx.appendHttpConfig = ''
|
||||||
map $host $upstream_acme_challenge_host {
|
map $host $upstream_acme_challenge_host {
|
||||||
club-assistant.ccchh.net 10.31.208.10;
|
club-assistant.ccchh.net 10.31.208.10;
|
||||||
|
|
@ -35,7 +19,6 @@
|
||||||
zigbee2mqtt.ccchh.net 10.31.208.25:31820;
|
zigbee2mqtt.ccchh.net 10.31.208.25:31820;
|
||||||
esphome.ccchh.net 10.31.208.24:31820;
|
esphome.ccchh.net 10.31.208.24:31820;
|
||||||
proxmox-backup-server.ccchh.net 10.31.208.28;
|
proxmox-backup-server.ccchh.net 10.31.208.28;
|
||||||
status.ccchh.net 10.31.206.15:31820;
|
|
||||||
default "";
|
default "";
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.nginx.enable = true;
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
appendHttpConfig = ''
|
||||||
|
access_log off;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8443 31820 ];
|
networking.firewall.allowedTCPPorts = [ 8443 31820 ];
|
||||||
networking.firewall.allowedUDPPorts = [ 8443 ];
|
networking.firewall.allowedUDPPorts = [ 8443 ];
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
"$www.${domain}" = {
|
"www.${domain}" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = "${domain}";
|
useACMEHost = "${domain}";
|
||||||
|
|
||||||
|
|
|
||||||
118
config/hosts/public-web-static/virtualHosts/cpu.ccc.de.nix
Normal file
118
config/hosts/public-web-static/virtualHosts/cpu.ccc.de.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
domain = "cpu.ccc.de";
|
||||||
|
dataDir = "/var/www/${domain}";
|
||||||
|
deployUser = "cpuccc-website-deploy";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
security.acme.certs."cpu.ccc.de".extraDomainNames = [
|
||||||
|
"lokal.ccc.de"
|
||||||
|
"local.ccc.de"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.nginx.virtualHosts = {
|
||||||
|
"acme-${domain}" = {
|
||||||
|
enableACME = true;
|
||||||
|
serverName = "${domain}";
|
||||||
|
|
||||||
|
listen = [
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 31820;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://git.hamburg.ccc.de/CCCHH/cpu.ccc.de/src/branch/main/nginx.conf
|
||||||
|
"${domain}" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "${domain}";
|
||||||
|
|
||||||
|
listen = [
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 8443;
|
||||||
|
ssl = true;
|
||||||
|
proxyProtocol = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
root = "${dataDir}";
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
index index.html;
|
||||||
|
default_type text/plain;
|
||||||
|
|
||||||
|
# Make use of the ngx_http_realip_module to set the $remote_addr and
|
||||||
|
# $remote_port to the client address and client port, when using proxy
|
||||||
|
# protocol.
|
||||||
|
# First set our proxy protocol proxy as trusted.
|
||||||
|
set_real_ip_from 172.31.17.140;
|
||||||
|
# Then tell the realip_module to get the addreses from the proxy protocol
|
||||||
|
# header.
|
||||||
|
real_ip_header proxy_protocol;
|
||||||
|
|
||||||
|
port_in_redirect off;
|
||||||
|
'';
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
tryFiles = "$uri $uri/ =404";
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
location /feed/ {
|
||||||
|
default_type application/rss+xml;
|
||||||
|
types {
|
||||||
|
text/xml application/rss+xml;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
location /rss {
|
||||||
|
default_type application/rss+xml;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"lokal.ccc.de" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "cpu.ccc.de";
|
||||||
|
serverAliases = [
|
||||||
|
"local.ccc.de"
|
||||||
|
];
|
||||||
|
|
||||||
|
listen = [{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 8443;
|
||||||
|
ssl = true;
|
||||||
|
proxyProtocol = true;
|
||||||
|
}];
|
||||||
|
|
||||||
|
locations."/".return = "302 https://cpu.ccc.de";
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# Make use of the ngx_http_realip_module to set the $remote_addr and
|
||||||
|
# $remote_port to the client address and client port, when using proxy
|
||||||
|
# protocol.
|
||||||
|
# First set our proxy protocol proxy as trusted.
|
||||||
|
set_real_ip_from 172.31.17.140;
|
||||||
|
# Then tell the realip_module to get the addreses from the proxy protocol
|
||||||
|
# header.
|
||||||
|
real_ip_header proxy_protocol;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${dataDir} 0755 ${deployUser} ${deployUser}"
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users."${deployUser}" = {
|
||||||
|
isNormalUser = true;
|
||||||
|
group = "${deployUser}";
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOnO7g/7mVVKnvkszto8m3nPljO/6qQc/34aEbrhKOvn deploy key for cpu.ccc.de"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
users.groups."${deployUser}" = { };
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./branding-resources.hamburg.ccc.de.nix
|
./branding-resources.hamburg.ccc.de.nix
|
||||||
./c3cat.de.nix
|
./c3cat.de.nix
|
||||||
|
./cpu.ccc.de.nix
|
||||||
./cryptoparty-hamburg.de.nix
|
./cryptoparty-hamburg.de.nix
|
||||||
./element-admin.hamburg.ccc.de.nix
|
./element-admin.hamburg.ccc.de.nix
|
||||||
./element.hamburg.ccc.de.nix
|
./element.hamburg.ccc.de.nix
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
"hamburg.ccc.de" = {
|
"hamburg.ccc.de" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = "hamburg.ccc.de";
|
useACMEHost = "hamburg.ccc.de";
|
||||||
|
default = true;
|
||||||
|
|
||||||
listen = [
|
listen = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
hostName = "status";
|
|
||||||
domain = "z9.ccchh.net";
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./configuration.nix
|
|
||||||
./networking.nix
|
|
||||||
./nginx.nix
|
|
||||||
./uptime-kuma.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
interfaces.net0 = {
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "10.31.206.15";
|
|
||||||
prefixLength = 23;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
ipv6.addresses = [
|
|
||||||
{
|
|
||||||
address = "2a07:c481:1:ce::a";
|
|
||||||
prefixLength = 64;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
defaultGateway = "10.31.206.1";
|
|
||||||
defaultGateway6 = "2a07:c481:1:ce::1";
|
|
||||||
nameservers = [ "10.31.206.1" "2a07:c481:1:ce::1" ];
|
|
||||||
search = [ "z9.ccchh.net" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.network.links."10-net0" = {
|
|
||||||
matchConfig.MACAddress = "BC:24:11:79:D3:E1";
|
|
||||||
linkConfig.Name = "net0";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,149 +0,0 @@
|
||||||
# Sources for this configuration:
|
|
||||||
# - https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy
|
|
||||||
|
|
||||||
{ config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.nginx = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
virtualHosts = {
|
|
||||||
"status.hamburg.ccc.de" = {
|
|
||||||
forceSSL = true;
|
|
||||||
enableACME = true;
|
|
||||||
serverName = "status.hamburg.ccc.de";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 443;
|
|
||||||
ssl = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://localhost:3001";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"status-proxyprotocol.hamburg.ccc.de" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "status.hamburg.ccc.de";
|
|
||||||
serverName = "status.hamburg.ccc.de";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 8443;
|
|
||||||
ssl = true;
|
|
||||||
proxyProtocol = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://localhost:3001";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
# Make use of the ngx_http_realip_module to set the $remote_addr and
|
|
||||||
# $remote_port to the client address and client port, when using proxy
|
|
||||||
# protocol.
|
|
||||||
# First set our proxy protocol proxy as trusted.
|
|
||||||
set_real_ip_from 10.31.206.11;
|
|
||||||
# Then tell the realip_module to get the addreses from the proxy protocol
|
|
||||||
# header.
|
|
||||||
real_ip_header proxy_protocol;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"status.ccchh.net" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "status.hamburg.ccc.de";
|
|
||||||
serverName = "status.ccchh.net";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 443;
|
|
||||||
ssl = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
globalRedirect = "status.hamburg.ccc.de";
|
|
||||||
redirectCode = 307;
|
|
||||||
};
|
|
||||||
"status-proxyprotocol.ccchh.net" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "status.hamburg.ccc.de";
|
|
||||||
serverName = "status.ccchh.net";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 8443;
|
|
||||||
ssl = true;
|
|
||||||
proxyProtocol = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
globalRedirect = "status.hamburg.ccc.de";
|
|
||||||
redirectCode = 307;
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
# Make use of the ngx_http_realip_module to set the $remote_addr and
|
|
||||||
# $remote_port to the client address and client port, when using proxy
|
|
||||||
# protocol.
|
|
||||||
# First set our proxy protocol proxy as trusted.
|
|
||||||
set_real_ip_from 10.31.206.11;
|
|
||||||
# Then tell the realip_module to get the addreses from the proxy protocol
|
|
||||||
# header.
|
|
||||||
real_ip_header proxy_protocol;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"status.z9.ccchh.net" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "status.hamburg.ccc.de";
|
|
||||||
serverName = "status.z9.ccchh.net";
|
|
||||||
|
|
||||||
listen = [
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 80;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "0.0.0.0";
|
|
||||||
port = 443;
|
|
||||||
ssl = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
addr = "[::]";
|
|
||||||
port = 443;
|
|
||||||
ssl = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
globalRedirect = "status.hamburg.ccc.de";
|
|
||||||
redirectCode = 307;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.acme.certs."status.hamburg.ccc.de".extraDomainNames = [
|
|
||||||
"status.ccchh.net"
|
|
||||||
"status.z9.ccchh.net"
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 443 8443 ];
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.uptime-kuma = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -16,16 +16,13 @@
|
||||||
"targetHostname": "forgejo-actions-runner-intern.hamburg.ccc.de"
|
"targetHostname": "forgejo-actions-runner-intern.hamburg.ccc.de"
|
||||||
},
|
},
|
||||||
"mjolnir": {
|
"mjolnir": {
|
||||||
"targetHostname": "mjolnir-intern.hamburg.ccc.de"
|
"targetHostname": "mjolnir.hosts.hamburg.ccc.de"
|
||||||
},
|
},
|
||||||
"woodpecker": {
|
"woodpecker": {
|
||||||
"targetHostname": "woodpecker-intern.hamburg.ccc.de"
|
"targetHostname": "woodpecker-intern.hamburg.ccc.de"
|
||||||
},
|
},
|
||||||
"penpot": {
|
"penpot": {
|
||||||
"targetHostname": "penpot-intern.hamburg.ccc.de"
|
"targetHostname": "penpot-intern.hamburg.ccc.de"
|
||||||
},
|
|
||||||
"hydra": {
|
|
||||||
"targetHostname": "hydra-intern.hamburg.ccc.de"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
20
flake.lock
generated
20
flake.lock
generated
|
|
@ -19,27 +19,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761173472,
|
"lastModified": 1768621446,
|
||||||
"narHash": "sha256-m9W0dYXflzeGgKNravKJvTMR4Qqa2MVD11AwlGMufeE=",
|
"narHash": "sha256-6YwHV1cjv6arXdF/PQc365h1j+Qje3Pydk501Rm4Q+4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c8aa8cc00a5cb57fada0851a038d35c08a36a2bb",
|
"rev": "72ac591e737060deab2b86d6952babd1f896d7c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761349956,
|
"lastModified": 1768661221,
|
||||||
"narHash": "sha256-tH3wHnOJms+U4k/rK2Nn1RfBrhffX92jLP/2VndSn0w=",
|
"narHash": "sha256-MJwOjrIISfOpdI9x4C+5WFQXvHtOuj5mqLZ4TMEtk1M=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "02f2cb8e0feb4596d20cc52fda73ccee960e3538",
|
"rev": "3327b113f2ef698d380df83fbccefad7e83d7769",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -64,11 +64,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760998189,
|
"lastModified": 1768709255,
|
||||||
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
|
"narHash": "sha256-aigyBfxI20FRtqajVMYXHtj5gHXENY2gLAXEhfJ8/WM=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
|
"rev": "5e8fae80726b66e9fec023d21cd3b3e638597aa9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
28
flake.nix
28
flake.nix
|
|
@ -5,7 +5,7 @@
|
||||||
# Use the NixOS small channels for nixpkgs.
|
# Use the NixOS small channels for nixpkgs.
|
||||||
# https://nixos.org/manual/nixos/stable/#sec-upgrading
|
# https://nixos.org/manual/nixos/stable/#sec-upgrading
|
||||||
# https://github.com/NixOS/nixpkgs
|
# https://github.com/NixOS/nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
|
||||||
# # Add nixos-generators as an input.
|
# # Add nixos-generators as an input.
|
||||||
|
|
@ -147,7 +147,6 @@
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit authorizedKeysRepo;
|
inherit authorizedKeysRepo;
|
||||||
inherit pkgs-unstable;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -201,16 +200,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
status = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system specialArgs;
|
|
||||||
modules = [
|
|
||||||
self.nixosModules.common
|
|
||||||
self.nixosModules.proxmox-vm
|
|
||||||
sops-nix.nixosModules.sops
|
|
||||||
./config/hosts/status
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
penpot = nixpkgs.lib.nixosSystem {
|
penpot = nixpkgs.lib.nixosSystem {
|
||||||
inherit system specialArgs;
|
inherit system specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -221,16 +210,6 @@
|
||||||
./config/hosts/penpot
|
./config/hosts/penpot
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hydra = nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system specialArgs;
|
|
||||||
modules = [
|
|
||||||
self.nixosModules.common
|
|
||||||
self.nixosModules.proxmox-vm
|
|
||||||
self.nixosModules.prometheus-exporter
|
|
||||||
./config/hosts/hydra
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# packages.x86_64-linux = {
|
# packages.x86_64-linux = {
|
||||||
|
|
@ -259,10 +238,5 @@
|
||||||
# };
|
# };
|
||||||
|
|
||||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
|
||||||
|
|
||||||
hydraJobs = {
|
|
||||||
inherit (self) packages;
|
|
||||||
nixosConfigurations = builtins.mapAttrs (name: value: value.config.system.build.toplevel) self.nixosConfigurations;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue