tangled
alpha
login
or
join now
hyl.st
/
helm
2
fork
atom
nix config
2
fork
atom
overview
issues
pulls
pipelines
feat(box): gpodder deployed
Anish Lakhwara
2 years ago
676ed31a
afb1c0ef
+41
-40
5 changed files
expand all
collapse all
unified
split
flake.nix
hosts
profiles
dns
default.nix
gpodder
default.nix
mossnet-hosts
default.nix
modules
nixos
gpodder2go.nix
+1
-20
flake.nix
···
214
214
];
215
215
};
216
216
217
217
-
cube = nixpkgs.lib.nixosSystem rec {
218
218
-
specialArgs = { inherit inputs self; };
219
219
-
system = "x86_64-linux";
220
220
-
pkgs = litePkgsFor.${system};
221
221
-
modules = [
222
222
-
./hosts/cube
223
223
-
agenix.nixosModules.age
224
224
-
self.nixosModules.backup
225
225
-
self.nixosModules.wireguard
226
226
-
basant.nixosModule
227
227
-
];
228
228
-
};
229
229
-
230
217
box = nixpkgs.lib.nixosSystem rec {
231
218
specialArgs = { inherit inputs self; };
232
219
system = "x86_64-linux";
···
237
224
self.nixosModules.backup
238
225
self.nixosModules.wireguard
239
226
self.nixosModules.gonic
227
227
+
self.nixosModules.gpodder2go
240
228
self.nixosModules.wallabag
241
229
self.nixosModules.ulogger-server
242
230
grasp.nixosModule
···
290
278
profiles.system = {
291
279
user = "root";
292
280
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.helix;
293
293
-
};
294
294
-
};
295
295
-
cube = {
296
296
-
hostname = "lakhwara.com";
297
297
-
profiles.system = {
298
298
-
user = "root";
299
299
-
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.cube;
300
281
};
301
282
};
302
283
};
+1
hosts/profiles/dns/default.nix
···
39
39
"tracks.mossnet.lan"
40
40
"grasp.mossnet.lan"
41
41
"photos.mossnet.lan"
42
42
+
"pod.mossnet.lan"
42
43
];
43
44
44
45
in
+12
hosts/profiles/gpodder/default.nix
···
1
1
{
2
2
services.gpodder.enable = true;
3
3
networking.firewall.allowedTCPPorts = [ 3005 ];
4
4
+
services.nginx.virtualHosts."pod.mossnet.lan" = {
5
5
+
extraConfig = "client_max_body_size 20M;";
6
6
+
7
7
+
locations."/" = {
8
8
+
extraConfig = ''
9
9
+
proxy_pass http://localhost:3005/;
10
10
+
proxy_set_header X-Forwarded-Proto $scheme;
11
11
+
proxy_set_header X-Real-IP $remote_addr;
12
12
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13
13
+
'';
14
14
+
};
15
15
+
};
4
16
}
+1
hosts/profiles/mossnet-hosts/default.nix
···
18
18
192.168.1.240 tracks.mossnet.lan
19
19
192.168.1.240 grasp.mossnet.lan
20
20
192.168.1.240 photos.mossnet.lan
21
21
+
192.168.1.240 pod.mossnet.lan
21
22
'';
22
23
# 10.0.69.4 mossnet.lan
23
24
# 10.0.69.4 links.mossnet.lan
+26
-20
modules/nixos/gpodder2go.nix
···
3
3
with lib;
4
4
5
5
let
6
6
-
cfg = config.services.gpodder2go;
6
6
+
cfg = config.services.gpodder;
7
7
in
8
8
{
9
9
options = {
···
53
53
Environment = [
54
54
"VERIFIER_SECRET_KEY=${cfg.VERIFIER_SECRET_KEY}"
55
55
];
56
56
-
WorkingDirectory = dataFolder;
56
56
+
WorkingDirectory = cfg.dataFolder;
57
57
TimeoutStopSec = " 20 ";
58
58
KillMode = " process ";
59
59
RestartSec = " 10 ";
···
73
73
RestrictNamespaces = " yes ";
74
74
RestrictRealtime = " yes ";
75
75
SystemCallFilter = "~@clock @debug @module @mount @obsolete @privileged @reboot @setuid @swap";
76
76
-
ReadWritePaths = dataFolder;
77
77
-
StateDirectory = baseNameOf dataFolder;
76
76
+
ReadWritePaths = cfg.dataFolder;
77
77
+
StateDirectory = baseNameOf cfg.dataFolder;
78
78
};
79
79
};
80
80
···
90
90
users.groups = optionalAttrs (cfg.group == "gpodder") ({
91
91
gpodder = { };
92
92
});
93
93
-
};
94
93
95
95
-
systemd.services.gpodder-install = {
96
96
-
description = "gpodder install service";
97
97
-
wantedBy = [ "multi-user.target" ];
98
98
-
before = [ "gpodder.service" ];
99
99
-
path = with pkgs; [ gpodder2go ];
94
94
+
# systemd.services.gpodder-install = {
95
95
+
# description = "gpodder install service";
96
96
+
# wantedBy = [ "multi-user.target" ];
97
97
+
# before = [ "gpodder.service" ];
98
98
+
# path = with pkgs; [ gpodder2go ];
100
99
101
101
-
serviceConfig = {
102
102
-
User = cfg.user;
103
103
-
Type = "oneshot";
104
104
-
} // commonServiceConfig;
100
100
+
# serviceConfig = {
101
101
+
# User = cfg.user;
102
102
+
# Type = "oneshot";
103
103
+
# CacheDirectory = "gpodder";
104
104
+
# # Stores sessions.
105
105
+
# CacheDirectoryMode = "700";
106
106
+
# ConfigurationDirectory = "gpodder";
107
107
+
# LogsDirectory = "gpodder";
108
108
+
# StateDirectory = "gpodder";
109
109
+
# };
105
110
106
106
-
script = ''
107
107
-
if [ ! -f "${cfg.dataFolder}/installed" ]; then
108
108
-
${pkgs.gpodder2go}/bin/gpodder2go init
109
109
-
touch "${cfg.dataFolder}/installed"
110
110
-
fi
111
111
-
'';
111
111
+
# script = ''
112
112
+
# if [ ! -f "${cfg.dataFolder}/installed" ]; then
113
113
+
# ${pkgs.gpodder2go}/bin/gpodder2go init
114
114
+
# touch "${cfg.dataFolder}/installed"
115
115
+
# fi
116
116
+
# '';
117
117
+
# };
112
118
};
113
119
}
114
120