Compare commits

..

4 Commits

Author SHA1 Message Date
8080d174ae chore: update flake.lock 2025-08-15 16:52:24 +08:00
0d39e2869b feat(wine): disable by default 2025-08-15 16:51:48 +08:00
953952f345 feat: disable minecraft server 😭 2025-08-15 16:51:23 +08:00
1f60272f14 feat: matrix-tuwunel 😋 2025-08-15 16:50:49 +08:00
7 changed files with 177 additions and 109 deletions

View File

@@ -4,7 +4,7 @@
enable = true;
host = "127.0.0.1";
port = 8089;
package = pkgs.stable.open-webui;
package = pkgs.open-webui;
};
services.caddy.virtualHosts."ai.imxyy.top" = {
extraConfig = ''

View File

@@ -1,45 +1,68 @@
{
services.matrix-synapse = {
enable = true;
settings = {
server_name = "matrix.imxyy.top";
public_baseurl = "https://matrix.imxyy.top";
listeners = [
config,
secrets,
...
}:
{
port = 8094;
bind_addresses = [ "127.0.0.1" ];
type = "http";
tls = false;
x_forwarded = true;
resources = [
{
names = [
"client"
"federation"
];
compress = true;
}
];
}
];
turn_uris = [ "turns:vkvm.imxyy.top:5349" ];
turn_shared_secret = "ac779a48c03bb451839569d295a29aa6ab8c264277bec2df9c9c7f5e22936288";
turn_user_lifetime = "1h";
database_type = "psycopg2";
database_args.database = "matrix-synapse";
sops.secrets.tuwunel-reg-token = {
sopsFile = secrets.tuwunel-reg-token;
format = "binary";
owner = config.services.matrix-tuwunel.user;
group = config.services.matrix-tuwunel.group;
};
extraConfigFiles = [
"/var/lib/matrix-synapse/secret"
];
services.matrix-tuwunel = {
enable = true;
settings.global = {
address = [ "127.0.0.1" ];
port = [ 8094 ];
server_name = "imxyy.top";
allow_registration = true;
registration_token_file = config.sops.secrets.tuwunel-reg-token.path;
};
};
services.caddy.virtualHosts."imxyy.top" = {
extraConfig = ''
handle /.well-known/matrix/client {
header Content-Type application/json
header "Access-Control-Allow-Origin" "*"
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
}
'';
};
services.caddy.virtualHosts."imxyy.top:8448" = {
extraConfig = ''
reverse_proxy :8094
handle /.well-known/matrix/client {
header Content-Type application/json
header "Access-Control-Allow-Origin" "*"
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
}
'';
};
services.caddy.virtualHosts."matrix.imxyy.top" = {
extraConfig = ''
reverse_proxy :8094
handle_path /_matrix {
reverse_proxy :8094
handle /.well-known/matrix/client {
header Content-Type application/json
header "Access-Control-Allow-Origin" "*"
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
}
handle_path /_synapse/client {
'';
};
services.caddy.virtualHosts."matrix.imxyy.top:8448" = {
extraConfig = ''
reverse_proxy :8094
handle /.well-known/matrix/client {
header Content-Type application/json
header "Access-Control-Allow-Origin" "*"
respond `{"m.homeserver": {"base_url": "https://matrix.imxyy.top"}}` 200
}
'';
};

View File

@@ -1,5 +1,6 @@
{ lib, pkgs, ... }:
{
/*
systemd.services."fabric1.20.6" = {
description = "fabric 1.20.6 minecraft server";
wantedBy = [ "multi-user.target" ];
@@ -11,6 +12,7 @@
RestartSec = 120;
};
};
*/
my.persist = {
nixosDirs = [
"/opt/minecraft"

View File

@@ -377,6 +377,20 @@
customDomains = [ "sy.imxyy.top" ];
}
{
name = "matrix-root-http";
type = "http";
localIP = "127.0.0.1";
localPort = 80;
customDomains = [ "imxyy.top" ];
}
{
name = "matrix-root-https";
type = "https";
localIP = "127.0.0.1";
localPort = 443;
customDomains = [ "imxyy.top" ];
}
{
name = "matrix-http";
type = "http";
@@ -391,6 +405,13 @@
localPort = 443;
customDomains = [ "matrix.imxyy.top" ];
}
{
name = "matrix-fed";
type = "tcp";
localIP = "127.0.0.1";
localPort = 8448;
remotePort = 8448;
}
{
name = "immich-http";

126
flake.lock generated
View File

@@ -127,11 +127,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1754907869,
"narHash": "sha256-tzshAAjt0xDjCc/aOgii6PSqePIc2rWYSXF8VnqEhIg=",
"lastModified": 1755169038,
"narHash": "sha256-lIAE8ou7ukvoOE0nZ2lNcl/n8mnj6m2cGsx9U7Xhew4=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "b5f83e0d7bce67af178f6aaef95853fedf4c00a0",
"rev": "5efc0389eaca14046e1ee2068bcba6fe64cf6e2e",
"type": "github"
},
"original": {
@@ -191,11 +191,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1754980813,
"narHash": "sha256-Wr9ei2V4rfr3HR5eJUA7pjMIrHH5o4DtWazQC5UwxHA=",
"lastModified": 1755240331,
"narHash": "sha256-wEtw76+R/TOHEIjYOnxADC91G6s422HGruAngbjzsDw=",
"owner": "nix-community",
"repo": "fenix",
"rev": "a1ce805b08279ee4e697b47aa3aa28fe2b335de6",
"rev": "3f076d4502001c64877099093318b2dbd8b062a1",
"type": "github"
},
"original": {
@@ -520,11 +520,11 @@
]
},
"locked": {
"lastModified": 1754886238,
"narHash": "sha256-LTQomWOwG70lZR+78ZYSZ9sYELWNq3HJ7/tdHzfif/s=",
"lastModified": 1755121891,
"narHash": "sha256-UtYkukiGnPRJ5rpd4W/wFVrLMh8fqtNkqHTPgHEtrqU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0d492b89d1993579e63b9dbdaed17fd7824834da",
"rev": "279ca5addcdcfa31ac852b3ecb39fc372684f426",
"type": "github"
},
"original": {
@@ -540,11 +540,11 @@
]
},
"locked": {
"lastModified": 1754974548,
"narHash": "sha256-XMjUjKD/QRPcqUnmSDczSYdw46SilnG0+wkho654DFM=",
"lastModified": 1755229570,
"narHash": "sha256-soZegto0xXzG2zYlu/zjknDHv0Z7tRS5EQs+Z/VRTBg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "27a26be51ff0162a8f67660239f9407dba68d7c5",
"rev": "11626a4383b458f8dc5ea3237eaa04e8ab1912f3",
"type": "github"
},
"original": {
@@ -615,11 +615,11 @@
]
},
"locked": {
"lastModified": 1754639028,
"narHash": "sha256-w1+XzPBAZPbeGLMAgAlOjIquswo6Q42PMep9KSrRzOA=",
"lastModified": 1755151620,
"narHash": "sha256-fVMalQZ+tRXR8oue2SdWu4CdlsS2NII+++rI40XQ8rU=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "d49809278138d17be77ab0ef5506b26dc477fa62",
"rev": "16e12d22754d97064867006acae6e16da7a142a6",
"type": "github"
},
"original": {
@@ -684,11 +684,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1754901323,
"narHash": "sha256-G4/LiwFvBAKy6E0GqcegyCjmaJNjdl+9rFRxrOOjH30=",
"lastModified": 1755104498,
"narHash": "sha256-kMosXLeEB43OtUKvhvzikKfFLpv7H7JzObCQO0j4X34=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "ed0fcb158e2ecf597a95dcc51facaf68557011a0",
"rev": "22a24ab05a9f4b3a94fba0aa0d8d850e6269241a",
"type": "github"
},
"original": {
@@ -717,11 +717,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1754894368,
"narHash": "sha256-I7uSAOosX79BLVTWRHWHvT9z3Lv8rDYY3RogV/0Gne0=",
"lastModified": 1755074352,
"narHash": "sha256-I+kpboTzfMwRVK76OoTmHStrGuzJPcmvZKxmlmL9q+A=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "0044578681cee50fd7ad49fcb8d1e2ea53d85fe4",
"rev": "af9ce533100b49e8bc879b557ab830f5d3a18805",
"type": "github"
},
"original": {
@@ -820,11 +820,11 @@
]
},
"locked": {
"lastModified": 1754956416,
"narHash": "sha256-qNI5QusItaVf50ErZv6y/qIp8oujTSbMTz8BleZ2Qew=",
"lastModified": 1755171343,
"narHash": "sha256-h6bbfhqWcHlx9tcyYa7dhaEiNpusLCcFYkJ/AnltLW8=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "9b618a36ef6e51a689ea941b53e312ddc4c835a9",
"rev": "e37cfef071466a9ca649f6899aff05226ce17e9e",
"type": "github"
},
"original": {
@@ -835,11 +835,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"lastModified": 1755027561,
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
"type": "github"
},
"original": {
@@ -863,11 +863,11 @@
},
"nixpkgs-master": {
"locked": {
"lastModified": 1754985284,
"narHash": "sha256-mMa+AWPCre9kgXOXLqFqBaEF4/d+zDPvF7tiYYXzUco=",
"lastModified": 1755243717,
"narHash": "sha256-x2YnDp3CsXwrRMaUHtNacD15uG7I9+IRzodafD3DjHc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "18ee56ea9763ff1442fb9e3833a0a9cbdc47bcbd",
"rev": "b4516d45cfdf4b37c1643eafcefe8620896a8aeb",
"type": "github"
},
"original": {
@@ -879,11 +879,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1754767907,
"narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=",
"lastModified": 1754937576,
"narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c5f08b62ed75415439d48152c2a784e36909b1bc",
"rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896",
"type": "github"
},
"original": {
@@ -895,11 +895,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1754983092,
"narHash": "sha256-+f19hCi22vRyjynJDfiN1qej7LsYPABQf+svxme1r2I=",
"lastModified": 1755243528,
"narHash": "sha256-YGBq/8D3gWuwLmDZb63h4a21GOMquBH8JcZsrJFL43Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "aa68d16c20fa0bc9f43fad423af5c40b990fdf6d",
"rev": "c3a6f30dea7d1e58267488a687db1a6f07ff6063",
"type": "github"
},
"original": {
@@ -911,11 +911,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1754975461,
"narHash": "sha256-F/EzILKOWZ4UvCbj655MLAf2EfjbhFbz1iKrxaJxmuk=",
"lastModified": 1755166611,
"narHash": "sha256-sk8pK8kWz4IE4ErAjKE1d8tMChY6VQR32U4yS68FIog=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cca779286a4dfd33a04d11954829dfeca0904b79",
"rev": "1a341e3c908f4a3105e737bd13af0318dc06fbe3",
"type": "github"
},
"original": {
@@ -975,11 +975,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"lastModified": 1755027561,
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
"type": "github"
},
"original": {
@@ -991,11 +991,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"lastModified": 1755027561,
"narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"rev": "005433b926e16227259a1843015b5b2b7f7d1fc3",
"type": "github"
},
"original": {
@@ -1011,11 +1011,11 @@
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1754984889,
"narHash": "sha256-Z3oTXVqmep9wyVL4LJA7DaLZgRRIWEEwwXMMCbRI14w=",
"lastModified": 1755102471,
"narHash": "sha256-ecWsZvrU/v7phSRIulxUYoCZ+i8s+mQ0ecmxxcgHUko=",
"owner": "nix-community",
"repo": "NUR",
"rev": "b0a7b04d1b5941a17ca0e4b09ad2c520c08a9269",
"rev": "94c6c5b9798480dc220ee2cc8b1ce93a472a8d8f",
"type": "github"
},
"original": {
@@ -1077,11 +1077,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1754926538,
"narHash": "sha256-fuHLsvM5z5/5ia3yL0/mr472wXnxSrtXECa+pspQchA=",
"lastModified": 1755004716,
"narHash": "sha256-TbhPR5Fqw5LjAeI3/FOPhNNFQCF3cieKCJWWupeZmiA=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "9db05508ed08a4c952017769b45b57c4ad505872",
"rev": "b2a58b8c6eff3c3a2c8b5c70dbf69ead78284194",
"type": "github"
},
"original": {
@@ -1099,11 +1099,11 @@
]
},
"locked": {
"lastModified": 1754880555,
"narHash": "sha256-tG6l0wiX8V8IvG4HFYY8IYN5vpNAxQ+UWunjjpE6SqU=",
"lastModified": 1755139244,
"narHash": "sha256-SN1BFA00m+siVAQiGLtTwjv9LV9TH5n8tQcSziV6Nv4=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "17c591a44e4eb77f05f27cd37e1cfc3f219c7fc4",
"rev": "aeae248beb2a419e39d483dd9b7fec924aba8d4d",
"type": "github"
},
"original": {
@@ -1119,11 +1119,11 @@
]
},
"locked": {
"lastModified": 1754449296,
"narHash": "sha256-0Rk4fRjX3VxSj646CN2a5GTV2QjXdArj1XvEZZqld7Y=",
"lastModified": 1755217133,
"narHash": "sha256-rnc6cHwCz/o6/pjDiwODNXRxtKfewjho+2ogvDkbiBU=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "28c9e49ae4fc03a24f955197e28fcd1a017458de",
"rev": "0936ef21bed8aae3cc15a913e1445f0df28e19dd",
"type": "github"
},
"original": {
@@ -1154,11 +1154,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1754851076,
"narHash": "sha256-k3+/24lN6E9BFRhryHocm7314t0Wtku0hgIdEWi15XI=",
"lastModified": 1755211397,
"narHash": "sha256-kw6iLWUj6+fiEpuc8ntrIzJ2gdS36wIcRINbKU0AIbA=",
"owner": "danth",
"repo": "stylix",
"rev": "afcfed6fd2a51615cd63aa7fa7608d670e7b61e5",
"rev": "928ca832d22ab3167b49dc5f4d52ff5d26b0b52a",
"type": "github"
},
"original": {
@@ -1319,11 +1319,11 @@
]
},
"locked": {
"lastModified": 1754972926,
"narHash": "sha256-2CEQSI3o7XWMc/DOdeNf6gTKjgGf8hHS0TB0HYPmSmA=",
"lastModified": 1755199018,
"narHash": "sha256-y7dM6ihF4feDgbssaeFxKXjsJb6Rzjz1brc17kSkcoQ=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "508a7c0c5c993d237773be89f5ca91ff8c997b44",
"rev": "8bf64e38baa26429c31d0623c3f16812b794b436",
"type": "github"
},
"original": {

View File

@@ -6,7 +6,6 @@
}:
lib.my.makeSwitch {
inherit config;
default = true;
optionName = "wine";
optionPath = [
"desktop"

View File

@@ -0,0 +1,23 @@
{
"data": "ENC[AES256_GCM,data:Me4kvuk4WovDtuzKFVOyC0TMyPntio+pOv7lpSowTVgX5IJhBQ==,iv:3gVN817C4EuqUt+pZwLEi4BUr06NJS4jw5TaH/T5qwQ=,tag:uF+b06x1tJNVXf2c+5N7zA==,type:str]",
"sops": {
"age": [
{
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOEFLUkyeaK8ZPPZdVNEmtx8zvoxi7xqS2Z6oxRBuUPO",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDltTWRrUSA2YVJI\nOGxJZS9qeGhxSWpQZlJ1bEVCUm5ZMjkzNm90Rm50aitFdlZwbHprCkpWaWhINGcv\nSXZJR2pUajBBRnZ5YnRKZk50amIycTBGM3BXMXFJNlNhVEUKLS0tIGd5R2lHV1RW\ncmxlYmRlU2pCbEJHSmRoYThyL2cyak5icTJ3cFJPRjRiVDAKcnKZ2ei+9uwPjf7q\nxyhcFz+JDYv/fRH0/CuwTtDilUOJoQOTWKUNw/e4ImsFomo0Ra4S7HLCScCSMCVc\nQd3Scw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB28jpN+h5euh3NtdN+A+EtqgIatC22e4i1TPTioKire",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IHJNY1d1ZyBoQjVD\nRy82QWNpeHAydkhsLzN0ZldvSzRsM0ljWmVOWnBJdWNuQjBrZlVVCnpNQkZ4bUxT\ncGhVSlFCNHdNMlZWRzBnWi95azJMN2xTN3JoaXB1UXpjSUkKLS0tIDdvZ3p1VnN4\nNy96SmFRdjQ5MVB6dS9kU1VSUUttUXFoVUs5ZDZMbW5yMFEK64rP7bZcOAU1PZd9\nFq3Ba/4I82dRXqhAk8YIiZ6j6z6UdpTtYk3E7Thqx9ZcqUkgpxFbAEi4jhgn028z\nYqH3RA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMb5G/ieEYBOng66YeyttBQLThyM6W//z2POsNyq4Rw/",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFhGYmtrZyB4akZq\nNmtnRUdrSlROS0tJazNjTzhqY0lZUXRiS1l2Q0F6dVRLZUw5dDBFCjRMVmFvM3RZ\nN0lIMGNwcjlXQ0h6TXA1RStxS3BLd01tNnVqaDMwbHdDV1EKLS0tIHBFSXMyNU9J\nL0JucEd2MzFIeTBVakFWdWpGQVJ2MUczd2ZRNkNlTnR2Nk0KKYgjgZtVqgfwda2x\noFgsqP+6VCWN7K2Qo3arfTvyRq1vd9Zs4UUavUDgZDylst5iVIeNhZc0flFBo3Cy\nqs4VDQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-08-15T02:07:33Z",
"mac": "ENC[AES256_GCM,data:MTcdSizIG8UNStgIqzar6bSejAPvSUKj+d7jVVuU/kvEgxA4Mrmv63wUF98fDBs6cgkHojwutLLiUo/4PzKPGccbyL+c2Y1vEkHmFcqMB1OOsl4Yfz/V5DdaDF3JcyNrSPcC8ooCChd7383z11kmE/a2sLkrNIMwIBjx3qNvaY0=,iv:6a2d+T28LI7zem2VfDffGoiafn2EEbtThvJ7e7myBSw=,tag:0ZV+mCyvLRliL+LtZ/WddA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}