{
  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"
      ];
    };
  };
}