{ config, ... }: { #Collabora Containers virtualisation.oci-containers.containers.collabora = { image = "docker.io/collabora/code:latest"; ports = [ "9980:9980/tcp" ]; environment = { server_name = "code.cloonar.com"; aliasgroup1 = "https://nextcloud.cloonar.com:443"; aliasgroup2 = "https://cloud.cloonar.com:443"; # Hannes aliasgroup3 = "https://nx67898.your-storageshare.de:443"; aliasgroup4 = "https://hs-cloud.cloonar.com:443"; dictionaries = "en_GB en_US de_DE"; extra_params = "--o:ssl.enable=false --o:ssl.termination=true"; }; extraOptions = [ "--pull=newer" ]; }; services.nginx.virtualHosts.${config.virtualisation.oci-containers.containers.collabora.environment.server_name} = { enableACME = true; forceSSL = true; extraConfig = '' # static files location ^~ /browser { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $host; } # Capabilities location ^~ /hosting/capabilities { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $host; } # main websocket location ~ ^/cool/(.*)/ws$ { proxy_pass http://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/(c|l)ool { proxy_pass http://127.0.0.1:9980; proxy_set_header Host $host; } # Admin Console websocket location ^~ /cool/adminws { proxy_pass http://127.0.0.1:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_read_timeout 36000s; } ''; }; }