chore(soldtime): Cleanup options
This commit is contained in:
parent
2a392b0581
commit
04b4254a72
3 changed files with 42 additions and 27 deletions
|
|
@ -5,10 +5,10 @@ let
|
|||
|
||||
networkName = "solidtime";
|
||||
internalNetworkName = "solidtime-internal";
|
||||
proxyNet = config.homelab.apps.traefiik.sharedNetworkName;
|
||||
|
||||
version = "0.8.0";
|
||||
|
||||
port = 8000;
|
||||
user = "1000:1000";
|
||||
|
||||
# dbExternalPort = ...;
|
||||
|
|
@ -30,7 +30,7 @@ let
|
|||
VITE_APP_NAME = laravelEnv.APP_NAME;
|
||||
APP_ENV = "production";
|
||||
APP_DEBUG = "false";
|
||||
APP_URL = "http://localhost:${toString port}";
|
||||
APP_URL = "http://localhost:${toString cfg.port}";
|
||||
APP_FORCE_HTTPS = "false";
|
||||
APP_ENABLE_REGISTRATION = "false";
|
||||
TRUSTED_PROXIES = "0.0.0.0/0,2000:0:0:0:0:0:0:0/3";
|
||||
|
|
@ -70,7 +70,15 @@ let
|
|||
};
|
||||
|
||||
in {
|
||||
options.homelab.apps.solidtime.enable = lib.mkEnableOption "Solidtime time tracker using Docker";
|
||||
options.homelab.apps.solidtime = {
|
||||
enable = lib.mkEnableOption "Solidtime time tracker using Docker";
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 8000;
|
||||
description = "Solidtime WebUI port";
|
||||
};
|
||||
exposePort = lib.mkEnableOption "Expose Soldtime port";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homelab.virtualisation.containers.enable = true;
|
||||
|
|
@ -117,52 +125,54 @@ in {
|
|||
solidtime = {
|
||||
hostname = "solidtime";
|
||||
image = "solidtime/solidtime:${version}";
|
||||
autoStart = true;
|
||||
inherit user;
|
||||
autoStart = true;
|
||||
dependsOn = [
|
||||
"solidtimeDb"
|
||||
];
|
||||
ports = [
|
||||
# Open ports if you don't use Traefik
|
||||
"${toString port}:8000"
|
||||
"${toString cfg.port}:8000"
|
||||
];
|
||||
networks = [
|
||||
networkName
|
||||
internalNetworkName
|
||||
];
|
||||
extraOptions = [
|
||||
"--network=${networkName}"
|
||||
"--network=${internalNetworkName}"
|
||||
|
||||
# Healthecks
|
||||
# test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ]
|
||||
''--health-cmd=curl --fail http://localhost:8000/health-check/up || exit 1''
|
||||
];
|
||||
inherit volumes;
|
||||
dependsOn = [
|
||||
"solidtimeDb"
|
||||
];
|
||||
labels = {
|
||||
"traefik.enable" = "true";
|
||||
"traefik.http.routers.solidtime.rule" = "Host(`time.${config.networking.hostName}.depeuter.dev`)";
|
||||
"traefik.http.services.solidtime.loadbalancer.server.port" = toString cfg.port;
|
||||
};
|
||||
environmentFiles = [
|
||||
"/home/admin/.solidtime.env"
|
||||
];
|
||||
environment = laravelEnv // {
|
||||
CONTAINER_MODE = "http";
|
||||
};
|
||||
labels = {
|
||||
"traefik.enable" = "true";
|
||||
"traefik.http.routers.solidtime.rule" = "Host(`time.${config.networking.hostName}.depeuter.dev`)";
|
||||
"traefik.http.services.solidtime.loadbalancer.server.port" = toString port;
|
||||
};
|
||||
};
|
||||
solidtimeScheduler = {
|
||||
hostname = "scheduler";
|
||||
image = "solidtime/solidtime:${version}";
|
||||
inherit user;
|
||||
autoStart = true;
|
||||
dependsOn = [
|
||||
"solidtimeDb"
|
||||
];
|
||||
networks = [
|
||||
internalNetworkName
|
||||
];
|
||||
extraOptions = [
|
||||
"--network=${internalNetworkName}"
|
||||
|
||||
# Healthchecks
|
||||
# test: [ "CMD-SHELL", "supervisorctl status scheduler:scheduler_00" ]
|
||||
''--health-cmd="supervisorctl status scheduler:scheduler_00"''
|
||||
];
|
||||
inherit volumes;
|
||||
dependsOn = [
|
||||
"solidtimeDb"
|
||||
];
|
||||
environmentFiles = [
|
||||
"/home/admin/.solidtime.env"
|
||||
];
|
||||
|
|
@ -175,9 +185,10 @@ in {
|
|||
image = "solidtime/solidtime:${version}";
|
||||
inherit user;
|
||||
autoStart = true;
|
||||
networks = [
|
||||
internalNetworkName
|
||||
];
|
||||
extraOptions = [
|
||||
"--network=${internalNetworkName}"
|
||||
|
||||
# Healthchecks
|
||||
# test: [ "CMD-SHELL", "supervisorctl status worker:worker_00" ]
|
||||
''--health-cmd="supervisorctl status worker:worker_00"''
|
||||
|
|
@ -201,9 +212,10 @@ in {
|
|||
ports = [
|
||||
# "${toString dbExternalPort}:${toString dbInternalPort}"
|
||||
];
|
||||
networks = [
|
||||
internalNetworkName
|
||||
];
|
||||
extraOptions = [
|
||||
"--network=${internalNetworkName}"
|
||||
|
||||
# Healthchecks
|
||||
# test: - CMD - pg_isready - '-q' - '-d' - '${DB_DATABASE}' - '-U' - '${DB_USERNAME}' retries: 3 timeout: 5s
|
||||
''--health-cmd="pg_isready -q -d ${laravelEnv.DB_DATABASE} -U ${laravelEnv.DB_USERNAME}"''
|
||||
|
|
@ -224,9 +236,10 @@ in {
|
|||
hostname = "gotenberg";
|
||||
image = "gotenberg/gotenberg:8";
|
||||
autoStart = true;
|
||||
networks = [
|
||||
internalNetworkName
|
||||
];
|
||||
extraOptions = [
|
||||
"--network=${internalNetworkName}"
|
||||
|
||||
# Healthchecks
|
||||
# test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ]
|
||||
''--health-cmd="curl --silent --fail http://localhost:${toString gotenbergPort}/health"''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue