# Wdrożenie - videodownloader.naurecki.pl ## Pipeline Push do `main` uruchamia `.gitea/workflows/deploy.yml` na runnerze Gitea (z zamontowanym `docker.sock`). Runner buduje obrazy z `docker-compose.prod.yml` i robi `up -d` na demonie Dockera serwera. Serwis `web` (nginx) słucha na `127.0.0.1:8086`, `api` (NestJS) wewnętrznie + diagnostycznie na `127.0.0.1:3105`. ## Reverse proxy (Apache) - jednorazowo na serwerze Plik `/etc/apache2/sites-available/videodownloader.naurecki.pl.conf`: ```apache ServerName videodownloader.naurecki.pl ProxyPreserveHost On ProxyRequests Off # SSE (log na żywo) wymaga flushowania pakietów ProxyPass / http://127.0.0.1:8086/ flushpackets=on ProxyPassReverse / http://127.0.0.1:8086/ ErrorLog ${APACHE_LOG_DIR}/videodownloader-error.log CustomLog ${APACHE_LOG_DIR}/videodownloader-access.log combined ``` Aktywacja + SSL (Let's Encrypt): ```bash sudo a2enmod proxy proxy_http sudo a2ensite videodownloader.naurecki.pl sudo apache2ctl configtest && sudo systemctl reload apache2 sudo certbot --apache -d videodownloader.naurecki.pl --redirect -n \ --agree-tos -m dariusz@naurecki.pl ``` DNS: `*.naurecki.pl` (wildcard) już wskazuje serwer - bez dodatkowej konfiguracji.