Deployment hinzugefügt
+96
@@ -0,0 +1,96 @@
|
||||
# Deployment
|
||||
|
||||
## Überblick
|
||||
|
||||
Der Production Build wird via `rsync` auf den Synology NAS übertragen und dort von einem `nginx:stable-alpine`-Container ausgeliefert.
|
||||
|
||||
```
|
||||
ng build → dist/ → rsync → NAS → nginx-Container → NPM
|
||||
```
|
||||
|
||||
## deploy.sh
|
||||
|
||||
Im Projektroot liegt `deploy.sh` — führt Build und Deploy in einem Schritt aus:
|
||||
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
Inhalt:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "==> Build..."
|
||||
ng build
|
||||
|
||||
echo "==> Deploy..."
|
||||
rsync -av --delete dist/ang-university-httpclient/browser/ \
|
||||
hans@nas.neugasse.lan:/volume1/docker/landingpage/dist/
|
||||
|
||||
echo "==> Fertig."
|
||||
```
|
||||
|
||||
`--delete` sorgt dafür dass veraltete Bundle-Dateien (Hash-basierte Dateinamen) auf dem NAS entfernt werden.
|
||||
|
||||
## Manueller Build
|
||||
|
||||
```bash
|
||||
# Production Build (defaultConfiguration ist bereits "production")
|
||||
ng build
|
||||
|
||||
# Output prüfen
|
||||
ls dist/ang-university-httpclient/browser/
|
||||
|
||||
# Alte URL darf nicht mehr im Build vorkommen
|
||||
grep -r "directus.neugasse.lan" dist/
|
||||
# Erwartet: keine Treffer
|
||||
```
|
||||
|
||||
## Manuelles Deploy
|
||||
|
||||
```bash
|
||||
rsync -av --delete dist/ang-university-httpclient/browser/ \
|
||||
hans@nas.neugasse.lan:/volume1/docker/landingpage/dist/
|
||||
```
|
||||
|
||||
## Docker-Container
|
||||
|
||||
Der nginx-Container wird einmalig gestartet und läuft dauerhaft.
|
||||
Nach einem Deploy muss der Container **nicht** neu gestartet werden — rsync schreibt direkt ins gemountete Volume.
|
||||
|
||||
```bash
|
||||
# Erststart
|
||||
cd webserver-docker
|
||||
docker compose up -d
|
||||
|
||||
# Status prüfen
|
||||
docker compose ps
|
||||
|
||||
# Logs
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
### docker-compose.yml (Kurzübersicht)
|
||||
|
||||
```yaml
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:stable-alpine
|
||||
ports:
|
||||
- "9999:80"
|
||||
volumes:
|
||||
- ./dist:/usr/share/nginx/html:ro
|
||||
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
```
|
||||
|
||||
## Nach dem Deploy testen
|
||||
|
||||
```bash
|
||||
# API über NPM-Proxy prüfen
|
||||
curl http://home.neugasse.lan/api/items/landingpage | python3 -m json.tool | head -10
|
||||
|
||||
# Browser: Hard Reload um Cache zu leeren
|
||||
# Firefox / Chrome: Ctrl + Shift + R
|
||||
```
|
||||
Reference in New Issue
Block a user