Make gitlab use remote postgres

This commit is contained in:
Greg Hellings
2025-06-11 21:29:20 -05:00
parent 963757171a
commit e13bee750c
3 changed files with 40 additions and 62 deletions
+39 -62
View File
@@ -33,6 +33,7 @@ in
gitlab-secret = cfg "secret"; gitlab-secret = cfg "secret";
gitlab-otp = cfg "otp"; gitlab-otp = cfg "otp";
gitlab-db = cfg "db"; gitlab-db = cfg "db";
gitlab-db-password = cfg "db-password";
gitlab-jws = cfg "jws"; gitlab-jws = cfg "jws";
gitlab-key = cfg "key"; gitlab-key = cfg "key";
gitlab-cert = cfg "cert"; gitlab-cert = cfg "cert";
@@ -105,9 +106,11 @@ in
keepTime = 288; keepTime = 288;
startAt = [ "03:00" ]; startAt = [ "03:00" ];
}; };
host = "src.thehellings.com"; databaseHost = "postgres.kubernetes";
https = true; databaseName = "gitlab";
port = 443; databaseUsername = "gitlab";
databasePasswordFile = config.age.secrets.gitlab-db-password.path;
databaseCreateLocally = false;
extraConfig = { extraConfig = {
gitlab = { gitlab = {
trustedProxies = [ trustedProxies = [
@@ -115,37 +118,6 @@ in
"100.115.57.8/32" # Public server's IP "100.115.57.8/32" # Public server's IP
]; ];
}; };
};
initialRootEmail = "greg@thehellings.com";
initialRootPasswordFile = pkgs.writeText "initialRootPassword" "root_password";
pages = {
enable = true;
settings.pages-domain = "pages.thehellings.com";
};
puma = {
threadsMax = 6;
threadsMin = 2;
workers = 6;
};
redisUrl = "unix:${config.services.redis.servers.gitlab.unixSocket}";
registry = {
enable = true;
certFile = config.age.secrets.gitlab-cert.path;
keyFile = config.age.secrets.gitlab-key.path;
externalAddress = "registry.thehellings.com";
externalPort = 443;
};
secrets = {
activeRecordDeterministicKeyFile = config.age.secrets.gitlab-deterministic-key.path;
activeRecordPrimaryKeyFile = config.age.secrets.gitlab-primary-key.path;
activeRecordSaltFile = config.age.secrets.gitlab-salt.path;
dbFile = config.age.secrets.gitlab-db.path;
jwsFile = config.age.secrets.gitlab-jws.path;
otpFile = config.age.secrets.gitlab-otp.path;
secretFile = config.age.secrets.gitlab-secret.path;
};
extraConfig = {
object_store = { object_store = {
enabled = true; enabled = true;
proxy_download = true; # Tell them to reach out to object storage themselves! proxy_download = true; # Tell them to reach out to object storage themselves!
@@ -182,6 +154,37 @@ in
); );
}; };
}; };
host = "src.thehellings.com";
https = true;
initialRootEmail = "greg@thehellings.com";
initialRootPasswordFile = pkgs.writeText "initialRootPassword" "root_password";
pages = {
enable = true;
settings.pages-domain = "pages.thehellings.com";
};
port = 443;
puma = {
threadsMax = 6;
threadsMin = 2;
workers = 6;
};
redisUrl = "unix:${config.services.redis.servers.gitlab.unixSocket}";
registry = {
enable = true;
certFile = config.age.secrets.gitlab-cert.path;
keyFile = config.age.secrets.gitlab-key.path;
externalAddress = "registry.thehellings.com";
externalPort = 443;
};
secrets = {
activeRecordDeterministicKeyFile = config.age.secrets.gitlab-deterministic-key.path;
activeRecordPrimaryKeyFile = config.age.secrets.gitlab-primary-key.path;
activeRecordSaltFile = config.age.secrets.gitlab-salt.path;
dbFile = config.age.secrets.gitlab-db.path;
jwsFile = config.age.secrets.gitlab-jws.path;
otpFile = config.age.secrets.gitlab-otp.path;
secretFile = config.age.secrets.gitlab-secret.path;
};
}; };
nginx = { nginx = {
@@ -206,42 +209,16 @@ in
}; };
}; };
logrotate = {
enable = true;
settings = {
"/var/lib/postgresql/*/log/*.log" = {
enable = true;
compress = true;
compresscmd = "${pkgs.xz}/bin/xz";
};
};
};
openssh.enable = true; openssh.enable = true;
postgresql = { postgresql.enable = true;
enable = true;
checkConfig = true;
ensureDatabases = [ "gitlab" ];
ensureUsers = [
{
name = "gitlab";
ensureDBOwnership = true;
}
];
settings = {
log_connections = true;
log_statement = "all";
logging_collector = true;
log_filename = "postgresql.log";
};
};
qemuGuest.enable = true; qemuGuest.enable = true;
redis.servers.gitlab = { redis.servers.gitlab = {
enable = true; enable = true;
}; };
resolved.enable = true; resolved.enable = true;
}; };
Binary file not shown.
+1
View File
@@ -87,6 +87,7 @@ in
"gitlab/secret.age".publicKeys = everyone; "gitlab/secret.age".publicKeys = everyone;
"gitlab/otp.age".publicKeys = everyone; "gitlab/otp.age".publicKeys = everyone;
"gitlab/db.age".publicKeys = everyone; "gitlab/db.age".publicKeys = everyone;
"gitlab/db-password.age".publicKeys = everyone;
"gitlab/jws.age".publicKeys = everyone; "gitlab/jws.age".publicKeys = everyone;
# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.crt -days 365 -nodes -subj '/CN=issuer' # openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.crt -days 365 -nodes -subj '/CN=issuer'
# Then pipe the resulting files to agenix -e <foo> # Then pipe the resulting files to agenix -e <foo>