Deploy authentik & outline
This commit is contained in:
parent
8ccad96006
commit
06c4f9c721
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, config, ... }: {
|
{ pkgs, config, lib, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
@ -22,8 +22,12 @@
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
|
|
||||||
|
docker-compose
|
||||||
];
|
];
|
||||||
|
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
services.do-agent.enable = true;
|
services.do-agent.enable = true;
|
||||||
|
|
||||||
system.autoUpgrade = {
|
system.autoUpgrade = {
|
||||||
|
@ -91,5 +95,66 @@
|
||||||
# Writefreely
|
# Writefreely
|
||||||
cloud.writefreely.enable = true;
|
cloud.writefreely.enable = true;
|
||||||
|
|
||||||
|
# Authentik (running under docker-compose T_T)
|
||||||
|
cloud.traefik.hosts.authentik = { host = "auth.dtth.ch"; port = 9480; };
|
||||||
|
|
||||||
|
# Outline
|
||||||
|
sops.secrets.minio-secret-key = { };
|
||||||
|
sops.secrets.authentik-oidc-client-secret = { owner = "outline"; };
|
||||||
|
services.outline = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.outline.overrideAttrs (attrs: rec {
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "outline";
|
||||||
|
repo = "outline";
|
||||||
|
rev = "08a471f2306c045ea96b4c838b73ad28d8448875";
|
||||||
|
sha256 = "sha256-HF/E9Spr7mJF8wrSFJv2HmV/wkjmNqmylvWshnvxg3w=";
|
||||||
|
};
|
||||||
|
|
||||||
|
yarnOfflineCache = pkgs.fetchYarnDeps {
|
||||||
|
yarnLock = src + "/yarn.lock";
|
||||||
|
sha256 = "sha256-8sWtN9uE5EUI9sybD1A5xAOq8mqBMQOx2AJ9Pw8i+rM=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
databaseUrl = "postgres://outline:outline@localhost/outline?sslmode=disable";
|
||||||
|
sequelizeArguments = "--env=production-ssl-disabled";
|
||||||
|
redisUrl = "local";
|
||||||
|
publicUrl = "https://wiki.dtth.ch";
|
||||||
|
port = 18729;
|
||||||
|
storage = {
|
||||||
|
accessKey = "minio";
|
||||||
|
secretKeyFile = config.sops.secrets.minio-secret-key.path;
|
||||||
|
region = config.services.minio.region;
|
||||||
|
uploadBucketUrl = "https://s3.dtth.ch";
|
||||||
|
uploadBucketName = "dtth-outline";
|
||||||
|
uploadMaxSize = 50 * 1024 * 1000;
|
||||||
|
};
|
||||||
|
maximumImportSize = 50 * 1024 * 1000;
|
||||||
|
|
||||||
|
oidcAuthentication = {
|
||||||
|
clientId = "3a0c10e00cdcb4a1194315577fa208a747c1a5f7";
|
||||||
|
clientSecretFile = config.sops.secrets.authentik-oidc-client-secret.path;
|
||||||
|
authUrl = "https://auth.dtth.ch/application/o/authorize/";
|
||||||
|
tokenUrl = "https://auth.dtth.ch/application/o/token/";
|
||||||
|
userinfoUrl = "https://auth.dtth.ch/application/o/userinfo/";
|
||||||
|
displayName = "DTTH Account";
|
||||||
|
};
|
||||||
|
|
||||||
|
forceHttps = false;
|
||||||
|
};
|
||||||
|
systemd.services.outline.environment.PGSSLMODE = "disable";
|
||||||
|
cloud.postgresql.databases = [ "outline" ];
|
||||||
|
cloud.traefik.hosts.outline = { host = "wiki.dtth.ch"; port = 18729; };
|
||||||
|
|
||||||
|
# Minio
|
||||||
|
sops.secrets.minio-credentials = { };
|
||||||
|
services.minio = {
|
||||||
|
enable = true;
|
||||||
|
listenAddress = ":61929";
|
||||||
|
consoleAddress = ":62929";
|
||||||
|
rootCredentialsFile = config.sops.secrets.minio-credentials.path;
|
||||||
|
};
|
||||||
|
cloud.traefik.hosts.minio = { host = "s3.dtth.ch"; port = 61929; };
|
||||||
system.stateVersion = "21.11";
|
system.stateVersion = "21.11";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue