Files
ebook-extension/GITEA_COOLIFY_SETUP.md

11 KiB

🔧 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:

# 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

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

# 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

# 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:

# 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:
    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

curl https://ebook.vasa-domena.sk/health

Očakávaný výstup:

{
  "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

# 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:

# 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

# Lokálne na vašom počítači
cd /home/richardtekula/Documents/WORK/extension/Ebook_System/ebook_extension

nano config.js

Zmeňte:

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á

# 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

# 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

# V Coolify dashboarde
Logs → Real-time view

# Alebo cez SSH
ssh user@coolify-server.sk
docker logs -f <container-name>

Backup Databázy

# 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! 🎉