diff --git a/core/archipelago/src/api/rpc/package/config.rs b/core/archipelago/src/api/rpc/package/config.rs index 1bb0ba70..ccefd6fc 100644 --- a/core/archipelago/src/api/rpc/package/config.rs +++ b/core/archipelago/src/api/rpc/package/config.rs @@ -48,12 +48,23 @@ pub(super) fn is_valid_docker_image(image: &str) -> bool { pub(super) fn get_app_capabilities(app_id: &str) -> Vec { match app_id { // Apps that need user switching and file ownership changes - "nextcloud" | "homeassistant" | "home-assistant" | "btcpay-server" | "btcpayserver" + // Home Assistant needs NET_RAW for DHCP discovery + "homeassistant" | "home-assistant" => vec![ + "--cap-add=CHOWN".to_string(), + "--cap-add=FOWNER".to_string(), + "--cap-add=SETUID".to_string(), + "--cap-add=SETGID".to_string(), + "--cap-add=DAC_OVERRIDE".to_string(), + "--cap-add=NET_BIND_SERVICE".to_string(), + "--cap-add=NET_RAW".to_string(), + ], + "nextcloud" | "btcpay-server" | "btcpayserver" | "jellyfin" | "onlyoffice" | "onlyoffice-documentserver" | "portainer" => vec![ "--cap-add=CHOWN".to_string(), "--cap-add=SETUID".to_string(), "--cap-add=SETGID".to_string(), "--cap-add=DAC_OVERRIDE".to_string(), + "--cap-add=NET_BIND_SERVICE".to_string(), ], // Nginx Proxy Manager needs to bind low ports "nginx-proxy-manager" => vec![