diff --git a/.env.example/dev/back b/.env.example/dev/back new file mode 100644 index 0000000..a4df7b5 --- /dev/null +++ b/.env.example/dev/back @@ -0,0 +1,4 @@ +DEBUG=1 +SECRET_KEY=SECRET_KEY +ENVIRONMENT=docker +DJANGO_SETTINGS_MODULE=clicker.settings diff --git a/.env.example/dev/batcher b/.env.example/dev/batcher new file mode 100644 index 0000000..7a5f999 --- /dev/null +++ b/.env.example/dev/batcher @@ -0,0 +1 @@ +HTTP_PORT=8080 \ No newline at end of file diff --git a/.env.example/dev/batcher-pg b/.env.example/dev/batcher-pg new file mode 100644 index 0000000..3f85ca5 --- /dev/null +++ b/.env.example/dev/batcher-pg @@ -0,0 +1,8 @@ +POSTGRES_PASSWORD=postgres +POSTGRES_USER=postgres +POSTGRES_DB=postgres +POSTGRES_HOST=batcher-postgres +POSTGRES_PORT=5432 +LANG=ru_RU.UTF-8 +LANGUAGE=ru_RU.UTF-8 +LC_ALL=ru_RU.UTF-8 diff --git a/.env.example/dev/bot b/.env.example/dev/bot new file mode 100644 index 0000000..2ed8fc0 --- /dev/null +++ b/.env.example/dev/bot @@ -0,0 +1,3 @@ +TG_TOKEN=token +BACKEND_URL=http://backend:8000 +PROD=0 diff --git a/.env.example/dev/pg b/.env.example/dev/pg new file mode 100644 index 0000000..daf109d --- /dev/null +++ b/.env.example/dev/pg @@ -0,0 +1,8 @@ +POSTGRES_PASSWORD=postgres +POSTGRES_USER=postgres +POSTGRES_DB=postgres +POSTGRES_HOST=postgres +POSTGRES_PORT=5432 +LANG=ru_RU.UTF-8 +LANGUAGE=ru_RU.UTF-8 +LC_ALL=ru_RU.UTF-8 diff --git a/.env.example/dev/redis b/.env.example/dev/redis new file mode 100644 index 0000000..a7f8171 --- /dev/null +++ b/.env.example/dev/redis @@ -0,0 +1,5 @@ +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_USER=default +REDIS_PASSWORD=redis +REDIS_DB=0 diff --git a/.env.example/dev/rmq b/.env.example/dev/rmq new file mode 100644 index 0000000..6397bb1 --- /dev/null +++ b/.env.example/dev/rmq @@ -0,0 +1,4 @@ +RABBITMQ_HOST=rabbitmq +RABBITMQ_PORT=5672 +RABBITMQ_DEFAULT_USER=rabbitmq +RABBITMQ_DEFAULT_PASS=rabbitmq diff --git a/.env.example/dev/web b/.env.example/dev/web new file mode 100644 index 0000000..b846a75 --- /dev/null +++ b/.env.example/dev/web @@ -0,0 +1 @@ +APP_URL=https://kyc-game.ru \ No newline at end of file diff --git a/batcher/app/src/dependencies.py b/batcher/app/src/dependencies.py index e6e7677..3851ec9 100644 --- a/batcher/app/src/dependencies.py +++ b/batcher/app/src/dependencies.py @@ -8,7 +8,6 @@ from typing import Tuple from .config import TG_TOKEN - async def get_token_header(authorization: str = Header()) -> Tuple[int, str]: if not authorization: raise HTTPException(status_code=403, detail='Unauthorized') diff --git a/batcher/app/src/domain/click/usecase.py b/batcher/app/src/domain/click/usecase.py index 3e42047..774218d 100644 --- a/batcher/app/src/domain/click/usecase.py +++ b/batcher/app/src/domain/click/usecase.py @@ -95,7 +95,7 @@ async def check_registration(r: redis.Redis, user_id: int, _token: str, backend_ if await _has_any_clicks(r, user_id): return True async with aiohttp.ClientSession() as session: - async with session.get(f'{backend_url}/api/v1/users/{user_id}', headers={'Authorization': _token}) as resp: + async with session.get(f'{backend_url}/api/v1/users/{user_id}', headers={'Authorization': f'TelegramToken {_token}'}) as resp: return resp.status == 200 diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index 64f57ac..af4ed99 100644 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -3,8 +3,7 @@ volumes: batcher_db_data: {} redis_data: {} backend_media: {} - certbot_www: {} - certbot_conf: {} + backend_static: {} services: backend: @@ -12,6 +11,7 @@ services: context: ./backend volumes: - backend_media:/app/media + - backend_static:/app/static command: /app/scripts/gunicorn.sh restart: on-failure depends_on: @@ -64,7 +64,7 @@ services: depends_on: bot: *started-dependency volumes: - - ./backend/static/:/static/ + - backend_static:/static/ restart: unless-stopped celery: diff --git a/docker-compose.yml b/docker-compose.yml index 0b75eb3..4419e1c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ volumes: batcher_db_data: {} redis_data: {} backend_media: {} + backend_static: {} services: backend: @@ -13,6 +14,7 @@ services: rabbitmq: *healthy-dependency volumes: - backend_media:/app/media + - backend_static:/app/static command: /app/scripts/start.sh restart: on-failure env_file: &backend-env-files diff --git a/nginx/Dockerfile b/nginx/Dockerfile index 0faa3c4..ae4074f 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -16,8 +16,6 @@ FROM nginx:stable COPY nginx/nginx.conf /etc/nginx/nginx.conf -COPY backend/static /static - COPY --from=build-deps /app/dist/ /dist/ CMD ["nginx", "-g", "daemon off;"] diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 9828dca..341b5af 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -57,13 +57,12 @@ http { } # batcher - location ~ ^/api/v1/batcher(/?.*) { - rewrite ^(/api/v1)/batcher(/?.*)$ $1/$2 last; + location ^~ /api/v1/batcher { + rewrite ^(/api/v1)/batcher/(.+)$ $1/$2 break; proxy_pass http://batcher; - proxy_pass_header Authorization; } - location ^~ /api/internal { + location ^~ /api/internal/ { deny all; } @@ -73,14 +72,16 @@ http { proxy_pass http://backend; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Connection $connection_upgrade; + proxy_set_header Upgrade $http_upgrade; + proxy_cache_bypass $http_upgrade; } # bot - location ~ ^/bot { + location ^~ /bot { proxy_http_version 1.1; proxy_pass http://bot; } @@ -107,7 +108,7 @@ http { proxy_set_header X-Forwarded-Proto $scheme; } - location ~ ^/rabbitmq/(.*) { + location ^~ /rabbitmq { rewrite ^/rabbitmq/(.*)$ /$1 break; proxy_pass http://rabbitmq; proxy_buffering off;