blob: 217d25061c0e61a3de14f946948a6e513ea00f48 [file] [log] [blame]
vukof0ab6c42022-12-19 23:57:03 +01001{ pkgs, workspace, ... }:
2
3let
4 python = pkgs.python3.withPackages (pp: [ pp.jinja2 pp.paho-mqtt pp.flask ]);
5 src = pkgs.fetchgit {
6 url = "https://code.hackerspace.pl/informatic/spejsiot-api";
7 rev = "d5bcb860738df0c9702c2e6f6954cfa08e3c7153";
8 sha256 = "sha256-1xZ6RKl/AkMYvyFDcANQiSY3dJPQitaKjLl9ijrAHOs=";
9 };
10 run = pkgs.writeShellScriptBin "spejsiot-api" ''
11 cd ${src}
12 exec ${python}/bin/python3 main.py
13 '';
14
15 name = "spejsiot-api";
16 user = name;
17 group = name;
18 socket_dir = "/run/${name}/";
19in {
20 users.users."${user}" = {
21 group = "${group}";
22 isSystemUser = true;
23 };
24 users.groups."${group}" = { };
25
26 systemd.services."${name}" = {
27 description = "Hackerspace Checkinator";
28 wantedBy = [ "multi-user.target" ];
29 after = [ "mosquitto.service" ];
30
31 serviceConfig.User = "${user}";
32 serviceConfig.Type = "simple";
33
34 serviceConfig.Restart = "always";
35 serviceConfig.RestartSec = "30";
36
37 serviceConfig.ExecStart = "${run}/bin/spejsiot-api";
38
39 };
40}