Skip to content

Commit 890776c

Browse files
committed
update config
1 parent 31d96f5 commit 890776c

File tree

3 files changed

+280
-87
lines changed

3 files changed

+280
-87
lines changed

hosts/services/immich.nix

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,11 @@
1414

1515
config = lib.mkIf config.immich.enable {
1616

17-
services.postgresql.enable = true;
1817
services.immich = {
1918
enable = true;
2019
machine-learning.enable = false;
21-
# package = unstable.immich;
20+
host = "0.0.0.0";
2221
openFirewall = true;
23-
# database.enableVectors = false;
24-
# database.enableVectorChord = false;
2522
port = config.immich.port;
2623
};
2724
};

hosts/services/matrix/default.nix

Lines changed: 185 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,52 @@
1-
{ lib, config, pkgs,... }:
1+
{
2+
lib,
3+
config,
4+
pkgs,
5+
...
6+
}:
27
let
38
keyFile = "/run/livekit.key";
4-
in
5-
{
9+
in
10+
{
611

712
options = {
813
matrix.enable = lib.mkEnableOption "Enables matrix";
914
matrix.port = lib.mkOption { default = 8008; };
1015
matrix.domain = lib.mkOption { default = "matrix.mlflexer.online"; };
11-
# matrix.livekit.domain = lib.mkOption { default = "livekit.mlflexer.online"; };
1216
matrix.registration_secret = lib.mkOption {
1317
default = "/home/mlflexer/repos/.dotfiles/hosts/services/matrix/.reg_secret";
1418
type = lib.types.path;
1519
};
1620
};
1721

1822
config = lib.mkIf config.matrix.enable {
23+
1924
services.matrix-synapse = {
2025
enable = true;
2126
dataDir = "/mnt/usbdrive2/matrix-synapse";
2227
settings = {
23-
server_name = "mlflexer.online";
28+
server_name = config.matrix.domain;
2429
public_baseurl = "https://${config.matrix.domain}";
25-
database.name = "sqlite3";
30+
enable_authenticated_media = false;
31+
dynamic_thumbnails = true;
32+
33+
federation_verify_certificates = true;
34+
default_identity_server = "https://vector.im";
2635

2736
listeners = [
2837
{
2938
port = config.matrix.port;
30-
bind_addresses = ["127.0.0.1"];
39+
bind_addresses = [ "127.0.0.1" ];
3140
type = "http";
3241
tls = false;
3342
x_forwarded = true;
3443
resources = [
3544
{
36-
names = ["client" "federation"];
45+
names = [
46+
"client"
47+
"federation"
48+
"media"
49+
];
3750
compress = true;
3851
}
3952
];
@@ -56,6 +69,31 @@ let
5669
msc3266_enabled = true; # Room summary for knocking
5770
msc4222_enabled = true; # Fixed sync for calls
5871
};
72+
73+
extra_well_known_client_content = {
74+
75+
"org.matrix.msc4143.rtc_foci" = [
76+
{
77+
"type" = "livekit";
78+
"livekit_service_url" = "https://${config.matrix.domain}/livekit/jwt";
79+
"livekit_alias" = config.matrix.domain;
80+
}
81+
];
82+
"org.matrix.msc3575.proxy" = {
83+
"url" = "https://${config.matrix.domain}";
84+
};
85+
86+
};
87+
88+
serve_server_wellknown = true;
89+
matrix_rtc.transports = [
90+
{
91+
type = "livekit";
92+
livekit_service_url = "https://${config.matrix.domain}/livekit/jwt";
93+
}
94+
95+
];
96+
5997
};
6098
};
6199

@@ -76,9 +114,16 @@ let
76114
};
77115

78116
systemd.services.livekit-key = {
79-
before = [ "lk-jwt-service.service" "livekit.service" ];
117+
before = [
118+
"lk-jwt-service.service"
119+
"livekit.service"
120+
];
80121
wantedBy = [ "multi-user.target" ];
81-
path = with pkgs; [ livekit coreutils gawk ];
122+
path = with pkgs; [
123+
livekit
124+
coreutils
125+
gawk
126+
];
82127
script = ''
83128
echo "Key missing, generating key"
84129
echo "lk-jwt-service: $(livekit-server generate-keys | tail -1 | awk '{print $3}')" > "${keyFile}"
@@ -89,20 +134,142 @@ let
89134
unitConfig.ConditionPathExists = "!${keyFile}";
90135
};
91136

92-
systemd.services.lk-jwt-service.environment.LIVEKIT_FULL_ACCESS_HOMESERVERS = config.matrix.domain;
137+
systemd.services.lk-jwt-service.environment.LIVEKIT_FULL_ACCESS_HOMESERVERS = config.matrix.domain;
138+
139+
# MAUTRIX ------------------------------
140+
nixpkgs.config.permittedInsecurePackages = [
141+
"olm-3.2.16"
142+
];
143+
144+
services.postgresql = {
145+
enable = true;
146+
ensureUsers = [
147+
{
148+
name = "mautrix-discord";
149+
ensureDBOwnership = true;
150+
}
151+
{
152+
name = "mautrix-meta-messenger";
153+
ensureDBOwnership = true;
154+
}
155+
{
156+
name = "mautrix-meta-instagram";
157+
ensureDBOwnership = true;
158+
}
159+
];
160+
ensureDatabases = [
161+
"mautrix-discord"
162+
"mautrix-meta-messenger"
163+
"mautrix-meta-instagram"
164+
];
165+
};
166+
167+
# Discord
168+
services.mautrix-discord = {
169+
enable = true;
170+
dataDir = "/mnt/usbdrive2/mautrix/discord";
171+
settings = {
172+
homeserver = {
173+
domain = config.matrix.domain;
174+
address = "https://${config.matrix.domain}";
175+
};
176+
# database = {
177+
# type = "postgres";
178+
# uri = "postgresql:///mautrix-discord?host=/var/run/postgresql";
179+
# };
180+
appservice = {
181+
database = {
182+
type = "postgres";
183+
uri = "postgresql:///mautrix-discord?host=/var/run/postgresql";
184+
};
185+
};
186+
bridge = {
187+
public_address = "https://discord.bridge.mlflexer.online";
188+
permissions = {
189+
"@mlflexer:${config.matrix.domain}" = "admin";
190+
};
191+
direct_media = {
192+
enabled = true;
193+
server_name = "discord.bridge.mlflexer.online"; # 29334
194+
allow_proxy = true;
195+
};
196+
};
93197

198+
};
199+
};
94200

201+
# Meta
202+
services.mautrix-meta = {
203+
instances = {
204+
messenger = {
205+
enable = true;
206+
settings = {
207+
homeserver = {
208+
domain = config.matrix.domain;
209+
address = "https://${config.matrix.domain}";
210+
};
211+
database = {
212+
type = "postgres";
213+
uri = "postgresql:///mautrix-meta-messenger?host=/var/run/postgresql";
214+
};
215+
appservice = {
216+
public_address = "https://messenger.bridge.mlflexer.online";
217+
id = "messenger";
218+
bot = {
219+
username = "Messenger";
220+
};
221+
};
222+
bridge = {
223+
permissions = {
224+
"@mlflexer:${config.matrix.domain}" = "admin";
225+
};
226+
};
227+
direct_media = {
228+
enabled = true;
229+
server_name = "messenger.bridge.mlflexer.online"; # 29319
230+
allow_proxy = true;
231+
};
232+
network.mode = "messenger";
95233

96-
# MAUTRIX ------------------------------
234+
};
97235

98-
# services.mautrix-discord = {
99-
# enable = true;
100-
# dataDir = "/mnt/usbdrive2/mautrix/discord";
101-
# };
236+
};
237+
instagram = {
238+
enable = true;
239+
settings = {
240+
homeserver = {
241+
domain = config.matrix.domain;
242+
address = "https://${config.matrix.domain}";
243+
};
244+
database = {
245+
type = "postgres";
246+
uri = "postgresql:///mautrix-meta-instagram?host=/var/run/postgresql";
247+
};
248+
appservice = {
249+
public_address = "https://instagram.bridge.mlflexer.online";
250+
id = "instagram";
251+
bot = {
252+
username = "instagram";
253+
};
254+
};
255+
bridge = {
256+
permissions = {
257+
"@mlflexer:${config.matrix.domain}" = "admin";
258+
};
259+
};
260+
direct_media = {
261+
enabled = true;
262+
server_name = "instagram.bridge.mlflexer.online"; # 29320
263+
allow_proxy = true;
264+
};
265+
network.mode = "instagram";
102266

267+
};
103268

269+
};
270+
};
271+
272+
};
104273

105-
106274
};
107275
}
108-

0 commit comments

Comments
 (0)