trying regular docker-compose

This commit is contained in:
2024-11-10 11:59:10 -06:00
parent 82b054d3ea
commit 9a6c1aa1ba
5 changed files with 156 additions and 34 deletions

18
flake.lock generated
View File

@@ -1385,11 +1385,11 @@
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-swUtIf1jN3XSE4xExChj4M5rBWCSs08qqxXsJu1tZYs=", "narHash": "sha256-swUtIf1jN3XSE4xExChj4M5rBWCSs08qqxXsJu1tZYs=",
"path": "/nix/store/5vngnkzqqbr2mk946bk2jyp7khrq0z5s-source/home-manager", "path": "/nix/store/5bj7fdgfpap72j7smprhlbaxlicqdad0-source/home-manager",
"type": "path" "type": "path"
}, },
"original": { "original": {
"path": "/nix/store/5vngnkzqqbr2mk946bk2jyp7khrq0z5s-source/home-manager", "path": "/nix/store/5bj7fdgfpap72j7smprhlbaxlicqdad0-source/home-manager",
"type": "path" "type": "path"
} }
}, },
@@ -2066,11 +2066,11 @@
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-HAuZ9X84fuwUcit6NWUoJCjHj+29nST/YN6Rs8JQugY=", "narHash": "sha256-HAuZ9X84fuwUcit6NWUoJCjHj+29nST/YN6Rs8JQugY=",
"path": "/nix/store/cga2yb44018g17npdxr7wiacrm17hvrv-source/programs", "path": "/nix/store/drd0wp9x6d08b8qwcrlipm1f83ddmw57-source/programs",
"type": "path" "type": "path"
}, },
"original": { "original": {
"path": "/nix/store/cga2yb44018g17npdxr7wiacrm17hvrv-source/programs", "path": "/nix/store/drd0wp9x6d08b8qwcrlipm1f83ddmw57-source/programs",
"type": "path" "type": "path"
} }
}, },
@@ -2142,11 +2142,11 @@
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-0Ztx5DVQ2I7hvCK/qjGa4XTdRgbzM8rhf19m0al8lVM=", "narHash": "sha256-0Ztx5DVQ2I7hvCK/qjGa4XTdRgbzM8rhf19m0al8lVM=",
"path": "/nix/store/cga2yb44018g17npdxr7wiacrm17hvrv-source/services/sddm", "path": "/nix/store/drd0wp9x6d08b8qwcrlipm1f83ddmw57-source/services/sddm",
"type": "path" "type": "path"
}, },
"original": { "original": {
"path": "/nix/store/cga2yb44018g17npdxr7wiacrm17hvrv-source/services/sddm", "path": "/nix/store/drd0wp9x6d08b8qwcrlipm1f83ddmw57-source/services/sddm",
"type": "path" "type": "path"
} }
}, },
@@ -2213,12 +2213,12 @@
}, },
"locked": { "locked": {
"lastModified": 1, "lastModified": 1,
"narHash": "sha256-JLa53nKNUyh9MKaYxuIz5tcQr1L4eyjs26tRB9GXyww=", "narHash": "sha256-eSNoCPMb96EB8yfn14pGsPCwBSabmOxKTA8Vo/jPVHE=",
"path": "/nix/store/5vngnkzqqbr2mk946bk2jyp7khrq0z5s-source/system-config", "path": "/nix/store/5bj7fdgfpap72j7smprhlbaxlicqdad0-source/system-config",
"type": "path" "type": "path"
}, },
"original": { "original": {
"path": "/nix/store/5vngnkzqqbr2mk946bk2jyp7khrq0z5s-source/system-config", "path": "/nix/store/5bj7fdgfpap72j7smprhlbaxlicqdad0-source/system-config",
"type": "path" "type": "path"
} }
}, },

View File

@@ -21,12 +21,12 @@
retries = 5; retries = 5;
timeout = "5s"; timeout = "5s";
}; };
environment = [ environment = {
"POSTGRES_PASSWORD=$${POSTGRES_PASSWORD}" POSTGRES_PASSWORD = "$${POSTGRES_PASSWORD}";
"POSTGRES_USER=$${POSTGRES_USER}" POSTGRES_USER = "$${POSTGRES_USER}";
"POSTGRES_DB=$${POSTGRES_DB}" POSTGRES_DB = "$${POSTGRES_DB}";
]; };
env_file = "/etc/postgres/postgres.env"; env_file = [ "/etc/postgres/postgres.env" ];
networks = [ "backend" ]; networks = [ "backend" ];
}; };
@@ -69,18 +69,18 @@
"traefik.http.routers.authentik.service=authentik" "traefik.http.routers.authentik.service=authentik"
"traefik.http.services.authentik.loadBalancer.server.port=9000" "traefik.http.services.authentik.loadBalancer.server.port=9000"
];*/ ];*/
environment = [ environment = {
"AUTHENTIK_REDIS__HOST=redis" AUTHENTIK_REDIS__HOST = "redis";
"AUTHENTIK_POSTGRESQL__HOST=postgresql" AUTHENTIK_POSTGRESQL__HOST = "postgresql";
"AUTHENTIK_POSTGRESQL__USER=$${POSTGRES_USER}" AUTHENTIK_POSTGRESQL__USER = "$${POSTGRES_USER}";
"AUTHENTIK_POSTGRESQL__NAME=$${POSTGRES_DB}" AUTHENTIK_POSTGRESQL__NAME = "$${POSTGRES_DB}";
"AUTHENTIK_POSTGRESQL__PASSWORD=$${POSTGRES_PASSWORD}" AUTHENTIK_POSTGRESQL__PASSWORD = "$${POSTGRES_PASSWORD}";
"AUTHENTIK_ERROR_REPORTING__ENABLED=true" AUTHENTIK_ERROR_REPORTING__ENABLED = "true";
"AUTHENTIK_SECRET_KEY=$${AUTHENTIK_SECRET_KEY}" AUTHENTIK_SECRET_KEY = "$${AUTHENTIK_SECRET_KEY}";
]; };
depends_on = [ "postgresql" "redis" ]; depends_on = [ "postgresql" "redis" ];
#user = ""; #user = "";
env_file = "/etc/authentik/authentik.env"; env_file = [ "/etc/authentik/authentik.env" ];
networks = [ "backend" "frontend" ]; networks = [ "backend" "frontend" ];
}; };
@@ -90,10 +90,11 @@
command = "worker"; command = "worker";
volumes = [ volumes = [
"/ssd1/Authentik/data/authentik.env:/root/authentik.env" "/ssd1/Authentik/data/authentik.env:/root/authentik.env"
"/var/run/podman/podman.sock:/var/run/docker.sock"
]; ];
depends_on = [ "postgresql" "redis" ]; depends_on = [ "postgresql" "redis" ];
user = "root"; user = "root";
env_file = "/root/authentik.env"; env_file = [ "/root/authentik.env" ];
networks = [ "backend" ]; networks = [ "backend" ];
}; };
}; };

View File

@@ -0,0 +1,35 @@
{ config, lib, inputs, ... }: {
options.sysconfig.opts.virtualization.authentik.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
imports = [
inputs.arion.nixosModules.arion
];
config = lib.mkIf config.sysconfig.opts.virtualization.authentik.enable {
sops.templates."authentik.env" = {
content = ''
POSTGRES_DB=authentik-db
POSTGRES_USER=authentik-admin
POSTGRES_PASSWORD=${config.sops.placeholder."authentik/pass"}
AUTHENTIK_SECRET_KEY=${config.sops.placeholder."authentik/secret_key"}
'';
path = "/ssd1/Authentik/data/authentik.env";
};
virtualisation.arion.backend = "podman-socket";
virtualisation.arion.projects.authentik = {
serviceName = "authentik";
settings = {
imports = [ ./arion-compose.nix ];
};
};
};
}

View File

@@ -1,4 +1,4 @@
{ config, lib, inputs, ... }: { { pkgs, config, lib, inputs, ... }: {
options.sysconfig.opts.virtualization.authentik.enable = lib.options.mkOption { options.sysconfig.opts.virtualization.authentik.enable = lib.options.mkOption {
type = lib.types.bool; type = lib.types.bool;
@@ -19,15 +19,17 @@
AUTHENTIK_SECRET_KEY=${config.sops.placeholder."authentik/secret_key"} AUTHENTIK_SECRET_KEY=${config.sops.placeholder."authentik/secret_key"}
''; '';
path = "/ssd1/Authentik/data/authentik.env"; path = "/home/nathan/Projects/System/system-config/services/containers/authentik/.env";
}; };
virtualisation.arion.projects.authentik = { /*systemd.services.launchAuthentik = {
serviceName = "authentik";
settings = { enable = true;
imports = [ ./arion-compose.nix ];
}; script = ''
}; cd /home/nathan/Projects/System/system-config/services/containers/authentik
${pkgs.docker-compose}/bin/docker-compose up -d
'';
};*/
}; };
} }

View File

@@ -0,0 +1,84 @@
---
services:
postgresql:
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- database:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DB}
env_file:
- .env
redis:
image: docker.io/library/redis:alpine
command: --save 60 1 --loglevel warning
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
start_period: 20s
interval: 30s
retries: 5
timeout: 3s
volumes:
- redis:/data
server:
image: ghcr.io/goauthentik/server:2024.10.1
restart: unless-stopped
command: server
environment:
- AUTHENTIK_REDIS__HOST=redis
- AUTHENTIK_POSTGRESQL__HOST=postgresql
- AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER}
- AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB}
- AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD}
- AUTHENTIK_ERROR_REPORTING__ENABLED=true
- AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY}
volumes:
- ./media:/media
- ./custom-templates:/templates
env_file:
- .env
ports:
- "${COMPOSE_PORT_HTTP:-9000}:9000"
- "${COMPOSE_PORT_HTTPS:-9443}:9443"
depends_on:
- postgresql
- redis
worker:
image: ghcr.io/goauthentik/server:2024.10.1
restart: unless-stopped
command: worker
environment:
- AUTHENTIK_REDIS__HOST=redis
- AUTHENTIK_POSTGRESQL__HOST=postgresql
- AUTHENTIK_POSTGRESQL__USER=${POSTGRES_USER}
- AUTHENTIK_POSTGRESQL__NAME=${POSTGRES_DB}
- AUTHENTIK_POSTGRESQL__PASSWORD=${POSTGRES_PASSWORD}
- AUTHENTIK_ERROR_REPORTING__ENABLED=true
- AUTHENTIK_SECRET_KEY=${AUTHENTIK_SECRET_KEY}
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./media:/media
- ./certs:/certs
- ./custom-templates:/templates
env_file:
- .env
depends_on:
- postgresql
- redis
volumes:
database:
driver: local
redis:
driver: local