# 🔧 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 # Skontrolujte databázové pripojenie docker exec 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 ``` ### **Backup Databázy** ```bash # SSH do servera ssh user@coolify-server.sk # Nájdite PostgreSQL kontajner docker ps | grep postgres # Vytvorte backup docker exec 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 ` - Health check: `curl https://ebook.vasa-domena.sk/health` --- **Happy coding! 🎉**