From 7d48af1fec9ed01930eabeb033bc6df6ced99d34 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 14:36:59 +0200 Subject: [PATCH 01/11] Remove all .env files and add to .gitignore --- .env | 32 -------------------------------- 1 file changed, 32 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 28e29d9..0000000 --- a/.env +++ /dev/null @@ -1,32 +0,0 @@ -# Django settings -SECRET_KEY="FollowTheWhiteRabbit" -DEBUG=True -DJANGO_ALLOWED_HOSTS=['*'] - -# PostgreSQL settings -POSTGRES_DB=players_db -POSTGRES_USER=42student -POSTGRES_PASSWORD=qwerty - -# Django settings -DB_HOST=db -DB_PORT=5432 -PWD_PATH=${PWD} -PROJECT_PATH=${PWD_PATH}/pong -DJANGO_LOGS=${PWD_PATH}/logs - -# ElasticSearch settings -STACK_VERSION=8.14.3 -CLUSTER_NAME=docker-cluster -LICENSE=basic - -ELASTIC_USERNAME=elastic -ELASTIC_PASSWORD=elastic_pass - -# Kibana settings -KIBANA_PORT=5601 -KIBANA_USERNAME=kibana_system -KIBANA_PASSWORD=kibana_pass - -ENCRYPTION_KEY=c34d38b3a14956121ff2170e5030b471551370178f43e5626eec58b04a30fae2 - From a83984a6473736561ae3c01fae9b3eb0629cdc5c Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 15:14:55 +0200 Subject: [PATCH 02/11] merge chaku --- .gitignore | 6 ------ makefile | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index acddfd3..5500a2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,3 @@ venv/ __pycache__/ -data/ .env -makefile -docker-compose.old.yml -docker-compose.yml -logs/django.log -pong/settings.py \ No newline at end of file diff --git a/makefile b/makefile index 45a9a55..6d3c8d1 100644 --- a/makefile +++ b/makefile @@ -4,7 +4,7 @@ CONTAINER=$(c) up: down $(COMPOSE) build - $(COMPOSE) up --remove-orphans $(CONTAINER) + $(COMPOSE) up $(CONTAINER) build: $(COMPOSE) build $(CONTAINER) @@ -19,7 +19,7 @@ down: $(COMPOSE) down $(CONTAINER) destroy: - $(COMPOSE) down -v --rmi all + $(COMPOSE) down -v --rmi all --remove-orphans sudo lsof -i :5432 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true sudo lsof -i :80 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true From 0be57c836927e7cb8adfe3bbf8f300fb12d1e773 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 15:44:00 +0200 Subject: [PATCH 03/11] merge thouch --- env_template | 1 + logs/django.log | 1 + makefile | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/env_template b/env_template index b297aeb..5d52cf0 100644 --- a/env_template +++ b/env_template @@ -13,6 +13,7 @@ DB_HOST=db DB_PORT=5432 PWD_PATH=${PWD} PROJECT_PATH=${PWD_PATH}/pong +DJANGO_LOGS=${PWD_PATH}/logs # ElasticSearch settings STACK_VERSION=8.14.3 diff --git a/logs/django.log b/logs/django.log index 39a3693..444904d 100644 --- a/logs/django.log +++ b/logs/django.log @@ -6,3 +6,4 @@ {"message": "Not Found: /favicon.ico", "taskName": null, "status_code": 404, "request": ""} {"message": "Not Found: /favicon.ico", "taskName": null, "status_code": 404, "request": ""} {"message": "Not Found: /favicon.ico", "taskName": null, "status_code": 404, "request": ""} +{"message": "Not Found: /favicon.ico", "taskName": null, "status_code": 404, "request": ""} diff --git a/makefile b/makefile index 6d3c8d1..87de884 100644 --- a/makefile +++ b/makefile @@ -4,7 +4,7 @@ CONTAINER=$(c) up: down $(COMPOSE) build - $(COMPOSE) up $(CONTAINER) + $(COMPOSE) up -d $(CONTAINER) || true build: $(COMPOSE) build $(CONTAINER) From 66fca33ca456fe9e21301325a0ada160d4b5eaf8 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 15:50:32 +0200 Subject: [PATCH 04/11] fix issue --- makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefile b/makefile index 87de884..c1bb2b8 100644 --- a/makefile +++ b/makefile @@ -19,7 +19,7 @@ down: $(COMPOSE) down $(CONTAINER) destroy: - $(COMPOSE) down -v --rmi all --remove-orphans + $(COMPOSE) down -v --rmi all sudo lsof -i :5432 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true sudo lsof -i :80 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true From 7c1c4a868f065b10f0b6e8012bfdf8fed20a51e1 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 15:58:40 +0200 Subject: [PATCH 05/11] remove log path --- docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 33a4a7e..062be5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -219,10 +219,6 @@ volumes: o: bind pong_django_logs: driver: local - driver_opts: - type: none - device: ${DJANGO_LOGS} - o: bind pong_pg_data: driver: local pong_es_data_01: From 6fb4641d9990849adb1bcde4c96deb397920d211 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 16:09:03 +0200 Subject: [PATCH 06/11] kill pid makefile --- docker-compose.yml | 2 -- makefile | 9 ++++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e4c2828..33a4a7e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,8 +58,6 @@ services: timeout: 5s retries: 120 - - backend: build: context: . diff --git a/makefile b/makefile index 0c6d19d..dc489d3 100644 --- a/makefile +++ b/makefile @@ -20,8 +20,15 @@ down: destroy: $(COMPOSE) down -v --rmi all + +kill-pid: sudo lsof -i :5432 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true - sudo lsof -i :80 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true + sudo lsof -i :5601 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true + sudo lsof -i :9200 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true + sudo lsof -i :8080 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true + sudo lsof -i :5044 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true + + logs: $(COMPOSE) logs -f $(CONTAINER) From 5d75be718d30d072d4a41413f650a66b8c6b9b41 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 16:41:28 +0200 Subject: [PATCH 07/11] remove old --- docker-compose.yml_old | 75 ------------------------------------------ 1 file changed, 75 deletions(-) delete mode 100644 docker-compose.yml_old diff --git a/docker-compose.yml_old b/docker-compose.yml_old deleted file mode 100644 index aa21870..0000000 --- a/docker-compose.yml_old +++ /dev/null @@ -1,75 +0,0 @@ -services: - backend: - build: - context: . - dockerfile: Dockerfile - image: backend - container_name: backend - restart: always - command: /bin/sh -c "sleep 5 && - venv/bin/python manage.py makemigrations --noinput && - venv/bin/python manage.py migrate --noinput && - venv/bin/python manage.py collectstatic --noinput && - venv/bin/daphne -b 0.0.0.0 -p 8080 pong.asgi:application" - volumes: - - pong:/transcendence/pong - - pong_django_logs:/transcendence/logs - ports: - - 8080:8080 - networks: - - app-network - environment: - DB_HOST: db - DB_PORT: 5432 - DB_NAME: ${POSTGRES_DB} - DB_USER: ${POSTGRES_USER} - DB_PASSWORD: ${POSTGRES_PASSWORD} - depends_on: - - db - healthcheck: - test: ["CMD-SHELL", "curl", "http://localhost:8080"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 10s - - db: - image: postgres:latest - container_name: postgres - restart: always - volumes: - - pong_pg_data:/var/lib/postgresql/data - ports: - - "5432:5432" - networks: - - app-network - environment: - POSTGRES_DB: ${POSTGRES_DB} - POSTGRES_USER: ${POSTGRES_USER} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - healthcheck: - test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] - interval: 10s - timeout: 5s - retries: 5 - -volumes: - pong: - driver: local - driver_opts: - type: none - device: ${PROJECT_PATH} - o: bind - pong_django_logs: - driver: local - driver_opts: - type: none - device: ${DJANGO_LOGS} - o: bind - pong_pg_data: - driver: local - -networks: - app-network: - name: app-network - driver: bridge From f4a93fd6043f28fce7a710f888f9c177801a218f Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Tue, 10 Sep 2024 17:43:30 +0200 Subject: [PATCH 08/11] remove unused path --- docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 33a4a7e..062be5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -219,10 +219,6 @@ volumes: o: bind pong_django_logs: driver: local - driver_opts: - type: none - device: ${DJANGO_LOGS} - o: bind pong_pg_data: driver: local pong_es_data_01: From 0e9193f98a2222cda57d10776e98278cb3fd2f6c Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Wed, 11 Sep 2024 14:47:27 +0200 Subject: [PATCH 09/11] repare project --- .env | 31 +++++++++ env_template | 3 +- pong/settings.py | 172 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 .env create mode 100644 pong/settings.py diff --git a/.env b/.env new file mode 100644 index 0000000..66aac01 --- /dev/null +++ b/.env @@ -0,0 +1,31 @@ +# Django settings +SECRET_KEY="FollowTheWhiteRabbit" +DEBUG=True +DJANGO_ALLOWED_HOSTS=['*'] + +# PostgreSQL settings +POSTGRES_DB=players_db +POSTGRES_USER=42student +POSTGRES_PASSWORD=qwerty + +# Django settings +DB_HOST=db +DB_PORT=5432 +PWD_PATH=${PWD} +PROJECT_PATH=${PWD_PATH}/pong + +# ElasticSearch settings +STACK_VERSION=8.14.3 +CLUSTER_NAME=docker-cluster +LICENSE=basic + +ELASTIC_USERNAME=elastic +ELASTIC_PASSWORD=elastic_pass + +# Kibana settings +KIBANA_PORT=5601 +KIBANA_USERNAME=kibana_system +KIBANA_PASSWORD=kibana_pass + +ENCRYPTION_KEY=c34d38b3a14956121ff2170e5030b471551370178f43e5626eec58b04a30fae2 + diff --git a/env_template b/env_template index 5d52cf0..165b010 100644 --- a/env_template +++ b/env_template @@ -13,7 +13,6 @@ DB_HOST=db DB_PORT=5432 PWD_PATH=${PWD} PROJECT_PATH=${PWD_PATH}/pong -DJANGO_LOGS=${PWD_PATH}/logs # ElasticSearch settings STACK_VERSION=8.14.3 @@ -25,7 +24,7 @@ ELASTIC_PASSWORD= # Kibana settings KIBANA_PORT=5601 -KIBANA_USERNAME= +KIBANA_USERNAME=kibana_system KIBANA_PASSWORD= ENCRYPTION_KEY=c34d38b3a14956121ff2170e5030b471551370178f43e5626eec58b04a30fae2 diff --git a/pong/settings.py b/pong/settings.py new file mode 100644 index 0000000..b44ccdf --- /dev/null +++ b/pong/settings.py @@ -0,0 +1,172 @@ +# /pong/settings.py + +""" +Django settings for pong project. + +Generated by 'django-admin startproject' using Django 3.2. +""" + +import os +import logging.config +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '12345678' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = ['*'] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'channels', + 'pong.game', + 'rest_framework' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'pong.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [os.path.join(BASE_DIR, 'pong', 'static')], # Ensure templates are found + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +ASGI_APPLICATION = 'pong.asgi.application' + +# Database +# https://docs.djangoproject.com/en/3.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': os.getenv('DB_NAME'), + 'USER': os.getenv('DB_USER'), + 'PASSWORD': os.getenv('DB_PASSWORD'), + 'HOST': os.getenv('DB_HOST'), + 'PORT': '5432', + } +} + +# Password validation +# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + +# Internationalization +# https://docs.djangoproject.com/en/3.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.2/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [os.path.join(BASE_DIR, 'pong/static')] +STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') + +# Default primary key field type +# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +# Channels +# Define the channel layers for WebSockets +CHANNEL_LAYERS = { + 'default': { + 'BACKEND': 'channels.layers.InMemoryChannelLayer', + }, +} + +LOGGING = { + 'version': 1, # The version of the logging configuration schema + 'disable_existing_loggers': False, # Allows existing loggers to keep logging + 'formatters': { # Defines how log messages will be formatted + 'json': { + '()': 'pythonjsonlogger.jsonlogger.JsonFormatter', + # Formatter that outputs logs in JSON format, which is ideal for ingestion by Logstash. + }, + 'default': { + 'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s', + # This is a basic text formatter with timestamp, log level, logger name, line number, and the actual message. + }, + }, + 'handlers': { # Handlers determine where the log messages are sent + 'file': { + 'level': 'INFO', # Minimum log level to be handled (INFO and above) + 'class': 'logging.FileHandler', + 'filename': os.path.join(BASE_DIR, 'logs/django.log'), # The file where logs will be saved + 'formatter': 'json', # Uses the JSON formatter defined above + }, + 'console': { + 'level': 'DEBUG', # Minimum log level to be handled (DEBUG and above) + 'class': 'logging.StreamHandler', + 'formatter': 'default', # Uses the default text formatter + }, + }, + 'loggers': { # Loggers are the actual log streams that get configured + 'django': { # The Django logger catches all messages sent by the Django framework + 'handlers': ['file', 'console'], # Sends logs to both the file and the console + 'level': 'DEBUG', # Minimum log level to be logged + 'propagate': True, # If True, messages will be passed to the parent loggers as well + }, + }, +} From 77610e64f3a99f566ed687682d7c749f1ee5f91c Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Wed, 11 Sep 2024 14:48:11 +0200 Subject: [PATCH 10/11] clena code --- makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/makefile b/makefile index 0fb37fb..e7fbc31 100644 --- a/makefile +++ b/makefile @@ -28,8 +28,6 @@ kill-pid: sudo lsof -i :8080 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true sudo lsof -i :5044 | awk 'NR>1 {print $$2}' | xargs sudo kill -9 || true - - logs: $(COMPOSE) logs -f $(CONTAINER) From 0cbc6c4e43a1df7bda0f88354d17852ba9282f76 Mon Sep 17 00:00:00 2001 From: Adrien Audebert Date: Wed, 11 Sep 2024 14:49:46 +0200 Subject: [PATCH 11/11] remove .env --- .env | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 66aac01..0000000 --- a/.env +++ /dev/null @@ -1,31 +0,0 @@ -# Django settings -SECRET_KEY="FollowTheWhiteRabbit" -DEBUG=True -DJANGO_ALLOWED_HOSTS=['*'] - -# PostgreSQL settings -POSTGRES_DB=players_db -POSTGRES_USER=42student -POSTGRES_PASSWORD=qwerty - -# Django settings -DB_HOST=db -DB_PORT=5432 -PWD_PATH=${PWD} -PROJECT_PATH=${PWD_PATH}/pong - -# ElasticSearch settings -STACK_VERSION=8.14.3 -CLUSTER_NAME=docker-cluster -LICENSE=basic - -ELASTIC_USERNAME=elastic -ELASTIC_PASSWORD=elastic_pass - -# Kibana settings -KIBANA_PORT=5601 -KIBANA_USERNAME=kibana_system -KIBANA_PASSWORD=kibana_pass - -ENCRYPTION_KEY=c34d38b3a14956121ff2170e5030b471551370178f43e5626eec58b04a30fae2 -