68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, ... }:
 | |
| 
 | |
| let
 | |
|   vars = import ../vars.nix;
 | |
|   psql_path = "${vars.primary_db}/postgresql";
 | |
| in
 | |
| {
 | |
|   virtualisation.oci-containers.containers = {
 | |
|     postgres = {
 | |
|       image = "postgres:16";
 | |
|       user = "600:600";
 | |
|       volumes = [
 | |
|         "${psql_path}/primary_new:/var/lib/postgresql/data"
 | |
|         "${psql_path}/pg_archives:/opt/pg_archives"
 | |
|       ];
 | |
|       log-driver = "local";
 | |
|       extraOptions = [
 | |
|         "--network=postgres-net"
 | |
|         "--health-cmd='pg_isready -U firefly'"
 | |
|         "--health-interval=1s"
 | |
|         "--health-timeout=5s"
 | |
|         "--health-retries=15"
 | |
|         "--shm-size=1gb"
 | |
|         "--restart=always"
 | |
|       ];
 | |
|       environmentFiles = [ config.sops.secrets."docker/pg".path ];
 | |
|     };
 | |
| 
 | |
|     postgres-secondary = {
 | |
|       image = "postgres:16";
 | |
|       user = "600:600";
 | |
|       volumes = [
 | |
|         "${psql_path}/secondary_new:/var/lib/postgresql/data"
 | |
|         "${psql_path}/pg_archives:/opt/pg_archives"
 | |
|       ];
 | |
|       log-driver = "local";
 | |
|       extraOptions = [
 | |
|         "--network=postgres-net"
 | |
|         "--health-cmd='pg_isready -U firefly'"
 | |
|         "--health-interval=1s"
 | |
|         "--health-timeout=5s"
 | |
|         "--health-retries=15"
 | |
|         "--shm-size=1gb"
 | |
|         "--restart=always"
 | |
|       ];
 | |
|       environmentFiles = [ config.sops.secrets."docker/pg".path ];
 | |
|     };
 | |
| 
 | |
|     postgres-adminer = {
 | |
|       image = "adminer/latest";
 | |
|       user = "600:600";
 | |
|       ports = [ "4191:8080" ];
 | |
|       dependsOn = [ "postgres" ];
 | |
|       extraOptions = [
 | |
|         "--restart=always"
 | |
|         "--network=postgres-net"
 | |
|       ];
 | |
|     };
 | |
|   };
 | |
|   sops = {
 | |
|     defaultSopsFile = ../secrets.yaml;
 | |
|     secrets = {
 | |
|       "docker/pg".owner = "docker-service";
 | |
|     };
 | |
|   };
 | |
| 
 | |
| }
 |