Compare commits
	
		
			6 Commits
		
	
	
		
			misc-gitea
			...
			deploy-doo
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7e7b576540 | |||
| 
						
						
							
						
						c12a47cee0
	
				 | 
					
					
						|||
| 
						
						
							
						
						b9ef27565f
	
				 | 
					
					
						|||
| 
						
						
							
						
						f5c99b58c8
	
				 | 
					
					
						|||
| c780f7954c | |||
| 2ff69dfec6 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,4 @@
 | 
				
			|||||||
result*
 | 
					result*
 | 
				
			||||||
/configuration.nix
 | 
					/configuration.nix
 | 
				
			||||||
/.direnv/
 | 
					/.direnv/
 | 
				
			||||||
 | 
					*.qcow2
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								base.nix
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								base.nix
									
									
									
									
									
								
							@@ -139,4 +139,12 @@
 | 
				
			|||||||
    acceptTerms = true;
 | 
					    acceptTerms = true;
 | 
				
			||||||
    defaults.email = "drift@pvv.ntnu.no";
 | 
					    defaults.email = "drift@pvv.ntnu.no";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					  # Let's not spam LetsEncrypt in `nixos-rebuild build-vm` mode:
 | 
				
			||||||
 | 
					  virtualisation.vmVariant = {
 | 
				
			||||||
 | 
					    security.acme.defaults.server = "https://127.0.0.1";
 | 
				
			||||||
 | 
					    security.acme.preliminarySelfsigned = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    users.users.root.initialPassword = "root";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										28
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -194,11 +194,11 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1693136143,
 | 
					        "lastModified": 1723850344,
 | 
				
			||||||
        "narHash": "sha256-amHprjftc3y/bg8yf4hITCLa+ez5HIi0yGfR7TU6UIc=",
 | 
					        "narHash": "sha256-aT37O9l9eclWEnqxASVNBL1dKwDHZUOqdbA4VO9DJvw=",
 | 
				
			||||||
        "ref": "refs/heads/main",
 | 
					        "ref": "refs/heads/main",
 | 
				
			||||||
        "rev": "a32894b305f042d561500f5799226afd1faf5abb",
 | 
					        "rev": "38b66677ab8c01aee10cd59e745af9ce3ea88092",
 | 
				
			||||||
        "revCount": 9,
 | 
					        "revCount": 19,
 | 
				
			||||||
        "type": "git",
 | 
					        "type": "git",
 | 
				
			||||||
        "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git"
 | 
					        "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -207,6 +207,25 @@
 | 
				
			|||||||
        "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git"
 | 
					        "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "pvv-doorbell-bot": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "dirtyRev": "cec320746bbf5b5bc6618a145c1a997ebd0b5196-dirty",
 | 
				
			||||||
 | 
					        "dirtyShortRev": "cec3207-dirty",
 | 
				
			||||||
 | 
					        "lastModified": 1724515328,
 | 
				
			||||||
 | 
					        "narHash": "sha256-Vj3ZJkCaLq+6d1LJtl7Hg5f7XV4NDPeNC1xEyu9QkOI=",
 | 
				
			||||||
 | 
					        "type": "git",
 | 
				
			||||||
 | 
					        "url": "file:///home/felixalb/doorbell-matrix-bot"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "type": "git",
 | 
				
			||||||
 | 
					        "url": "file:///home/felixalb/doorbell-matrix-bot"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "pvv-nettsiden": {
 | 
					    "pvv-nettsiden": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
@@ -237,6 +256,7 @@
 | 
				
			|||||||
        "nixpkgs": "nixpkgs",
 | 
					        "nixpkgs": "nixpkgs",
 | 
				
			||||||
        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
					        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
				
			||||||
        "pvv-calendar-bot": "pvv-calendar-bot",
 | 
					        "pvv-calendar-bot": "pvv-calendar-bot",
 | 
				
			||||||
 | 
					        "pvv-doorbell-bot": "pvv-doorbell-bot",
 | 
				
			||||||
        "pvv-nettsiden": "pvv-nettsiden",
 | 
					        "pvv-nettsiden": "pvv-nettsiden",
 | 
				
			||||||
        "sops-nix": "sops-nix"
 | 
					        "sops-nix": "sops-nix"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,10 @@
 | 
				
			|||||||
    pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git";
 | 
					    pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git";
 | 
				
			||||||
    pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs";
 | 
					    pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pvv-doorbell-bot.url = "git+https://git.pvv.ntnu.no/Projects/doorbell-matrix-bot.git";
 | 
				
			||||||
 | 
					    #pvv-doorbell-bot.url = "git+file:///home/felixalb/doorbell-matrix-bot";
 | 
				
			||||||
 | 
					    pvv-doorbell-bot.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    matrix-next.url = "github:dali99/nixos-matrix-modules/v0.6.0";
 | 
					    matrix-next.url = "github:dali99/nixos-matrix-modules/v0.6.0";
 | 
				
			||||||
    matrix-next.inputs.nixpkgs.follows = "nixpkgs";
 | 
					    matrix-next.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,9 +85,11 @@
 | 
				
			|||||||
        modules = [
 | 
					        modules = [
 | 
				
			||||||
          inputs.matrix-next.nixosModules.default
 | 
					          inputs.matrix-next.nixosModules.default
 | 
				
			||||||
          inputs.pvv-calendar-bot.nixosModules.default
 | 
					          inputs.pvv-calendar-bot.nixosModules.default
 | 
				
			||||||
 | 
					          inputs.pvv-doorbell-bot.nixosModules.default
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        overlays = [
 | 
					        overlays = [
 | 
				
			||||||
          inputs.pvv-calendar-bot.overlays.x86_64-linux.default
 | 
					          inputs.pvv-calendar-bot.overlays.x86_64-linux.default
 | 
				
			||||||
 | 
					          inputs.pvv-doorbell-bot.overlays.x86_64-linux.default
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      bekkalokk = stableNixosConfig "bekkalokk" {
 | 
					      bekkalokk = stableNixosConfig "bekkalokk" {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,11 +9,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    ./acmeCert.nix
 | 
					    ./acmeCert.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ./services/calendar-bot.nix
 | 
				
			||||||
 | 
					    ./services/doorbell-bot.nix
 | 
				
			||||||
 | 
					    ./services/mysql.nix
 | 
				
			||||||
    ./services/mysql.nix
 | 
					    ./services/mysql.nix
 | 
				
			||||||
    ./services/postgres.nix
 | 
					    ./services/postgres.nix
 | 
				
			||||||
    ./services/mysql.nix
 | 
					 | 
				
			||||||
    # TODO: fix the calendar bot
 | 
					 | 
				
			||||||
    # ./services/calendar-bot.nix
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ./services/matrix
 | 
					    ./services/matrix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,11 +2,19 @@
 | 
				
			|||||||
let
 | 
					let
 | 
				
			||||||
  cfg = config.services.pvv-calendar-bot;
 | 
					  cfg = config.services.pvv-calendar-bot;
 | 
				
			||||||
in {
 | 
					in {
 | 
				
			||||||
  sops.secrets."calendar-bot/matrix_token" = {
 | 
					  sops.secrets = {
 | 
				
			||||||
    sopsFile = ../../../secrets/bicep/bicep.yaml;
 | 
					    "calendar-bot/matrix_token" = {
 | 
				
			||||||
    key = "calendar-bot/matrix_token";
 | 
					      sopsFile = ../../../secrets/bicep/bicep.yaml;
 | 
				
			||||||
    owner = cfg.user;
 | 
					      key = "calendar-bot/matrix_token";
 | 
				
			||||||
    group = cfg.group;
 | 
					      owner = cfg.user;
 | 
				
			||||||
 | 
					      group = cfg.group;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    "calendar-bot/mysql_password" = {
 | 
				
			||||||
 | 
					      sopsFile = ../../../secrets/bicep/bicep.yaml;
 | 
				
			||||||
 | 
					      key = "calendar-bot/mysql_password";
 | 
				
			||||||
 | 
					      owner = cfg.user;
 | 
				
			||||||
 | 
					      group = cfg.group;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.pvv-calendar-bot = {
 | 
					  services.pvv-calendar-bot = {
 | 
				
			||||||
@@ -18,6 +26,11 @@ in {
 | 
				
			|||||||
        user = "@bot_calendar:pvv.ntnu.no";
 | 
					        user = "@bot_calendar:pvv.ntnu.no";
 | 
				
			||||||
        channel = "!gkNLUIhYVpEyLatcRz:pvv.ntnu.no";
 | 
					        channel = "!gkNLUIhYVpEyLatcRz:pvv.ntnu.no";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					      database = {
 | 
				
			||||||
 | 
					        host = "mysql.pvv.ntnu.no";
 | 
				
			||||||
 | 
					        user = "calendar-bot";
 | 
				
			||||||
 | 
					        passwordFile = config.sops.secrets."calendar-bot/mysql_password".path;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
      secretsFile = config.sops.secrets."calendar-bot/matrix_token".path;
 | 
					      secretsFile = config.sops.secrets."calendar-bot/matrix_token".path;
 | 
				
			||||||
      onCalendar = "*-*-* 09:00:00";
 | 
					      onCalendar = "*-*-* 09:00:00";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								hosts/bicep/services/doorbell-bot.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								hosts/bicep/services/doorbell-bot.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					{ config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  cfg = config.services.pvv-doorbell-bot;
 | 
				
			||||||
 | 
					in {
 | 
				
			||||||
 | 
					  sops.secrets."doorbell-bot/config-json" = {
 | 
				
			||||||
 | 
					    owner = cfg.user;
 | 
				
			||||||
 | 
					    group = cfg.group;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.pvv-doorbell-bot = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      configFile = config.sops.secrets."doorbell-bot/config-json".path;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										4
									
								
								justfile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								justfile
									
									
									
									
									
								
							@@ -10,6 +10,10 @@ check:
 | 
				
			|||||||
build-machine machine=`just _a_machine`:
 | 
					build-machine machine=`just _a_machine`:
 | 
				
			||||||
  {{nom}} build .#nixosConfigurations.{{ machine }}.config.system.build.toplevel
 | 
					  {{nom}} build .#nixosConfigurations.{{ machine }}.config.system.build.toplevel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run-vm machine=`just _a_machine`:
 | 
				
			||||||
 | 
					  nixos-rebuild build-vm --flake .#{{ machine }}
 | 
				
			||||||
 | 
					  QEMU_NET_OPTS="hostfwd=tcp::8080-:80,hostfwd=tcp::8081-:443,hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@update-inputs:
 | 
					@update-inputs:
 | 
				
			||||||
  nix eval .#inputs --apply builtins.attrNames --json \
 | 
					  nix eval .#inputs --apply builtins.attrNames --json \
 | 
				
			||||||
    | jq '.[]' -r \
 | 
					    | jq '.[]' -r \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,8 @@
 | 
				
			|||||||
calendar-bot:
 | 
					calendar-bot:
 | 
				
			||||||
    matrix_token: ENC[AES256_GCM,data:zJv9sw6pEzb9hxKT682wsD87HC9iejbps2wl2Z5QW1XZUSBHdcqyg1pxd+jFKTeKGQ==,iv:zDbvF1H98NsECjCtGXS+Y9HIhXowzz9HF9mltqnArog=,tag:/ftcOSQ13ElkVJBxYIMUGQ==,type:str]
 | 
					    matrix_token: ENC[AES256_GCM,data:zJv9sw6pEzb9hxKT682wsD87HC9iejbps2wl2Z5QW1XZUSBHdcqyg1pxd+jFKTeKGQ==,iv:zDbvF1H98NsECjCtGXS+Y9HIhXowzz9HF9mltqnArog=,tag:/ftcOSQ13ElkVJBxYIMUGQ==,type:str]
 | 
				
			||||||
 | 
					    mysql_password: ENC[AES256_GCM,data:Gqag8yOgPH3ntoT5TmaqJWv1j+si2qIyz5Ryfw5E2A==,iv:kQDcxnPfwJQcFovI4f87UDt18F8ah3z5xeY86KmdCyY=,tag:A1sCSNXJziAmtUWohqwJgg==,type:str]
 | 
				
			||||||
 | 
					doorbell-bot:
 | 
				
			||||||
 | 
					    config-json: ENC[AES256_GCM,data:QNFHiUqaBWfW9ZRAkZo9M18AMbn/oSxvEMq1N1NsDcBjxJMo/OE36fz1Uf4TagGccCDkWy56wSVSFZm8KZnXVaQ/X0EgJkUK1JZyR7i5yiEW8ByLaVzThMWBwxQoj2cz48z53krzfddyl250rLFQRa7Fco74yTFfBWruf/1clN5O/iHFspeW7uJtQh/oyFIVb87YisjKU2+jpU3IeDNsO6VFWOoOJd+ACmfwsAY0wOz5lzBEIrdU2k/PMgSVzECMV4S5ipwIUmVUpGzbvgAWZQGtsUeVevAbvZ1QgyH6bhDIUheeUrOKN0cbgEMc/xIi7yZ+VWHOMBqb8LkyBvunG2TjK31B1HAGL/krBS+gvvQnW0ZN,iv:K0djdxNOGaHBkE4vyh/22fruAHVsZYVT68cdVoMmogw=,tag:3fjjzD3bghvGy3aZ7/Ienw==,type:str]
 | 
				
			||||||
mysql:
 | 
					mysql:
 | 
				
			||||||
    password: ENC[AES256_GCM,data:KqEe0TVdeMIzPKsmFg9x0X9xWijnOk306ycyXTm2Tpqo/O0F,iv:Y+hlQ8n1ZIP9ncXBzd2kCSs/DWVTWhiEluFVwZFKRCA=,tag:xlaUk0Wftk62LpYE5pKNQw==,type:str]
 | 
					    password: ENC[AES256_GCM,data:KqEe0TVdeMIzPKsmFg9x0X9xWijnOk306ycyXTm2Tpqo/O0F,iv:Y+hlQ8n1ZIP9ncXBzd2kCSs/DWVTWhiEluFVwZFKRCA=,tag:xlaUk0Wftk62LpYE5pKNQw==,type:str]
 | 
				
			||||||
sops:
 | 
					sops:
 | 
				
			||||||
@@ -62,8 +65,8 @@ sops:
 | 
				
			|||||||
            cTh5bnJ3WW90aXRCSUp6NHFYeU1tZ0kK4afdtJwGNu6wLRI0fuu+mBVeqVeB0rgX
 | 
					            cTh5bnJ3WW90aXRCSUp6NHFYeU1tZ0kK4afdtJwGNu6wLRI0fuu+mBVeqVeB0rgX
 | 
				
			||||||
            0q5hwyzjiRnHnyjF38CmcGgydSfDRmF6P+WIMbCwXC6LwfRhAmBGPg==
 | 
					            0q5hwyzjiRnHnyjF38CmcGgydSfDRmF6P+WIMbCwXC6LwfRhAmBGPg==
 | 
				
			||||||
            -----END AGE ENCRYPTED FILE-----
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
    lastmodified: "2023-09-05T23:28:56Z"
 | 
					    lastmodified: "2024-08-24T16:49:06Z"
 | 
				
			||||||
    mac: ENC[AES256_GCM,data:pCWTkmCQgBOqhejK2sCLQ3H8bRXmXlToQxYmOG0IWDo2eGiZOLuIkZ1/1grYgfxAGiD4ysJod0nJuvo+eAsMeYAy6QJVtrOqO2d9V2NEdzLckXyYvwyJyZoFbNC5EW9471V0m4jLRSh5821ckNo/wtWFR11wfO15tI3MqtD1rtA=,iv:QDnckPl0LegaH0b7V4WAtmVXaL4LN+k3uKHQI2dkW7E=,tag:mScUQBR0ZHl1pi/YztrvFg==,type:str]
 | 
					    mac: ENC[AES256_GCM,data:A5pYM3yNt5GdlvpdDbRXxQwUccC/dr5JZwPBMjjx4ZRaJMbewpmGL/ySITnsCEuxOG1cagc1S28ti8k3z0bR4rfFlt/fZ93K8uwI9rT6KW5pSEAa1vPEz8Jq+7asfJIBMCpxFxN704JDSeOnBMaSHwQdICdmG4jfN/F+YbXTPIA=,iv:Y6gloFlYtnJZ3kzcUtZZZmJQ8KowQ29pwZaqo/ePrm8=,tag:r8XFLU5PGMr3U3K0N0cmlQ==,type:str]
 | 
				
			||||||
    pgp:
 | 
					    pgp:
 | 
				
			||||||
        - created_at: "2024-08-04T00:03:40Z"
 | 
					        - created_at: "2024-08-04T00:03:40Z"
 | 
				
			||||||
          enc: |-
 | 
					          enc: |-
 | 
				
			||||||
@@ -86,4 +89,4 @@ sops:
 | 
				
			|||||||
            -----END PGP MESSAGE-----
 | 
					            -----END PGP MESSAGE-----
 | 
				
			||||||
          fp: F7D37890228A907440E1FD4846B9228E814A2AAC
 | 
					          fp: F7D37890228A907440E1FD4846B9228E814A2AAC
 | 
				
			||||||
    unencrypted_suffix: _unencrypted
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
    version: 3.7.3
 | 
					    version: 3.9.0
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user