nix-config/hosts/franz/arion/wiki/arion-compose.nix
2024-11-11 17:21:51 +01:00

78 lines
2.1 KiB
Nix

{
project.name = "wiki";
networks.dmz = {
name = "dmz";
external = true;
};
networks.internal = {};
services = {
outline.service = {
image = "docker.getoutline.com/outlinewiki/outline:0.77.2";
container_name = "outline";
labels = {
"traefik.enable" = "true";
"traefik.http.services.outline.loadbalancer.server.port" = "3000";
"traefik.http.routers.outline.service" = "outline";
"traefik.http.routers.outline.rule" = "Host(`wiki.ghoscht.com`)";
"traefik.http.routers.outline.entrypoints" = "websecure";
"traefik.http.routers.outline.tls" = "true";
"traefik.http.routers.outline.tls.certresolver" = "letsencrypt";
};
environment = {
NODE_ENV = "production";
PGSSLMODE = "disable";
REDIS_URL = "redis://redis:6379";
URL = "https://wiki.ghoscht.com";
PORT = 3000;
OIDC_AUTH_URI = "https://auth.ghoscht.com/application/o/authorize/";
OIDC_TOKEN_URI = "https://auth.ghoscht.com/application/o/token/";
OIDC_USERINFO_URI = "https://auth.ghoscht.com/application/o/userinfo/";
AWS_REGION = "local";
AWS_S3_UPLOAD_BUCKET_URL = "https://files.ghoscht.com";
AWS_S3_UPLOAD_BUCKET_NAME = "outline";
AWS_S3_UPLOAD_MAX_SIZE = 26214400;
AWS_S3_FORCE_PATH_STYLE = "true";
AWS_S3_ACL = "private";
};
env_file = [
"/home/ghoscht/.docker/wiki/outline.env"
];
restart = "always";
networks = [
"dmz"
"internal"
];
};
redis.service = {
image = "redis:7.2.4";
command = "--save 60 1 --loglevel warning";
restart = "always";
volumes = [
"/home/ghoscht/.docker/wiki/redis_data:/data"
];
networks = [
"internal"
];
};
postgres.service = {
image = "postgres:12.18";
restart = "always";
volumes = [
"/home/ghoscht/.docker/wiki/postgres_data:/var/lib/postgresql/data"
];
networks = [
"internal"
];
env_file = [
"/home/ghoscht/.docker/wiki/postgres.env"
];
};
};
}