62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, ... }:
 | |
| let
 | |
|   vars = import ../vars.nix;
 | |
|   unifi_path = "${vars.primary_docker}/unifi-2.0";
 | |
|   mongo_path = "${vars.primary_db}/mongo";
 | |
| in
 | |
| {
 | |
|   virtualisation.oci-containers.containers = {
 | |
|     unifi-controller = {
 | |
|       image = "lscr.io/linuxserver/unifi-network-application:latest";
 | |
|       volumes = [ "${unifi_path}/config:/config" ];
 | |
|       log-driver = "local";
 | |
|       dependsOn = [ "mongodb" ];
 | |
|       extraOptions = [ "--restart=unless-stopped" ];
 | |
|       ports = [
 | |
|         "8443:8443"
 | |
|         "3478:3478/udp"
 | |
|         "10001:10001/udp"
 | |
|         "8080:8080"
 | |
|         "1900:1900/udp" # optional
 | |
|         "8843:8843" # optional
 | |
|         "8880:8880" # optional
 | |
|         "6789:6789" # optional
 | |
|         "5514:5514/udp" # optional
 | |
|       ];
 | |
|       environment = {
 | |
|         PUID = "1000";
 | |
|         PGID = "100";
 | |
|         TZ = "America/New_York";
 | |
|         MEM_LIMIT = "1024"; # optional
 | |
|         MEM_STARTUP = "1024"; # optional
 | |
|         MONGO_USER = "unifi";
 | |
|         MONGO_HOST = "mongodb";
 | |
|         MONGO_PORT = "27017";
 | |
|         MONGO_DBNAME = "unifi";
 | |
|       };
 | |
|       environmentFiles = [ config.sops.secrets."docker/unifi".path ];
 | |
|     };
 | |
| 
 | |
|     mongodb = {
 | |
|       image = "docker.io/mongo:7.0";
 | |
|       environment = {
 | |
|         PUID = "1000";
 | |
|         PGID = "100";
 | |
|         TZ = "America/New_York";
 | |
|       };
 | |
|       extraOptions = [ "--restart=unless-stopped" ];
 | |
|       volumes = [
 | |
|         "${mongo_path}/unifi:/data/db"
 | |
|         "${unifi_path}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"
 | |
|       ];
 | |
|     };
 | |
|   };
 | |
|   sops = {
 | |
|     defaultSopsFile = ../secrets.yaml;
 | |
|     secrets = {
 | |
|       "docker/unifi".owner = "docker-service";
 | |
|     };
 | |
|   };
 | |
| 
 | |
| }
 |