So, i finally got it working on my home lab:
Here is the conf:
<VirtualHost *:80>
ServerName {{DOMAIN_NAME}}
ServerAlias www.{{DOMAIN_NAME}}
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName {{DOMAIN_NAME}}
# SSL Configuration
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/{{DOMAIN_NAME}}/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{{DOMAIN_NAME}}/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# Core Proxy Settings
ProxyPreserveHost On
ProxyRequests Off
SSLProxyEngine On
# WebSocket Upgrade Handling - Critical for Live Logs
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://{{INTERNAL_IP}}:8123/$1 [P,L]
# Explicit WebSocket Endpoint
ProxyPass /api/websocket ws://{{INTERNAL_IP}}:8123/api/websocket
ProxyPassReverse /api/websocket ws://{{INTERNAL_IP}}:8123/api/websocket
# Special Handling for Log Streams
<LocationMatch "/api/hassio/(.*)/logs">
ProxyPass http://{{INTERNAL_IP}}:8123/api/hassio/$1/logs
ProxyPassReverse http://{{INTERNAL_IP}}:8123/api/hassio/$1/logs
# Disable all buffering
SetEnv proxy-sendchunked 1
SetEnv proxy-chain-auth On
RequestHeader set Connection "keep-alive"
Header set X-Accel-Buffering "no"
Header set Cache-Control "no-cache"
Header set Content-Type "text/event-stream"
</LocationMatch>
# Main Proxy Pass
ProxyPass / http://{{INTERNAL_IP}}:8123/
ProxyPassReverse / http://{{INTERNAL_IP}}:8123/
# Required Headers
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Host "{{DOMAIN_NAME}}"
</VirtualHost>