thecr3w-dev/SERVER_INSTALL_GUIDE.md

106 lines
2.9 KiB
Markdown

# THECR3W-DEV — INSTRUKCJA WGRANIA I WDROŻENIA NA SERWERZE
## Środowisko: Netcup VPS (IP: 89.58.46.176)
Paczka `thecr3w-dev-deploy.zip` zawiera kompletny kod źródłowy platformy, skrypty instalacji i konfiguracji, kontenery Docker oraz szablony integracji z Caddy i Keycloak.
---
## Krok 1: Przesłanie paczki ZIP na serwer
W terminalu lokalnym (PowerShell lub Linux/macOS) wykonaj:
```bash
scp thecr3w-dev-deploy.zip root@89.58.46.176:/opt/
```
*(lub użyj programu WinSCP / FileZilla z protokołem SFTP).*
---
## Krok 2: Rozpakowanie na serwerze
Zaloguj się na serwer przez SSH:
```bash
ssh root@89.58.46.176
```
Przejdź do katalogu `/opt` i rozpakuj paczkę:
```bash
cd /opt
unzip thecr3w-dev-deploy.zip -d thecr3w
cd /opt/thecr3w
```
Nadaj uprawnienia wykonywania skryptom:
```bash
chmod +x deploy.sh scripts/*.sh
```
---
## Krok 3: Konfiguracja zmiennych (Opcjonalnie)
Przejrzyj plik `.env` (jeśli nie istnieje, skrypt `deploy.sh` utworzy go automatycznie z `.env.example` i wygeneruje silne hasło bazy PostgreSQL):
```bash
cp -n .env.example .env
nano .env
```
W `.env` możesz uzupełnić:
- `R2_ACCESS_KEY_ID=` (klucz Cloudflare R2)
- `R2_SECRET_ACCESS_KEY=` (sekret Cloudflare R2)
---
## Krok 4: Uruchomienie budowania i instalacji
Uruchom główny skrypt wdrożeniowy:
```bash
./deploy.sh
```
Skrypt automatycznie:
1. Zweryfikuje obecność Dockera i sieci `proxy`.
2. Zbuduje lokalnie na serwerze obrazy kontenerów (`thecr3w-backend`, `thecr3w-download-center`, `thecr3w-admin-panel`).
3. Uruchomi dedykowany kontener PostgreSQL 16 (`thecr3w-postgres`) i zainicjalizuje strukturę tabel oraz indeksów.
4. Uruchomi backend i frontendy w sieci `proxy`.
5. Sprawdzi stan usług testem healthcheck (`http://localhost:5000/health`).
---
## Krok 5: Aktywacja domen w Caddy (Zero-Downtime)
Aby podpiąć domeny `app.thecr3wnet.com` oraz `download.thecr3wnet.com` bez przerywania działania innych usług (w tym istniejącego Keycloak czy aplikacji na `thecr3wnet.com`), uruchom:
```bash
./scripts/update_caddy.sh
```
Skrypt:
1. Utworzy kopię zapasową `/opt/proxy/Caddyfile.bak_<data>`.
2. Dopisze bezpiecznie bloki reverse proxy dla TheCr3w.
3. Przeprowadzi walidację składni w kontenerze `caddy`.
4. Przeładuje Caddy w trybie zero-downtime (`caddy reload`).
---
## Krok 6: Weryfikacja działania
Po zakończeniu sprawdź działanie w przeglądarce:
- **The Cr3w Download Center:** `https://download.thecr3wnet.com`
- **Native Update API (Health):** `https://app.thecr3wnet.com/health`
- **Native Update API (OpenAPI spec):** `https://app.thecr3wnet.com/api/v1/apps`
---
## Przydatne polecenia utrzymaniowe
```bash
# Podgląd stanu kontenerów TheCr3w:
docker ps --filter "name=thecr3w"
# Podgląd logów backendu w czasie rzeczywistym:
docker logs -f thecr3w-backend
# Restart całego stacku TheCr3w:
docker compose restart
# Zatrzymanie stacku:
docker compose down
```