summaryrefslogtreecommitdiffstats
path: root/shared/2configs
diff options
context:
space:
mode:
Diffstat (limited to 'shared/2configs')
-rw-r--r--shared/2configs/shack-drivedroid.nix55
-rw-r--r--shared/2configs/shack-nix-cacher.nix37
2 files changed, 50 insertions, 42 deletions
diff --git a/shared/2configs/shack-drivedroid.nix b/shared/2configs/shack-drivedroid.nix
index 3581f9e96..12e4a39c3 100644
--- a/shared/2configs/shack-drivedroid.nix
+++ b/shared/2configs/shack-drivedroid.nix
@@ -1,44 +1,49 @@
-{ pkgs, lib, config, ... }:
+{ config, pkgs, ... }:
with import <stockholm/lib>;
let
- repodir = "/var/srv/drivedroid";
- srepodir = shell.escape repodir;
+ root = "/var/srv/drivedroid";
in
{
environment.systemPackages = [ pkgs.drivedroid-gen-repo ];
- systemd.services.drivedroid = {
+ services.nginx = {
+ enable = mkDefault true;
+ virtualHosts.shack-drivedroid = {
+ serverAliases = [
+ "drivedroid.shack"
+ ];
+ # TODO: prepare this somehow
+ locations."/".extraConfig = ''
+ root ${root};
+ index main.json;
+ '';
+ };
+ };
+
+ systemd.services.drivedroid-gen-repo = {
description = "generates drivedroid repo file";
- restartIfChanged = true;
+ path = [
+ pkgs.coreutils
+ pkgs.drivedroid-gen-repo
+ pkgs.inotify-tools
+ ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
Restart = "always";
- ExecStartPre = pkgs.writeScript "prepare-drivedroid-gen-repo" ''
- #!/bin/sh
- mkdir -p ${srepodir}/repos
+ ExecStartPre = pkgs.writeDash "prepare-drivedroid-gen-repo" ''
+ mkdir -p ${root}/repos
'';
- ExecStart = pkgs.writeScript "start-drivedroid-gen-repo" ''
- #!/bin/sh
+ ExecStart = pkgs.writeDash "start-drivedroid-gen-repo" ''
+ set -efu
+ cd ${root}
while sleep 60; do
- ${pkgs.inotify-tools}/bin/inotifywait -r ${srepodir} && ${pkgs.drivedroid-gen-repo}/bin/drivedroid-gen-repo --chdir "${srepodir}" repos/ > "${srepodir}/main.json"
+ if inotifywait -r .; then
+ drivedroid-gen-repo repos > main.json
+ fi
done
'';
};
};
-
- krebs.nginx = {
- enable = lib.mkDefault true;
- servers = {
- drivedroid-repo = {
- server-names = [ "drivedroid.shack" ];
- # TODO: prepare this somehow
- locations = lib.singleton (lib.nameValuePair "/" ''
- root ${repodir};
- index main.json;
- '');
- };
- };
- };
}
diff --git a/shared/2configs/shack-nix-cacher.nix b/shared/2configs/shack-nix-cacher.nix
index 7519bb3ac..4fcbf3a4e 100644
--- a/shared/2configs/shack-nix-cacher.nix
+++ b/shared/2configs/shack-nix-cacher.nix
@@ -1,25 +1,28 @@
-{ pkgs, lib, ... }:
-
+{ config, pkgs, ... }:
+with import <stockholm/lib>;
+let
+ cfg = config.krebs.apt-cacher-ng;
+in
{
- krebs.nginx = {
- enable = lib.mkDefault true;
- servers = {
- apt-cacher-ng = {
- server-names = [ "acng.shack" ];
- locations = lib.singleton (lib.nameValuePair "/" ''
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http://localhost:3142/;
- '');
- };
- };
- };
-
krebs.apt-cacher-ng = {
enable = true;
port = 3142;
bindAddress = "localhost";
cacheExpiration = 30;
};
+
+ services.nginx = {
+ enable = mkDefault true;
+ virtualHosts.shack-nix-cacher = {
+ serverAliases = [
+ "acng.shack"
+ ];
+ locations."/".extraConfig = ''
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_pass http://localhost:${toString cfg.port}/;
+ '';
+ };
+ };
}