| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  | { config, ... }: | 
					
						
							| 
									
										
										
										
											2024-08-15 23:35:11 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  |   vars = import ../vars.nix; | 
					
						
							|  |  |  |   nextcloud_path = vars.primary_nextcloud; | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |   redis_path = vars.primary_redis; | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 00:08:32 -04:00
										 |  |  |   # nextcloud-image = import ./nextcloud-image { inherit pkgs; }; | 
					
						
							|  |  |  |   nextcloud-base = { | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |     # image comes from running docker compose build in nextcloud-docker/.examples/full/apache | 
					
						
							| 
									
										
										
										
											2025-03-02 17:22:34 -05:00
										 |  |  |     image = "nextcloud-nextcloud"; | 
					
						
							| 
									
										
										
										
											2025-06-15 16:13:04 -04:00
										 |  |  |     # pull = "always"; | 
					
						
							|  |  |  |     # do NOT enable pull here, this image is generated based on a custom docker image | 
					
						
							| 
									
										
										
										
											2024-08-16 00:08:32 -04:00
										 |  |  |     hostname = "nextcloud"; | 
					
						
							|  |  |  |     volumes = [ | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  |       "${nextcloud_path}/nc_data:/var/www/html:z" | 
					
						
							|  |  |  |       "${nextcloud_path}/nc_php:/usr/local/etc/php" | 
					
						
							|  |  |  |       "${nextcloud_path}/nc_prehooks:/docker-entrypoint-hooks.d/before-starting" | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |       #"${nextcloud_path}/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro" | 
					
						
							| 
									
										
										
										
											2024-08-16 00:08:32 -04:00
										 |  |  |     ]; | 
					
						
							|  |  |  |     extraOptions = [ | 
					
						
							|  |  |  |       "--network=haproxy-net" | 
					
						
							|  |  |  |       "--network=postgres-net" | 
					
						
							|  |  |  |       "--network=nextcloud_default" | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  |     dependsOn = [ "redis" ]; | 
					
						
							|  |  |  |     environmentFiles = [ config.sops.secrets."docker/nextcloud".path ]; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:35:11 -04:00
										 |  |  | in | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   virtualisation.oci-containers.containers = { | 
					
						
							| 
									
										
										
										
											2024-08-16 00:08:32 -04:00
										 |  |  |     nextcloud = nextcloud-base // { | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |       ports = [ "9999:80" ]; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:08:32 -04:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |     redis = { | 
					
						
							|  |  |  |       image = "redis:latest"; | 
					
						
							| 
									
										
										
										
											2025-06-01 18:36:37 -04:00
										 |  |  |       pull = "always"; | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |       user = "600:600"; | 
					
						
							|  |  |  |       volumes = [ | 
					
						
							|  |  |  |         "${config.sops.secrets."docker/redis".path}:/usr/local/etc/redis/redis.conf" | 
					
						
							|  |  |  |         "${redis_path}:/data" | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |       extraOptions = [ | 
					
						
							|  |  |  |         "--network=nextcloud_default" | 
					
						
							|  |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |       cmd = [ | 
					
						
							|  |  |  |         "redis-server" | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |         "/usr/local/etc/redis/redis.conf" | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |       ]; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     go-vod = { | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       image = "radialapps/go-vod:latest"; | 
					
						
							| 
									
										
										
										
											2025-06-01 18:35:15 -04:00
										 |  |  |       pull = "always"; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |       dependsOn = [ "nextcloud" ]; | 
					
						
							|  |  |  |       environment = { | 
					
						
							|  |  |  |         NEXTCLOUD_HOST = "https://nextcloud.alicehuston.xyz"; | 
					
						
							|  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  |       volumes = [ "${nextcloud_path}/nc_data:/var/www/html:ro" ]; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |       extraOptions = [ | 
					
						
							|  |  |  |         "--device=/dev/dri:/dev/dri" | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |     collabora-code = { | 
					
						
							|  |  |  |       image = "collabora/code:latest"; | 
					
						
							| 
									
										
										
										
											2025-06-01 18:35:15 -04:00
										 |  |  |       pull = "always"; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       dependsOn = [ "nextcloud" ]; | 
					
						
							|  |  |  |       environment = { | 
					
						
							| 
									
										
										
										
											2025-03-02 17:57:13 -05:00
										 |  |  |         aliasgroup1 = "https://collabora.nayenoie.com:443"; | 
					
						
							|  |  |  |         aliasgroup2 = "https://nextcloud.alicehuston.xyz:443"; | 
					
						
							|  |  |  |         aliasgroup3 = "https://.*:443"; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:49:00 -05:00
										 |  |  |         extra_params = "--o:ssl.enable=false --o:ssl.termination=true"; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       }; | 
					
						
							|  |  |  |       environmentFiles = [ | 
					
						
							|  |  |  |         config.sops.secrets."docker/collabora".path | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |       extraOptions = [ | 
					
						
							|  |  |  |         "--network=haproxy-net" | 
					
						
							| 
									
										
										
										
											2025-03-02 19:53:42 -05:00
										 |  |  |         "--privileged" | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2025-03-02 19:53:42 -05:00
										 |  |  |       ports = [ "9980:9980" ]; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |   users.users.www-data = { | 
					
						
							|  |  |  |     uid = 33; | 
					
						
							|  |  |  |     isSystemUser = true; | 
					
						
							|  |  |  |     group = "www-data"; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   users.groups.www-data = { | 
					
						
							|  |  |  |     gid = 33; | 
					
						
							|  |  |  |     members = [ "www-data" ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-15 23:39:19 -04:00
										 |  |  |   sops = { | 
					
						
							|  |  |  |     defaultSopsFile = ../secrets.yaml; | 
					
						
							|  |  |  |     secrets = { | 
					
						
							| 
									
										
										
										
											2024-11-02 23:59:38 -04:00
										 |  |  |       "docker/redis" = { | 
					
						
							|  |  |  |         owner = "docker-service"; | 
					
						
							|  |  |  |         restartUnits = [ "docker-redis.service" ]; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |       "docker/nextcloud" = { | 
					
						
							|  |  |  |         owner = "www-data"; | 
					
						
							|  |  |  |         restartUnits = [ "docker-nextcloud.service" ]; | 
					
						
							|  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       "docker/collabora" = { | 
					
						
							|  |  |  |         owner = "www-data"; | 
					
						
							| 
									
										
										
										
											2025-03-18 19:18:02 -04:00
										 |  |  |         restartUnits = [ "docker-collabora-code.service" ]; | 
					
						
							| 
									
										
										
										
											2025-03-02 17:15:15 -05:00
										 |  |  |       }; | 
					
						
							| 
									
										
										
										
											2024-08-15 23:35:11 -04:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |