515 lines
11 KiB
Markdown
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! 🎉**
|