CONFIG: preparar dockerfile y compose para gitea vps

This commit is contained in:
Nachou-u
2026-09-09 08:35:08 -03:00
parent 29c447c23e
commit d1c4855962
4 changed files with 22 additions and 24 deletions
+3 -3
View File
@@ -1,9 +1,9 @@
# ======================================== # ========================================
# Variables de Entorno (Plantilla) # Variables de Entorno (Plantilla)
# ======================================== # ========================================
DEBUG=True DEBUG=False
SECRET_KEY=django-insecure-r9n6j1_h%@uqoz0bjz^mq=t72o0t*j@84jpl%_i4^qu%&+**u7 SECRET_KEY=coloca_aqui_una_clave_larga_y_secreta
ALLOWED_HOSTS=* ALLOWED_HOSTS=midominio.com,localhost,127.0.0.1
# === CONFIGURACIÓN LOCAL (Para usar start.sh sin Docker) === # === CONFIGURACIÓN LOCAL (Para usar start.sh sin Docker) ===
# Deja estas variables vacías o comentadas para usar SQLite y Memory Channel. # Deja estas variables vacías o comentadas para usar SQLite y Memory Channel.
+7 -2
View File
@@ -23,5 +23,10 @@ COPY . /app/
# Exponer el puerto # Exponer el puerto
EXPOSE 8000 EXPOSE 8000
# Comando por defecto para iniciar Daphne (ASGI) # Crear un usuario no-root por seguridad
CMD ["daphne", "-b", "0.0.0.0", "-p", "8000", "config.asgi:application"] RUN adduser --disabled-password --no-create-home djangouser
RUN chown -R djangouser:djangouser /app
USER djangouser
# Comando por defecto para iniciar Gunicorn con Uvicorn workers (Producción)
CMD ["gunicorn", "config.asgi:application", "-k", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000", "--workers", "3"]
+10 -19
View File
@@ -1,18 +1,6 @@
version: '3.8' version: '3.8'
services: services:
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: efintel_db
POSTGRES_USER: efintel_user
POSTGRES_PASSWORD: efintel_password
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
redis: redis:
image: redis:7-alpine image: redis:7-alpine
ports: ports:
@@ -20,10 +8,12 @@ services:
volumes: volumes:
- redis_data:/data - redis_data:/data
restart: unless-stopped restart: unless-stopped
mem_limit: 512m # Limita Redis a 512MB de memoria RAM
web: web:
build: . build: .
command: daphne -b 0.0.0.0 -p 8000 config.asgi:application # Se sobrescribe el comando para asegurarnos que usa Gunicorn (así esté en el Dockerfile)
command: gunicorn config.asgi:application -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 --workers 3
volumes: volumes:
- .:/app - .:/app
ports: ports:
@@ -31,32 +21,33 @@ services:
env_file: env_file:
- .env - .env
environment: environment:
DATABASE_URL: postgres://efintel_user:efintel_password@db:5432/efintel_db # Ya no conectamos a una DB local, lee el DATABASE_URL del .env
REDIS_URL: redis://redis:6379/0 REDIS_URL: redis://redis:6379/0
depends_on: depends_on:
- db
- redis - redis
restart: unless-stopped
mem_limit: 1g # Limita Gunicorn a 1GB
tax-api: tax-api:
build: ./tax_api build: ./tax_api
ports: ports:
- "8001:8000" - "8001:8000"
restart: unless-stopped restart: unless-stopped
mem_limit: 256m
celery: celery:
build: . build: .
command: celery -A config worker -l info command: celery -A config worker -l info --concurrency=2
volumes: volumes:
- .:/app - .:/app
env_file: env_file:
- .env - .env
environment: environment:
DATABASE_URL: postgres://efintel_user:efintel_password@db:5432/efintel_db
REDIS_URL: redis://redis:6379/0 REDIS_URL: redis://redis:6379/0
depends_on: depends_on:
- db
- redis - redis
restart: unless-stopped
mem_limit: 512m # Limita Celery a 512MB
volumes: volumes:
postgres_data:
redis_data: redis_data:
+2
View File
@@ -55,3 +55,5 @@ whitenoise==6.7.0
django-storages==2.14.2 django-storages==2.14.2
boto3==1.34.69 boto3==1.34.69
requests==2.31.0 requests==2.31.0
uvicorn[standard]
gunicorn