dotfiles/nix/modules/moviefeed.nix (view raw)
| 1 | { pkgs, ... }: |
| 2 | let |
| 3 | configFile = "/home/q/moviedfeed.yml"; |
| 4 | version = "1875224"; |
| 5 | moviefeed = pkgs.buildGoModule { |
| 6 | pname = "moviefeed"; |
| 7 | inherit version; |
| 8 | vendorHash = "sha256-FWkYhhX/cZhF+ctgbYPhPRYcQZSLIL3zoaxqrbWZCcU="; |
| 9 | src = pkgs.fetchFromGitHub { |
| 10 | owner = "olexsmir"; |
| 11 | repo = "moviefeed"; |
| 12 | rev = version; |
| 13 | hash = "sha256-rmFLFbVQ4P2LdezM6ZGS+DI9NY4VMpXrp1p1QjB9FO0="; |
| 14 | }; |
| 15 | }; |
| 16 | in |
| 17 | { |
| 18 | services.caddy.virtualHosts."moviefeed.olexsmir.xyz".extraConfig = '' |
| 19 | reverse_proxy localhost:8000 |
| 20 | ''; |
| 21 | |
| 22 | systemd.services.moviefeed = { |
| 23 | description = "moviefeed API server"; |
| 24 | wantedBy = [ "multi-user.target" ]; |
| 25 | after = [ "network-online.target" ]; |
| 26 | wants = [ "network-online.target" ]; |
| 27 | |
| 28 | serviceConfig = { |
| 29 | Type = "simple"; |
| 30 | User = "q"; |
| 31 | Restart = "on-failure"; |
| 32 | RestartSec = 2; |
| 33 | ExecStart = "${moviefeed}/bin/moviefeed --config ${configFile}"; |
| 34 | NoNewPrivileges = true; |
| 35 | ProtectSystem = "strict"; |
| 36 | ReadOnlyPaths = [ configFile ]; |
| 37 | }; |
| 38 | }; |
| 39 | } |