<IfModule mod_ssl.c>
<VirtualHost your-part.de:443>
    ServerAdmin webmaster@your-part.de
    ServerName your-part.de
    ServerAlias www.your-part.de

    DocumentRoot /opt/yourpart/frontend/dist

    DirectoryIndex index.html

    # Frontend statische Dateien
    <Directory "/opt/yourpart/frontend/dist">
        AllowOverride None
        Options -Indexes +FollowSymLinks
        Require all granted
        
        # Fallback für Vue Router
        FallbackResource /index.html
    </Directory>

    # www Redirect (muss zuerst kommen)
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =your-part.de
    RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    
    # Proxy-Einstellungen
    ProxyPreserveHost On
    ProxyRequests Off
    RequestHeader set X-Forwarded-Proto "https"
    AllowEncodedSlashes NoDecode
    
    # API-Requests an Backend weiterleiten
    ProxyPass "/api/" "http://localhost:2020/api/"
    ProxyPassReverse "/api/" "http://localhost:2020/api/"
    
    # Socket.io: WebSocket und HTTP-Polling mit Location-Blöcken
    <LocationMatch "^/socket.io/">
        # WebSocket-Upgrade
        RewriteEngine on
        RewriteCond %{HTTP:Upgrade} websocket [NC]
        RewriteCond %{HTTP:Connection} upgrade [NC]
        RewriteRule .* "ws://localhost:2020%{REQUEST_URI}" [P,L]
        
        # HTTP-Fallback für Polling
        ProxyPass "http://localhost:2020/socket.io/"
        ProxyPassReverse "http://localhost:2020/socket.io/"
    </LocationMatch>
    
    # Daemon: WebSocket mit Location-Block
    <LocationMatch "^/ws/">
        # WebSocket-Upgrade
        RewriteEngine on
        RewriteCond %{HTTP:Upgrade} websocket [NC]
        RewriteCond %{HTTP:Connection} upgrade [NC]
        RewriteRule .* "ws://localhost:4551%{REQUEST_URI}" [P,L]
        
        # HTTP-Fallback (sollte eigentlich nicht benötigt werden)
        ProxyPass "http://localhost:4551/"
        ProxyPassReverse "http://localhost:4551/"
    </LocationMatch>

    ErrorLog /var/log/apache2/yourpart.error.log
    CustomLog /var/log/apache2/yourpart.access.log combined

    HostnameLookups Off
    UseCanonicalName Off
    ServerSignature On

    # SSL-Konfiguration
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.your-part.de/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.your-part.de/privkey.pem
</VirtualHost>
</IfModule>
