Added Bridges; Changed shell
This commit is contained in:
+1
-1
@@ -34,12 +34,12 @@
|
|||||||
./obsidian.nix
|
./obsidian.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
nixpkgs.config.allowUnfreePredicate =
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
pkg:
|
pkg:
|
||||||
builtins.elem (lib.getName pkg) [
|
builtins.elem (lib.getName pkg) [
|
||||||
"wezterm.nvim"
|
"wezterm.nvim"
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = primaryUser;
|
username = primaryUser;
|
||||||
stateVersion = "26.05";
|
stateVersion = "26.05";
|
||||||
|
|||||||
+8
-4
@@ -189,9 +189,6 @@
|
|||||||
|
|
||||||
# llm | glow
|
# llm | glow
|
||||||
def l [...args] { llm prompt -m groq/llama-3.3-70b-versatile -t std ...$args | glow }
|
def l [...args] { llm prompt -m groq/llama-3.3-70b-versatile -t std ...$args | glow }
|
||||||
|
|
||||||
# Fastfetch on shell start
|
|
||||||
fastfetch
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
extraEnv = ''
|
extraEnv = ''
|
||||||
@@ -230,7 +227,14 @@
|
|||||||
fzf --fish | source
|
fzf --fish | source
|
||||||
zoxide init fish --cmd cd | source
|
zoxide init fish --cmd cd | source
|
||||||
function fish_greeting
|
function fish_greeting
|
||||||
fastfetch
|
echo " _ _ ";
|
||||||
|
echo " | | | | ";
|
||||||
|
echo " ___ _ _ _ __ ___ _ __ _ __ _ _ _ __ | | __ __| | ___ ";
|
||||||
|
echo " / __| | | | '_ \\ / _ \\ '__| '_ \\| | | | '_ \\| |/ / / _\` |/ _ \\";
|
||||||
|
echo "| (__| |_| | |_) | __/ | | |_) | |_| | | | | < | (_| | __/";
|
||||||
|
echo " \\___|\\__, | .__/ \\___|_| | .__/ \\__,_|_| |_|_|\\_(_)__,_|\\___|";
|
||||||
|
echo " __/ | | | | ";
|
||||||
|
echo " |___/|_| |_| ";
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./synapse.nix
|
./synapse.nix
|
||||||
#./lk-jwt.nix
|
|
||||||
./livekit.nix
|
./livekit.nix
|
||||||
./clients.nix
|
./clients.nix
|
||||||
./mjolnir.nix
|
./mjolnir.nix
|
||||||
./coturn.nix
|
./coturn.nix
|
||||||
#./maubot.nix # known security risk
|
./discord-bridge.nix
|
||||||
|
./whatsapp-bridge.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.permittedInsecurePackages = [ "olm-3.2.16" ];
|
||||||
|
|
||||||
|
sops.secrets.discord_bot_token = {
|
||||||
|
owner = "mautrix-discord";
|
||||||
|
group = "mautrix-discord";
|
||||||
|
};
|
||||||
|
sops.secrets.discord_client_id = {
|
||||||
|
owner = "mautrix-discord";
|
||||||
|
group = "mautrix-discord";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.mautrix-discord-env = {
|
||||||
|
before = [ "mautrix-discord-registration.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
mkdir -p /run/mautrix-discord
|
||||||
|
echo "DISCORD_BOT_TOKEN=$(cat ${config.sops.secrets.discord_bot_token.path})" > /run/mautrix-discord/env
|
||||||
|
echo "DISCORD_CLIENT_ID=$(cat ${config.sops.secrets.discord_client_id.path})" >> /run/mautrix-discord/env
|
||||||
|
chmod 600 /run/mautrix-discord/env
|
||||||
|
chown mautrix-discord:mautrix-discord /run/mautrix-discord/env
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "mautrix-discord";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ensureDatabases = [ "mautrix-discord" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mautrix-discord = {
|
||||||
|
enable = true;
|
||||||
|
environmentFile = "/run/mautrix-discord/env";
|
||||||
|
settings = {
|
||||||
|
homeserver = {
|
||||||
|
address = "http://127.0.0.1:8008";
|
||||||
|
domain = "cyperpunk.de";
|
||||||
|
};
|
||||||
|
appservice.database = {
|
||||||
|
type = "postgres";
|
||||||
|
uri = "postgres:///mautrix-discord?host=/run/postgresql&sslmode=disable";
|
||||||
|
};
|
||||||
|
bridge = {
|
||||||
|
permissions = {
|
||||||
|
"cyperpunk.de" = "user";
|
||||||
|
"@dergrumpf:cyperpunk.de" = "admin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
discord = {
|
||||||
|
client_id = "$DISCORD_CLIENT_ID";
|
||||||
|
bot_token = "$DISCORD_BOT_TOKEN";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
let
|
|
||||||
domain = "cyperpunk.de";
|
|
||||||
synapseUrl = "http://127.0.0.1:8008";
|
|
||||||
# Internal LiveKit address — JWT service must NOT go through the TLS proxy.
|
|
||||||
# Using the public wss:// URL caused token rejection because nginx re-wraps
|
|
||||||
# the connection and the JWT service couldn't verify the livekit instance.
|
|
||||||
livekitInternalUrl = "ws://127.0.0.1:7880";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# Same secret as livekit.nix — both services must share the same key pair
|
|
||||||
sops.secrets.livekit_key = { };
|
|
||||||
|
|
||||||
services.lk-jwt-service = {
|
|
||||||
enable = true;
|
|
||||||
port = 18080;
|
|
||||||
keyFile = config.sops.secrets.livekit_key.path;
|
|
||||||
livekitUrl = livekitInternalUrl;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.lk-jwt-service.environment = {
|
|
||||||
LIVEKIT_FULL_ACCESS_HOMESERVERS = domain;
|
|
||||||
MATRIX_BASE_URL = synapseUrl;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
maubot = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
database = "postgresql://maubot@localhost/maubot";
|
|
||||||
server = {
|
|
||||||
public_url = "matrix.cyperpunk.de";
|
|
||||||
#ui_base_path = "/another/base/path";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nginx.virtualHosts."matrix.cyperpunk.de".locations = {
|
|
||||||
"/_matrix/maubot/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:${toString config.services.maubot.settings.server.port}";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.postgresql = {
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "mautrix-whatsapp";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
ensureDatabases = [ "mautrix-whatsapp" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mautrix-whatsapp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
homeserver = {
|
||||||
|
address = "http://127.0.0.1:8008";
|
||||||
|
domain = "cyperpunk.de";
|
||||||
|
};
|
||||||
|
database = {
|
||||||
|
type = "postgres";
|
||||||
|
uri = "postgres:///mautrix-whatsapp?host=/run/postgresql&sslmode=disable";
|
||||||
|
};
|
||||||
|
bridge.permissions = {
|
||||||
|
"cyperpunk.de" = "user";
|
||||||
|
"@dergrumpf:cyperpunk.de" = "admin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -11,6 +11,8 @@ paperless_admin: ENC[AES256_GCM,data:sVvlMQ3dDE2XsDfpwpCTbzPCEKdUMNTFtRXDIuBbgyf
|
|||||||
livekit_key_file: ENC[AES256_GCM,data:wOtJhwDtZNEY+QjHyLL1FTOtkmzkNA5BoTsx0+ZMij9uUaKC28uFIkMAq2ZzIU7Nyvk8+4YjbK/Rrsoy,iv:UTDuItr0XsG+/4HFkEHDpxXy41QiVgPCisHeMMY2dQo=,tag:SkoeLWClO9I/V2sn27Y2uw==,type:str]
|
livekit_key_file: ENC[AES256_GCM,data:wOtJhwDtZNEY+QjHyLL1FTOtkmzkNA5BoTsx0+ZMij9uUaKC28uFIkMAq2ZzIU7Nyvk8+4YjbK/Rrsoy,iv:UTDuItr0XsG+/4HFkEHDpxXy41QiVgPCisHeMMY2dQo=,tag:SkoeLWClO9I/V2sn27Y2uw==,type:str]
|
||||||
mjolnir_access_token: ENC[AES256_GCM,data:vvrAY9CAkEIGEzah+TQiwa6PahGuXVvU7wzBpTnqeSLqe3mqtw120GRj,iv:J+/VJ40BsImr832eGUHShhDVWYC7KsEwQUH9AE6Rs9c=,tag:n+y0flxfqY47rB4yv9TnBw==,type:str]
|
mjolnir_access_token: ENC[AES256_GCM,data:vvrAY9CAkEIGEzah+TQiwa6PahGuXVvU7wzBpTnqeSLqe3mqtw120GRj,iv:J+/VJ40BsImr832eGUHShhDVWYC7KsEwQUH9AE6Rs9c=,tag:n+y0flxfqY47rB4yv9TnBw==,type:str]
|
||||||
coturn_static_auth_secret: ENC[AES256_GCM,data:7AI0E8Hu4WxI5q4j1GqBMSQ+evE006uPMtwIfGn4eFz+XB2JA6fhhiGMPPxSkqOyK+3eZJ5ahiG05JpmBmmAbw==,iv:hQJQQDVo43U7lvV754PC1THeFCpZZEyag+BslXyoDos=,tag:Vkm+IXr1h8ZNpah6UYaKng==,type:str]
|
coturn_static_auth_secret: ENC[AES256_GCM,data:7AI0E8Hu4WxI5q4j1GqBMSQ+evE006uPMtwIfGn4eFz+XB2JA6fhhiGMPPxSkqOyK+3eZJ5ahiG05JpmBmmAbw==,iv:hQJQQDVo43U7lvV754PC1THeFCpZZEyag+BslXyoDos=,tag:Vkm+IXr1h8ZNpah6UYaKng==,type:str]
|
||||||
|
discord_bot_token: ENC[AES256_GCM,data:j37Qo3FCyRwNFqWSWpnQKCs+AxH5HlQ8U5If7ylHilQoORp8Pb3TtNETTJSjZyvUXllldevAbHrbAEEKnNfoUJx1U8/wl6H0,iv:WQqxFXTE+0LIB2lSvVcnr4LNXPE7uzNc0Kk8NU6Z/aE=,tag:fNeQLhoThEgfa4sSGKLZCw==,type:str]
|
||||||
|
discord_client_id: ENC[AES256_GCM,data:U/iUKXT6Nsl6LRN9lPh1xaIaqw==,iv:k7kQ8rJBrMs3YwD9aDfZ6qhd7H3aVsSPTOwEIxVTw2Y=,tag:2wKhxGbf+P+h3BYeWUSczA==,type:str]
|
||||||
gitea:
|
gitea:
|
||||||
dbPassword: ENC[AES256_GCM,data:S6VvRgkdYk1AzXljyQEEq68UJ9zrFy6+INBMIAspXNcqcM6o+es19o0mcXA=,iv:/pHYpkZZq+9Md+75uSCb2YXfSvaDzUh6mMfH53wb7eg=,tag:ZnbyCQwrK2JnbO5HFqgJYw==,type:str]
|
dbPassword: ENC[AES256_GCM,data:S6VvRgkdYk1AzXljyQEEq68UJ9zrFy6+INBMIAspXNcqcM6o+es19o0mcXA=,iv:/pHYpkZZq+9Md+75uSCb2YXfSvaDzUh6mMfH53wb7eg=,tag:ZnbyCQwrK2JnbO5HFqgJYw==,type:str]
|
||||||
internalToken: ENC[AES256_GCM,data:7N8TkPNb1YdCk2uAcCvVd2pKRVOf85//DYxAvz0UCg1E8ccEI5630xVyKafDFiSTM4ER7xiYelartzXL0jLWSf3QNOjSHUP8TIAz4bJRAZUJPxO917bURSLGGe7WEOfONzqy3Ts5QhrJ,iv:DiIs1ytlwLvqD/Ejep6m2fmpSqdFZkxBcgLNt6+29jY=,tag:8jsEcOkH0p+1mP9cnVjiDQ==,type:str]
|
internalToken: ENC[AES256_GCM,data:7N8TkPNb1YdCk2uAcCvVd2pKRVOf85//DYxAvz0UCg1E8ccEI5630xVyKafDFiSTM4ER7xiYelartzXL0jLWSf3QNOjSHUP8TIAz4bJRAZUJPxO917bURSLGGe7WEOfONzqy3Ts5QhrJ,iv:DiIs1ytlwLvqD/Ejep6m2fmpSqdFZkxBcgLNt6+29jY=,tag:8jsEcOkH0p+1mP9cnVjiDQ==,type:str]
|
||||||
@@ -29,7 +31,7 @@ sops:
|
|||||||
N3I5dzUwc3JtYzczMUhyT04vSHlZamMKT+FzYcDLmlEFYxm/XoBpJb8XaZzBH1v9
|
N3I5dzUwc3JtYzczMUhyT04vSHlZamMKT+FzYcDLmlEFYxm/XoBpJb8XaZzBH1v9
|
||||||
6fuez+zApathZfl14w41kAUojPWBznnxDqYtNvzVVLXwnpp3BMx+7w==
|
6fuez+zApathZfl14w41kAUojPWBznnxDqYtNvzVVLXwnpp3BMx+7w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-05-06T21:16:11Z"
|
lastmodified: "2026-05-07T07:00:06Z"
|
||||||
mac: ENC[AES256_GCM,data:Dl9FbobKAg5T6H5nQr7VL7LAyk5DgzJDWzlHa1GqhqqbFV8InJtwVc+H3iqiBbsLNW2D4TowqmKMae2aZQ3CLN1YCtScMci9fO0+V0+dEWDismTk/Gd4jJzKAIei3ewXkqiWpIg9yt9LvQAp0Jbg5/vP/2UsBBqXmFbRxbME0NY=,iv:i13Wya8uUsUVPE7ZBxNDgH2kg0OwGysfC/qHoJEmYhg=,tag:kiosVeWZNhKEwCVrg3t/ow==,type:str]
|
mac: ENC[AES256_GCM,data:KSkcRm/aTGAZBfj2ZZ03x8EB2Sh0lFKUSDKLedgtYYk/QnUKTZOO8oaT36xIdrPN0pjK1CnElDQMkAHG6JCklif2UkcodKcerVWaVcNwZ4mk6wSvZz7OIqneMR0W/U+Ly3NMgwIKrlP9f7axiYMq9JyK6pVeepKrmw4RvOPzxqU=,iv:vlcFxxV5EofNAPnDf7eGJZ8FUM83uGUnkZtU57Epb3Y=,tag:yfYpa/F7PTwvZY11SZyRaw==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.12.2
|
version: 3.12.2
|
||||||
|
|||||||
Reference in New Issue
Block a user