Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485{ config, lib, pkgs, ...}:
let inherit (lib) types; cfg = config.services.workout-tracker; stateDir = "workout-tracker";in
{ options = { services.workout-tracker = { enable = lib.mkEnableOption "workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities";
package = lib.mkPackageOption pkgs "workout-tracker" { };
address = lib.mkOption { type = types.str; default = "127.0.0.1"; description = "Web interface address."; };
port = lib.mkOption { type = types.port; default = 8080; description = "Web interface port."; };
environmentFile = lib.mkOption { type = types.nullOr types.path; default = null; example = "/run/keys/workout-tracker.env"; description = '' An environment file as defined in {manpage}`systemd.exec(5)`.
Secrets like `WT_JWT_ENCRYPTION_KEY` may be passed to the service without adding them to the world-readable Nix store. ''; };
settings = lib.mkOption { type = types.attrsOf types.str;
default = { }; description = '' Extra config options. ''; example = { WT_LOGGING = "true"; WT_DEBUG = "false"; WT_DATABASE_DRIVER = "sqlite"; WT_DSN = "./database.db"; }; }; }; };
config = lib.mkIf cfg.enable { systemd.services.workout-tracker = { description = "A workout tracking web application for personal use (or family, friends), geared towards running and other GPX-based activities"; wantedBy = [ "multi-user.target" ]; environment = { WT_BIND = "${cfg.address}:${toString cfg.port}"; WT_DATABASE_DRIVER = "sqlite"; WT_DSN = "./database.db"; } // cfg.settings; serviceConfig = { ExecStart = lib.getExe cfg.package; DynamicUser = true; StateDirectory = stateDir; WorkingDirectory = "%S/${stateDir}"; Restart = "always"; EnvironmentFile = lib.optional (cfg.environmentFile != null) cfg.environmentFile; }; }; };
meta.maintainers = with lib.maintainers; [ bhankas ];}