Initial commit: Ebook Translation System with Docker setup
This commit is contained in:
514
GITEA_COOLIFY_SETUP.md
Normal file
514
GITEA_COOLIFY_SETUP.md
Normal file
@@ -0,0 +1,514 @@
|
||||
# 🔧 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! 🎉**
|
||||
Reference in New Issue
Block a user