summaryrefslogtreecommitdiff
path: root/hosts/conduwuit
diff options
context:
space:
mode:
authorGrisha Shipunov2025-02-05 18:11:49 +0000
committerGrisha Shipunov2025-02-06 00:41:52 +0000
commit877e806b3a3a6ea70277087ce7f660a4e9feaf83 (patch)
tree71cede76ab9b3670f7e16287ddd6467604c4938b /hosts/conduwuit
parentc1352fdd88f1f3932f117fbf765b63c142376867 (diff)
add conduwuit matrix server
Diffstat (limited to 'hosts/conduwuit')
-rw-r--r--hosts/conduwuit/conduwuit.nix24
-rw-r--r--hosts/conduwuit/default.nix77
-rw-r--r--hosts/conduwuit/secrets.yaml42
3 files changed, 143 insertions, 0 deletions
diff --git a/hosts/conduwuit/conduwuit.nix b/hosts/conduwuit/conduwuit.nix
new file mode 100644
index 0000000..6baafa6
--- /dev/null
+++ b/hosts/conduwuit/conduwuit.nix
@@ -0,0 +1,24 @@
+{ pkgs, ... }:
+{
+ services.matrix-conduit = {
+ enable = true;
+ package = pkgs.conduwuit;
+ settings = {
+ global = {
+ database_backend = "rocksdb";
+ new_user_displayname_suffix = "";
+ port = 6167;
+ server_name = "oxapentane.com";
+ address = "0.0.0.0";
+ trusted_servers = [
+ "matrix.org"
+ "matrix.c3d2.de"
+ ];
+ well_known = {
+ client = "https://oxapentane.com";
+ server = "oxapentane.com:443";
+ };
+ };
+ };
+ };
+}
diff --git a/hosts/conduwuit/default.nix b/hosts/conduwuit/default.nix
new file mode 100644
index 0000000..59beed8
--- /dev/null
+++ b/hosts/conduwuit/default.nix
@@ -0,0 +1,77 @@
+{ config, lib, ... }:
+let
+ mac = "02:00:00:00:00:06";
+in
+{
+ imports = [
+ ./conduwuit.nix
+ ];
+ sops.defaultSopsFile = ./secrets.yaml;
+ sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+
+ sops.secrets = {
+ "wg/0xa-proxy" = {
+ owner = config.users.users.systemd-network.name;
+ };
+ };
+
+ microvm = {
+ hypervisor = "qemu";
+ mem = 3 * 1024;
+ vcpu = 2;
+ interfaces = [
+ {
+ type = "tap";
+ id = "uvm-conduwuit";
+ mac = mac;
+ }
+ ];
+ shares =
+ [
+ {
+ source = "/nix/store";
+ mountPoint = "/nix/.ro-store";
+ tag = "store";
+ proto = "virtiofs";
+ socket = "store.socket";
+ }
+ ]
+ ++ map
+ (dir: {
+ source = dir;
+ mountPoint = "/${dir}";
+ tag = dir;
+ proto = "virtiofs";
+ socket = "${dir}.socket";
+ })
+ [
+ "etc"
+ "var"
+ "home"
+ ];
+ };
+
+ networking.useNetworkd = true;
+ networking.firewall.enable = lib.mkForce false; # firewalling done by the host
+
+ systemd.network = {
+ enable = true;
+ networks."11-host" = {
+ matchConfig.MACAddress = mac;
+ networkConfig = {
+ Address = "10.99.99.16/24";
+ DHCP = "no";
+ };
+ routes = [
+ {
+ Gateway = "10.99.99.1";
+ Destination = "0.0.0.0/0";
+ Metric = 1024;
+ }
+ ];
+ };
+ };
+
+ networking.hostName = "conduwuit";
+ system.stateVersion = "24.11";
+}
diff --git a/hosts/conduwuit/secrets.yaml b/hosts/conduwuit/secrets.yaml
new file mode 100644
index 0000000..bf1f154
--- /dev/null
+++ b/hosts/conduwuit/secrets.yaml
@@ -0,0 +1,42 @@
+wg:
+ 0xa-proxy: ENC[AES256_GCM,data:e09UIAn928uOf6asUaFSg0VDoeShWGyd1c5gF0O0nwVEk/1ldVvaIyWMcwk=,iv:FS+LAI0S5XOOQO4WVpNfEUIxYHGY1YT6mITh8FpSiZU=,tag:1eM6wN98D3Bz0XlikCu5Gg==,type:str]
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1vd78txz0chk8sum3tceamg7u6enzcclh3vnpjswyrmarvmdmp46qdx7mqt
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1akxzWFkzSWJYYk4raFlI
+ ZStVb1RaV1JUZFNZNlFvQUFmeWwrdDBjSFhrCmpuMmFrUWpXNkdwRThJamcrVGRD
+ NU41VkRwWEJ3TnhYMmt2UFZMemZDZ28KLS0tIDl6bzJXNkd2SjVldDltNDZWS1ZX
+ ZU9oZVVSQkwzWHE0ODNZbmtuNnRuQjAKP2zLzUDCe2aZKVzLjPloqirNyac7UcwX
+ q/hHXH/v0HPjCbjfbleEqN9g0r4RiaHVscpl/viaoIAnAlQcrtj6UQ==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2025-02-05T20:41:18Z"
+ mac: ENC[AES256_GCM,data:LPaVDxkZF3hlDIemauZpGngWspGzLINuhI4UIdP1+vP5gX0EBVhpZWty9wCSfJEeuU1ycKPJFAok0A3hgLbXQdjlvTxW/ba5g3hvVHEoyCXPrOPZiEK2EsFZRaM99tMOijBODVHkGhRY2O0sms0OLs+oQg6A+9fe14+dZxoUjWw=,iv:spAY8/Ghs8XhbNgKB8NQILC/qC8tBPiInnOOzfnuxZI=,tag:cLAmIvb4p0Sz2IIEk98/rg==,type:str]
+ pgp:
+ - created_at: "2025-02-05T20:40:53Z"
+ enc: |-
+ -----BEGIN PGP MESSAGE-----
+
+ hQIMA7zUOKwzpAE7AQ/7BZQnlte11FqJkoLZWL8zZzou73zSLspXn1QJNYs0aQck
+ PhFbsuDvmyGWucvcyHTSuTUpcKMchGeClB5ebCLRzmc8FpFF149XTk+PtHx3P+W9
+ CfuokL2CX6oP6xGg4+yVOPt3fY8KzMXUcCJt7Jm9u18M9WGxAHIdfWlDCAnTC1b2
+ LnaOLeq9Azaz6QHn4DxGnNUI26HYa+fL7BzprqaSNlSoMm6A3kYttjw64oGE4Xom
+ qSgXariWdVxzjHevabj0rdMkSWM06q3B50Ug0oaaS1GChPiFDxM0ihngbKRgysfW
+ uws3FyUwWgDD2/jA4ocKlNkNOfynf252rnnDdn5AjzMsUXsPcTsJZbOLG8KCymmf
+ c8abr6fEi6TBbTAJaf2xEIL0mJHkiokYVh5gRCYSue9lGZm8n6yvIDxssJuwjBE5
+ KktSbfWBInskoIHpmqcOAzJT11sxLv5Em3leU69rtuwv8SGo+4pbifvzF6rdjx8j
+ /qLElqKJUnugyLuXnFDJeIOYZkEmUUAOflVT/yCsVUgUvb6hjwZlegDdyQ3Ph7Ic
+ PibWs01ShaC4KKrq6Yk0n1c64SP+CsiCDGuVxLMrlMbRThyJtzWgS/3h9kH6rrCo
+ 4x7q6uM1B9+L3wn+uuObtxKF4feYv3bNvPCagOl8IIXk1Af88B1KPyGTnamrAcbS
+ XgFserwnAQbEXt0hE7CQWeo1W8rw3EUptBnuVqz5Um/yaDT+flgwFx6BpNHIGz+l
+ Od8iOIC/6UCGGS+6nNnz0bprvbuc7Ltfifv16Tpwb8Gsvse3lX8okwPVBNOQUrs=
+ =/7Ff
+ -----END PGP MESSAGE-----
+ fp: DD0998E6CDF294537FC604F991FA5E5BF9AA901C
+ unencrypted_suffix: _unencrypted
+ version: 3.9.4