Skip to content

Commit 261634c

Browse files
committed
Restore files that had changes for local dev
1 parent da4dacc commit 261634c

File tree

2 files changed

+98
-121
lines changed

2 files changed

+98
-121
lines changed

docker-compose.yml

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
services:
22
db:
3-
image: pgvector/pgvector:pg15
4-
volumes:
5-
- postgres_data:/var/lib/postgresql/data/
6-
- ./init-vector-extension.sql:/docker-entrypoint-initdb.d/init-vector-extension.sql
7-
environment:
8-
- POSTGRES_USER=balancer
9-
- POSTGRES_PASSWORD=balancer
10-
- POSTGRES_DB=balancer_dev
11-
ports:
3+
build:
4+
context: ./db
5+
dockerfile: Dockerfile
6+
volumes:
7+
- postgres_data:/var/lib/postgresql/data/
8+
environment:
9+
- POSTGRES_USER=balancer
10+
- POSTGRES_PASSWORD=balancer
11+
- POSTGRES_DB=balancer_dev
12+
ports:
1213
- "5433:5432"
13-
networks:
14-
app_net:
15-
ipv4_address: 192.168.0.2
14+
networks:
15+
app_net:
16+
ipv4_address: 192.168.0.2
1617
pgadmin:
1718
container_name: pgadmin4
1819
image: dpage/pgadmin4
@@ -51,13 +52,13 @@ services:
5152
args:
5253
- IMAGE_NAME=balancer-frontend
5354
ports:
54-
- "3000:3000"
55+
- "3000:3000"
5556
environment:
56-
- CHOKIDAR_USEPOLLING=true
57-
# - VITE_API_BASE_URL=https://balancertestsite.com/
57+
- CHOKIDAR_USEPOLLING=true
58+
# - VITE_API_BASE_URL=https://balancertestsite.com/
5859
volumes:
59-
- "./frontend:/usr/src/app:delegated"
60-
- "/usr/src/app/node_modules/"
60+
- "./frontend:/usr/src/app:delegated"
61+
- "/usr/src/app/node_modules/"
6162
depends_on:
6263
- backend
6364
networks:
@@ -71,4 +72,4 @@ networks:
7172
driver: default
7273
config:
7374
- subnet: "192.168.0.0/24"
74-
gateway: 192.168.0.1
75+
gateway: 192.168.0.1

server/balancer_backend/settings.py

Lines changed: 79 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -29,56 +29,57 @@
2929

3030
# Fetching the value from the environment and splitting to list if necessary.
3131
# Fallback to '*' if the environment variable is not set.
32-
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "*").split()
32+
ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOSTS', '*').split()
3333

3434
# If the environment variable contains '*', the split method would create a list with an empty string.
3535
# So you need to check for this case and adjust accordingly.
36-
if ALLOWED_HOSTS == ["*"] or ALLOWED_HOSTS == [""]:
37-
ALLOWED_HOSTS = ["*"]
36+
if ALLOWED_HOSTS == ['*'] or ALLOWED_HOSTS == ['']:
37+
ALLOWED_HOSTS = ['*']
3838

3939

4040
# Application definition
4141

4242
INSTALLED_APPS = [
43-
"django.contrib.admin",
44-
"django.contrib.auth",
45-
"django.contrib.contenttypes",
46-
"django.contrib.sessions",
47-
"django.contrib.messages",
48-
"django.contrib.staticfiles",
49-
"balancer_backend",
50-
"api",
51-
"corsheaders",
52-
"rest_framework",
53-
"djoser",
43+
'django.contrib.admin',
44+
'django.contrib.auth',
45+
'django.contrib.contenttypes',
46+
'django.contrib.sessions',
47+
'django.contrib.messages',
48+
'django.contrib.staticfiles',
49+
'balancer_backend',
50+
'api',
51+
'corsheaders',
52+
'rest_framework',
53+
'djoser',
5454
]
5555

5656
MIDDLEWARE = [
57-
"django.middleware.security.SecurityMiddleware",
58-
"django.contrib.sessions.middleware.SessionMiddleware",
59-
"django.middleware.common.CommonMiddleware",
60-
"django.middleware.csrf.CsrfViewMiddleware",
61-
"django.contrib.auth.middleware.AuthenticationMiddleware",
62-
"django.contrib.messages.middleware.MessageMiddleware",
63-
"django.middleware.clickjacking.XFrameOptionsMiddleware",
64-
"corsheaders.middleware.CorsMiddleware",
57+
'django.middleware.security.SecurityMiddleware',
58+
'django.contrib.sessions.middleware.SessionMiddleware',
59+
'django.middleware.common.CommonMiddleware',
60+
'django.middleware.csrf.CsrfViewMiddleware',
61+
'django.contrib.auth.middleware.AuthenticationMiddleware',
62+
'django.contrib.messages.middleware.MessageMiddleware',
63+
'django.middleware.clickjacking.XFrameOptionsMiddleware',
64+
'corsheaders.middleware.CorsMiddleware',
65+
6566
]
6667

67-
ROOT_URLCONF = "balancer_backend.urls"
68+
ROOT_URLCONF = 'balancer_backend.urls'
6869

6970
CORS_ALLOW_ALL_ORIGINS = True
7071

7172
TEMPLATES = [
7273
{
73-
"BACKEND": "django.template.backends.django.DjangoTemplates",
74-
"DIRS": [os.path.join(BASE_DIR, "build")],
75-
"APP_DIRS": True,
76-
"OPTIONS": {
77-
"context_processors": [
78-
"django.template.context_processors.debug",
79-
"django.template.context_processors.request",
80-
"django.contrib.auth.context_processors.auth",
81-
"django.contrib.messages.context_processors.messages",
74+
'BACKEND': 'django.template.backends.django.DjangoTemplates',
75+
'DIRS': [os.path.join(BASE_DIR, 'build')],
76+
'APP_DIRS': True,
77+
'OPTIONS': {
78+
'context_processors': [
79+
'django.template.context_processors.debug',
80+
'django.template.context_processors.request',
81+
'django.contrib.auth.context_processors.auth',
82+
'django.contrib.messages.context_processors.messages',
8283
],
8384
},
8485
},
@@ -88,7 +89,7 @@
8889
# Change this to your desired URL
8990
LOGIN_REDIRECT_URL = os.environ.get("LOGIN_REDIRECT_URL")
9091

91-
WSGI_APPLICATION = "balancer_backend.wsgi.application"
92+
WSGI_APPLICATION = 'balancer_backend.wsgi.application'
9293

9394

9495
# Database
@@ -105,8 +106,8 @@
105106
}
106107
}
107108

108-
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
109-
EMAIL_HOST = "smtp.gmail.com"
109+
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
110+
EMAIL_HOST = 'smtp.gmail.com'
110111
EMAIL_PORT = 587
111112
EMAIL_HOST_USER = os.environ.get("EMAIL_HOST_USER", "")
112113
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_HOST_PASSWORD", "")
@@ -118,25 +119,25 @@
118119

119120
AUTH_PASSWORD_VALIDATORS = [
120121
{
121-
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
122+
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
122123
},
123124
{
124-
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
125+
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
125126
},
126127
{
127-
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
128+
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
128129
},
129130
{
130-
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
131+
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
131132
},
132133
]
133134

134135
# Internationalization
135136
# https://docs.djangoproject.com/en/4.2/topics/i18n/
136137

137-
LANGUAGE_CODE = "en-us"
138+
LANGUAGE_CODE = 'en-us'
138139

139-
TIME_ZONE = "UTC"
140+
TIME_ZONE = 'UTC'
140141

141142
USE_I18N = True
142143

@@ -146,89 +147,64 @@
146147
# Static files (CSS, JavaScript, Images)
147148
# https://docs.djangoproject.com/en/4.2/howto/static-files/
148149

149-
STATIC_URL = "/static/"
150+
STATIC_URL = '/static/'
150151
STATICFILES_DIRS = [
151-
os.path.join(BASE_DIR, "build/static"),
152+
os.path.join(BASE_DIR, 'build/static'),
152153
]
153-
STATIC_ROOT = os.path.join(BASE_DIR, "static")
154+
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
154155

155156
AUTHENTICATION_BACKENDS = [
156-
"django.contrib.auth.backends.ModelBackend",
157+
'django.contrib.auth.backends.ModelBackend',
157158
]
158159

159160

160161
REST_FRAMEWORK = {
161-
"DEFAULT_PERMISSION_CLASSES": ["rest_framework.permissions.IsAuthenticated"],
162-
"DEFAULT_AUTHENTICATION_CLASSES": (
163-
"rest_framework_simplejwt.authentication.JWTAuthentication",
162+
'DEFAULT_PERMISSION_CLASSES': [
163+
'rest_framework.permissions.IsAuthenticated'
164+
],
165+
'DEFAULT_AUTHENTICATION_CLASSES': (
166+
'rest_framework_simplejwt.authentication.JWTAuthentication',
164167
),
165168
}
166169

167170

168171
SIMPLE_JWT = {
169-
"AUTH_HEADER_TYPES": ("JWT",),
170-
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=60),
171-
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
172-
"TOKEN_OBTAIN_SERIALIZER": "api.models.TokenObtainPairSerializer.MyTokenObtainPairSerializer",
173-
"AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",),
172+
'AUTH_HEADER_TYPES': ('JWT',),
173+
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=60),
174+
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
175+
'TOKEN_OBTAIN_SERIALIZER': 'api.models.TokenObtainPairSerializer.MyTokenObtainPairSerializer',
176+
'AUTH_TOKEN_CLASSES': (
177+
'rest_framework_simplejwt.tokens.AccessToken',
178+
)
174179
}
175180

176181
DJOSER = {
177-
"LOGIN_FIELD": "email",
178-
"USER_CREATE_PASSWORD_RETYPE": True,
179-
"USERNAME_CHANGED_EMAIL_CONFIRMATION": True,
180-
"PASSWORD_CHANGED_EMAIL_CONFIRMATION": True,
181-
"SEND_CONFIRMATION_EMAIL": True,
182-
"SET_USERNAME_RETYPE": True,
183-
"SET_PASSWORD_RETYPE": True,
184-
"PASSWORD_RESET_CONFIRM_URL": "password/reset/confirm/{uid}/{token}",
185-
"USERNAME_RESET_CONFIRM_URL": "email/reset/confirm/{uid}/{token}",
186-
"ACTIVATION_URL": "activate/{uid}/{token}",
187-
"SEND_ACTIVATION_EMAIL": True,
188-
"SOCIAL_AUTH_TOKEN_STRATEGY": "djoser.social.token.jwt.TokenStrategy",
189-
"SOCIAL_AUTH_ALLOWED_REDIRECT_URIS": [
190-
"http://localhost:8000/google",
191-
"http://localhost:8000/facebook",
192-
],
193-
"SERIALIZERS": {
194-
"user_create": "api.models.serializers.UserCreateSerializer",
195-
"user": "api.models.serializers.UserCreateSerializer",
196-
"current_user": "api.models.serializers.UserCreateSerializer",
197-
"user_delete": "djoser.serializers.UserDeleteSerializer",
198-
},
182+
'LOGIN_FIELD': 'email',
183+
'USER_CREATE_PASSWORD_RETYPE': True,
184+
'USERNAME_CHANGED_EMAIL_CONFIRMATION': True,
185+
'PASSWORD_CHANGED_EMAIL_CONFIRMATION': True,
186+
'SEND_CONFIRMATION_EMAIL': True,
187+
'SET_USERNAME_RETYPE': True,
188+
'SET_PASSWORD_RETYPE': True,
189+
'PASSWORD_RESET_CONFIRM_URL': 'password/reset/confirm/{uid}/{token}',
190+
'USERNAME_RESET_CONFIRM_URL': 'email/reset/confirm/{uid}/{token}',
191+
'ACTIVATION_URL': 'activate/{uid}/{token}',
192+
'SEND_ACTIVATION_EMAIL': True,
193+
'SOCIAL_AUTH_TOKEN_STRATEGY': 'djoser.social.token.jwt.TokenStrategy',
194+
'SOCIAL_AUTH_ALLOWED_REDIRECT_URIS': ['http://localhost:8000/google', 'http://localhost:8000/facebook'],
195+
'SERIALIZERS': {
196+
'user_create': 'api.models.serializers.UserCreateSerializer',
197+
'user': 'api.models.serializers.UserCreateSerializer',
198+
'current_user': 'api.models.serializers.UserCreateSerializer',
199+
'user_delete': 'djoser.serializers.UserDeleteSerializer',
200+
}
199201
}
200202

201203

202204
# Default primary key field type
203205
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
204206

205-
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
206-
207+
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
207208

208-
AUTH_USER_MODEL = "api.UserAccount"
209209

210-
# Logging configuration
211-
LOGGING = {
212-
"version": 1,
213-
"disable_existing_loggers": False,
214-
"formatters": {
215-
"verbose": {
216-
"format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}",
217-
"style": "{",
218-
},
219-
"simple": {
220-
"format": "{levelname} {message}",
221-
"style": "{",
222-
},
223-
},
224-
"handlers": {
225-
"console": {
226-
"class": "logging.StreamHandler",
227-
"formatter": "verbose",
228-
},
229-
},
230-
"root": {
231-
"handlers": ["console"],
232-
"level": "INFO",
233-
},
234-
}
210+
AUTH_USER_MODEL = 'api.UserAccount'

0 commit comments

Comments
 (0)