feat: configure Coolify deployment for production

- Fix docker-compose.yml for production: use postgres:15-alpine, remove
  container names, remove postgres external port, set FRONTEND_URL to
  server IP, use empty VITE_API_URL for nginx proxy
- Add production server CORS origins to backend
- Add deploy job to GitHub Actions CI/CD pipeline

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
furkanyigit34
2026-03-07 17:45:01 +03:00
parent 0d908a1afe
commit 0079313708
3 changed files with 21 additions and 12 deletions

View File

@@ -199,3 +199,17 @@ jobs:
- name: Cleanup
if: always()
run: docker compose -f docker-compose.test.yml down -v
# Deploy to Coolify (only on main push)
deploy:
name: Deploy to Coolify
runs-on: ubuntu-latest
needs: [docker-build, integration]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- name: Trigger Coolify Deployment
run: |
curl -X POST "${{ secrets.COOLIFY_WEBHOOK }}" \
-H "Authorization: Bearer ${{ secrets.COOLIFY_TOKEN }}" \
--fail --max-time 30

View File

@@ -282,6 +282,9 @@ allowed_origins = [
"http://localhost:8080",
"http://127.0.0.1:80",
"http://127.0.0.1:8080",
# Production server (Coolify)
"http://194.187.253.230:3010",
"http://194.187.253.230",
]
# Add production domain from environment variable

View File

@@ -5,8 +5,7 @@ services:
# PostgreSQL Database
# ============================================
postgres:
image: trendyol-postgres:15-alpine
container_name: trendyol-postgres
image: postgres:15-alpine
restart: unless-stopped
environment:
@@ -14,9 +13,6 @@ services:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: trendyol123
ports:
- "5410:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
@@ -33,11 +29,9 @@ services:
# Backend Service (FastAPI + PostgreSQL)
# ============================================
backend:
image: trendyol-analiz-backend:latest
build:
context: ./backend
dockerfile: Dockerfile
container_name: trendyol-backend
restart: unless-stopped
ports:
@@ -55,7 +49,7 @@ services:
REPORTS_DIR: /data/reports
# CORS configuration (allow frontend container)
FRONTEND_URL: http://localhost:3010
FRONTEND_URL: http://194.187.253.230:3010
volumes:
# Persistent data volumes
@@ -80,14 +74,12 @@ services:
# Frontend Service (React + Nginx)
# ============================================
frontend:
image: trendyol-analiz-frontend:latest
build:
context: ./admin-panel
dockerfile: Dockerfile
args:
# API URL baked into production build
VITE_API_URL: http://localhost:8010
container_name: trendyol-frontend
# Empty = relative URL, nginx proxy handles /api/ routing
VITE_API_URL: ""
restart: unless-stopped
ports: