Files
ebook-extension/GITEA_COOLIFY_SETUP.md

515 lines
11 KiB
Markdown

# 🔧 Gitea + Coolify Setup - Kompletný návod
## 📋 Čo budete potrebovať:
- ✅ Gitea server s prístupom
- ✅ Coolify server
- ✅ Projekt pripravený v `/home/richardtekula/Documents/WORK/extension/Ebook_System`
---
## 🌐 KROK 1: Príprava v Gitea
### **1.1 Vytvorte nový repozitár v Gitea**
1. Otvorte Gitea web rozhranie (napr. `https://gitea.vasa-domena.sk`)
2. Prihláste sa
3. Kliknite na **"+"** (New Repository)
4. Nastavte:
```
Repository Name: ebook-system
Visibility: Private (odporúčané)
Initialize: NO (už máte lokálny Git)
```
5. Kliknite **"Create Repository"**
### **1.2 Získajte Git URL**
Po vytvorení uvidíte URL:
```bash
# HTTPS (jednoduché, ale vyžaduje heslo pri každom push)
https://gitea.vasa-domena.sk/vase-meno/ebook-system.git
# SSH (odporúčané - nastavte SSH kľúč)
git@gitea.vasa-domena.sk:vase-meno/ebook-system.git
```
---
## 💻 KROK 2: Lokálna príprava (váš počítač)
### **2.1 Inicializácia Git**
```bash
cd /home/richardtekula/Documents/WORK/extension/Ebook_System
# Skontrolujte či .gitignore existuje
ls -la | grep .gitignore
# Inicializuj Git (ak ešte nie je)
git init
# Nastavte užívateľa (ak ešte nie je)
git config user.name "Vaše Meno"
git config user.email "vas@email.sk"
# Skontrolujte čo bude commitnuté
git status
```
**Dôležité:** `.env` a `ebook_extension/` by mali byť v červenom (untracked) - to je správne!
### **2.2 Prvý Commit**
```bash
# Pridaj všetky súbory (okrem .gitignore výnimiek)
git add .
# Commit
git commit -m "Initial commit: Ebook Translation System
- Docker compose setup
- Backend API (FastAPI)
- Admin frontend (HTML/CSS/JS)
- PostgreSQL databáza
- Kompletná dokumentácia
- Produkčná konfigurácia"
# Skontrolujte commit
git log --oneline
```
### **2.3 Pripojenie na Gitea a Push**
```bash
# Pridaj Gitea remote
git remote add origin https://gitea.vasa-domena.sk/vase-meno/ebook-system.git
# Alebo pre SSH (ak máte nastavený kľúč):
# git remote add origin git@gitea.vasa-domena.sk:vase-meno/ebook-system.git
# Skontrolujte remote
git remote -v
# Premenuj branch na main (ak je master)
git branch -M main
# Push na Gitea
git push -u origin main
```
**Pri prvom push cez HTTPS:**
- Zadajte Gitea username
- Zadajte Gitea password (alebo Personal Access Token)
**Tip:** Pre SSH setup pozrite návod nižšie.
---
## 🚀 KROK 3: Nastavenie v Coolify
### **3.1 Pridanie Git Source (jednorazovo)**
Ak ešte nemáte Gitea pripojenú v Coolify:
1. V Coolify prejdite na **"Sources"**
2. Kliknite **"+ Add"**
3. Vyberte **"Gitea"**
4. Vyplňte:
```
Name: My Gitea
API URL: https://gitea.vasa-domena.sk/api/v1
HTML URL: https://gitea.vasa-domena.sk
```
5. **Personal Access Token:**
- V Gitea: Settings → Applications → Generate New Token
- Permissions: `repo` (read)
- Skopírujte token
- Vložte do Coolify
6. Kliknite **"Save"**
### **3.2 Vytvorenie nového Resource**
1. V Coolify kliknite **"+ New Resource"**
2. Vyberte **"Docker Compose"**
3. Vyplňte:
**Source Settings:**
```
Git Source: My Gitea (vybraté vyššie)
Repository: vase-meno/ebook-system
Branch: main
Auto Deploy: ON (automatický deployment pri push)
```
**Build Settings:**
```
Build Pack: Docker Compose
Docker Compose Location: docker-compose.yml
Base Directory: /
```
### **3.3 Environment Variables**
Kliknite na **"Environment"** a pridajte:
```bash
# Database
POSTGRES_DB=ebook_prod
POSTGRES_USER=ebook_user
POSTGRES_PASSWORD=VaseSilneHeslo123!@#$%
DATABASE_URL=postgresql://ebook_user:VaseSilneHeslo123!@#$%@postgres:5432/ebook_prod
# Security
SECRET_KEY=VYGENERUJTE-NOVY-32-ZNAKOVY-KLUC
DEBUG=false
ENVIRONMENT=production
# Admin
ADMIN_USERNAME=admin
ADMIN_PASSWORD=VaseAdminHeslo123!@#$%
# CORS (zmeňte na vašu doménu!)
CORS_ORIGINS=https://ebook.vasa-domena.sk
TRUSTED_HOSTS=ebook.vasa-domena.sk
# Application
APP_NAME=Ebook Translation System
APP_VERSION=1.0.0
LOG_LEVEL=WARNING
HOST=0.0.0.0
PORT=8000
WORKERS=4
TZ=Europe/Bratislava
```
**DÔLEŽITÉ:**
- Kliknite na **🔒 ikonu** pri citlivých premenných (heslá!)
- Použite **silné heslá** - min 16 znakov
- Vygenerujte SECRET_KEY:
```bash
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
```
### **3.4 Domain Configuration**
1. Kliknite na **"Domains"**
2. **+ Add Domain**
3. Zadajte:
```
Domain: ebook.vasa-domena.sk
```
4. Zapnite **"Enable SSL/TLS"**
5. Kliknite **"Generate Certificate"** (Let's Encrypt)
**DNS Konfigurácia (u vášho DNS providera):**
```
Type: A
Name: ebook
Value: IP_ADRESA_COOLIFY_SERVERA
TTL: 3600
```
### **3.5 Deploy!**
1. Skontrolujte všetky nastavenia
2. Kliknite **"Deploy"** alebo **"Start"**
3. Sledujte deployment logy v reálnom čase
4. Počkajte 2-5 minút
**Coolify vykoná:**
- ✅ Clone repozitára z Gitea
- ✅ Build Docker image (podľa Dockerfile)
- ✅ Vytvorenie volumes (databáza, logy)
- ✅ Spustenie PostgreSQL kontajnera
- ✅ Inicializácia databázy (admin user)
- ✅ Spustenie Backend kontajnera
- ✅ Nastavenie reverse proxy (Traefik)
- ✅ Vygenerovanie SSL certifikátu
---
## ✅ KROK 4: Overenie Deploymentu
### **4.1 Health Check**
```bash
curl https://ebook.vasa-domena.sk/health
```
**Očakávaný výstup:**
```json
{
"status": "healthy",
"timestamp": 1736612345.67,
"version": "1.0.0",
"environment": "production",
"database_status": "connected"
}
```
### **4.2 Admin Panel Login**
1. Otvorte: `https://ebook.vasa-domena.sk/login`
2. Prihláste sa:
- Username: `admin`
- Password: Vaše `ADMIN_PASSWORD` z Environment Variables
3. Mali by ste vidieť dashboard
### **4.3 Test funkcionalita**
1. **Generovanie kupónu:**
- Generate → Single → Generate
- Skontrolujte či sa vytvoril
2. **Nahranie translation file:**
- Translation Upload → Vyberte Excel
- Upload → Success
---
## 🔄 KROK 5: Workflow Pre Budúce Zmeny
### **Vývoj lokálne → Push → Auto-deploy**
```bash
# 1. Urobte zmeny v kóde lokálne
cd /home/richardtekula/Documents/WORK/extension/Ebook_System
# ... editujte súbory ...
# 2. Commit zmeny
git add .
git commit -m "Feature: Pridaná nová funkcia XYZ"
# 3. Push na Gitea
git push origin main
# 4. Coolify automaticky detekuje push a spustí redeploy!
# Sledujte logy v Coolify dashboarde
```
**Auto-deploy** znamená že nemusíte robiť nič v Coolify - automaticky sa aktualizuje!
---
## 🔐 Bonus: SSH Setup pre Gitea (Odporúčané)
### **Prečo SSH?**
- ✅ Bezpečnejšie ako HTTPS
- ✅ Nie je potrebné zadávať heslo pri push
- ✅ Rýchlejšie
### **Setup:**
```bash
# 1. Vygenerujte SSH kľúč (ak ešte nemáte)
ssh-keygen -t ed25519 -C "vas@email.sk"
# Enter → Enter → Enter (bez passphrase pre jednoduchosť)
# 2. Zobrazte public key
cat ~/.ssh/id_ed25519.pub
# 3. Skopírujte celý výstup
# 4. V Gitea:
# Settings → SSH / GPG Keys → Add Key
# Vložte kľúč → Save
# 5. Test pripojenia
ssh -T git@gitea.vasa-domena.sk
# Očakávaný výstup: "Hi there, vase-meno! You've successfully authenticated..."
# 6. Zmeňte remote URL na SSH
git remote set-url origin git@gitea.vasa-domena.sk:vase-meno/ebook-system.git
# 7. Test push
git push origin main
# Teraz bez hesla!
```
---
## 📱 KROK 6: Chrome Extension Konfigurácia
Po úspešnom deployi backendu:
### **6.1 Aktualizujte config.js**
```bash
# Lokálne na vašom počítači
cd /home/richardtekula/Documents/WORK/extension/Ebook_System/ebook_extension
nano config.js
```
**Zmeňte:**
```javascript
export const CONFIG = {
API_BASE: "https://ebook.vasa-domena.sk", // ← VAŠA COOLIFY DOMÉNA!
VERIFY_ENDPOINT: "/verify",
TRANSLATIONS_ENDPOINT: "/translations/latest",
// ... zvyšok nechajte
};
```
### **6.2 Načítanie do Chrome**
1. Chrome: `chrome://extensions/`
2. Zapnite **"Developer mode"**
3. **"Load unpacked"**
4. Vyberte: `/home/richardtekula/Documents/WORK/extension/Ebook_System/ebook_extension/`
5. Hotovo! 🎉
### **6.3 Testovanie**
1. Kliknite na extension icon
2. Zadajte kupón z admin panelu
3. Verify → Malo by to fungovať!
---
## 🛠️ Troubleshooting
### **Problem: Git push zlyhá**
```bash
# Skontrolujte remote
git remote -v
# Skontrolujte branch
git branch
# Skontrolujte či máte commity
git log
# Force push (POZOR: použite len ak viete čo robíte!)
git push -f origin main
```
### **Problem: Coolify nedokáže clonovať repo**
1. Skontrolujte že repozitár je **Public** ALEBO
2. Coolify má správny **Personal Access Token** s `repo` permissions
### **Problem: Deployment zlyhá**
1. **Skontrolujte logy v Coolify:**
- Prejdite na váš resource
- Kliknite **"Logs"**
- Hľadajte červené chyby
2. **Bežné problémy:**
- Chýbajúce environment variables
- Zlá cesta k `docker-compose.yml`
- Port konflikty
- Nedostatok disk space
### **Problem: Health check failuje**
```bash
# SSH do Coolify servera
ssh user@coolify-server.sk
# Nájdite kontajnery
docker ps | grep ebook
# Skontrolujte logy
docker logs <container-id>
# Skontrolujte databázové pripojenie
docker exec <backend-container> python -c "
from sqlalchemy import create_engine
import os
engine = create_engine(os.getenv('DATABASE_URL'))
conn = engine.connect()
print('DB OK')
"
```
---
## 📊 Monitoring a Údržba
### **Sledovanie Deploymentov**
V Coolify:
- **"Deployments"** → História všetkých deploymentov
- Zelená = úspešné
- Červená = zlyhané
- Kliknite na deployment pre detail
### **Logy**
```bash
# V Coolify dashboarde
Logs → Real-time view
# Alebo cez SSH
ssh user@coolify-server.sk
docker logs -f <container-name>
```
### **Backup Databázy**
```bash
# SSH do servera
ssh user@coolify-server.sk
# Nájdite PostgreSQL kontajner
docker ps | grep postgres
# Vytvorte backup
docker exec <postgres-container> pg_dump -U ebook_user ebook_prod > backup_$(date +%Y%m%d).sql
# Stiahnite backup na váš počítač
scp user@coolify-server.sk:backup_*.sql ~/backups/
```
---
## ✅ Checklist
### **Pred deploymentom:**
- [ ] Git inicializovaný v root priečinku
- [ ] `.gitignore` vytvorený
- [ ] Commit vytvorený
- [ ] Push na Gitea úspešný
- [ ] Gitea source pridaná v Coolify
- [ ] Resource vytvorený v Coolify
- [ ] Environment variables nastavené
- [ ] Doména nakonfigurovaná
- [ ] DNS A record vytvorený
### **Po deploymenti:**
- [ ] Health check OK (200 response)
- [ ] Admin login funguje
- [ ] Kupón sa dá vygenerovať
- [ ] Translation file sa dá nahrať
- [ ] SSL certifikát aktívny (zelený zámok)
- [ ] Extension nakonfigurovaný (API_BASE)
- [ ] Extension test úspešný
---
## 🎉 Hotovo!
Váš systém je nasadený cez Gitea + Coolify s automatickým deploymentom!
**Workflow:**
```
Lokálne zmeny → Git commit → Push na Gitea → Auto-deploy v Coolify → Live! 🚀
```
**Potrebujete pomoc?**
- Logy v Coolify
- SSH do servera: `docker logs -f <container>`
- Health check: `curl https://ebook.vasa-domena.sk/health`
---
**Happy coding! 🎉**