From f782c782bd49ff3d79d14702117277cbbe43be31 Mon Sep 17 00:00:00 2001 From: Aykhan Date: Wed, 20 Sep 2023 02:30:07 +0400 Subject: [PATCH] Added dev and prod docker compose files --- config/mongodb/mongodb.env.example | 1 + config/nginx/{nginx.conf => nginx.dev.conf} | 0 config/nginx/nginx.prod.conf | 23 ++++++++ docker-compose.yml => docker-compose-dev.yml | 2 +- docker-compose-prod.yml | 56 ++++++++++++++++++++ src/app/views/routers/main.py | 2 +- 6 files changed, 82 insertions(+), 2 deletions(-) rename config/nginx/{nginx.conf => nginx.dev.conf} (100%) create mode 100644 config/nginx/nginx.prod.conf rename docker-compose.yml => docker-compose-dev.yml (93%) create mode 100644 docker-compose-prod.yml diff --git a/config/mongodb/mongodb.env.example b/config/mongodb/mongodb.env.example index 53c894e..a611096 100644 --- a/config/mongodb/mongodb.env.example +++ b/config/mongodb/mongodb.env.example @@ -1,4 +1,5 @@ MONGO_INITDB_ROOT_USERNAME="USERNAME" MONGO_INITDB_ROOT_PASSWORD="PASSWORD" +MONGO_DB_PORT=27017 MONGO_DB_LOGS_NAME="LOGS" diff --git a/config/nginx/nginx.conf b/config/nginx/nginx.dev.conf similarity index 100% rename from config/nginx/nginx.conf rename to config/nginx/nginx.dev.conf diff --git a/config/nginx/nginx.prod.conf b/config/nginx/nginx.prod.conf new file mode 100644 index 0000000..6cf6e77 --- /dev/null +++ b/config/nginx/nginx.prod.conf @@ -0,0 +1,23 @@ +upstream app_server{ + server app:8000; +} + +server{ + listen 80; + server_name ui.aykhans.me; + + location / { + proxy_pass http://app_server; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_CF_Connecting_IP; + proxy_redirect off; + } + + location /static/ { + alias /static/; + } + + location /media/ { + alias /media/; + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose-dev.yml similarity index 93% rename from docker-compose.yml rename to docker-compose-dev.yml index f358798..b07adb9 100644 --- a/docker-compose.yml +++ b/docker-compose-dev.yml @@ -43,7 +43,7 @@ services: ports: - 80:80 volumes: - - ./config/nginx/nginx.conf:/etc/nginx/conf.d/default.conf + - ./config/nginx/nginx.dev.conf:/etc/nginx/conf.d/default.conf - static:/static - media:/media depends_on: diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml new file mode 100644 index 0000000..a57d9a5 --- /dev/null +++ b/docker-compose-prod.yml @@ -0,0 +1,56 @@ +version: "3.9" + +services: + db: + image: postgres + ports: + - 5432:5432 + volumes: + - dbdata:/var/lib/postgresql/data + env_file: + - ./config/postgres/postgres.env + + mongodb: + image: mongo:latest + env_file: + - ./config/mongodb/mongodb.env + ports: + - 27017:27017 + volumes: + - mongodb_data:/data/db + + app: + build: ./src/ + env_file: + - ./config/postgres/postgres.env + - ./config/mongodb/mongodb.env + - ./config/app/app.env + ports: + - 8000:8000 + depends_on: + - db + - mongodb + volumes: + - ./src/app:/src/app + - static:/src/static + - media:/src/media + command: > + bash -c "poetry run alembic upgrade head + && poetry run uvicorn --reload --host=0.0.0.0 --port=8000 app.main:app" + + nginx: + image: nginx + ports: + - 80:80 + volumes: + - ./config/nginx/nginx.prod.conf:/etc/nginx/conf.d/default.conf + - static:/static + - media:/media + depends_on: + - app + +volumes: + dbdata: + static: + media: + mongodb_data: \ No newline at end of file diff --git a/src/app/views/routers/main.py b/src/app/views/routers/main.py index 9aef89a..eb6352a 100644 --- a/src/app/views/routers/main.py +++ b/src/app/views/routers/main.py @@ -50,7 +50,7 @@ async def home(request: Request): @router.post('/send-email') -@limiter.limit('222/day') +@limiter.limit('2/day') async def send_email( request: Request, background_tasks: BackgroundTasks,