add persistent storage on postgres and django
This commit is contained in:
15
Makefile
15
Makefile
@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/10/28 19:26:13 by tomoron #+# #+# #
|
||||
# Updated: 2024/10/28 19:26:16 by tomoron ### ########.fr #
|
||||
# Updated: 2024/11/08 19:47:48 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -18,19 +18,22 @@ all: up
|
||||
|
||||
up:
|
||||
$(COMPOSE) up --build -d
|
||||
|
||||
up_att:
|
||||
$(COMPOSE) up --build
|
||||
|
||||
watch:
|
||||
$(COMPOSE) watch
|
||||
down:
|
||||
$(COMPOSE) down -v
|
||||
|
||||
clean:
|
||||
$(COMPOSE) down -v
|
||||
docker system prune -af --volumes
|
||||
down:
|
||||
$(COMPOSE) down
|
||||
|
||||
clean: down
|
||||
docker system prune -af
|
||||
|
||||
fclean:clean
|
||||
$(COMPOSE) down -v
|
||||
docker system prune -af
|
||||
|
||||
re: fclean all
|
||||
|
||||
|
@ -19,8 +19,8 @@ services:
|
||||
|
||||
djangoserver:
|
||||
container_name: djangoserver
|
||||
# volumes:
|
||||
# - website_data:/var/www/djangoserver
|
||||
volumes:
|
||||
- django_storage:/var/www/djangoserver/storage
|
||||
networks:
|
||||
- transcendence
|
||||
develop:
|
||||
@ -55,6 +55,8 @@ services:
|
||||
DB_PASSWORD: ${DB_PASSWORD}
|
||||
networks:
|
||||
- transcendence
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/13/main
|
||||
restart: always
|
||||
|
||||
adminer:
|
||||
@ -65,12 +67,8 @@ services:
|
||||
- transcendence
|
||||
|
||||
volumes:
|
||||
website_data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: '~/METH_data'
|
||||
postgres:
|
||||
django_storage:
|
||||
|
||||
networks:
|
||||
transcendence:
|
||||
|
@ -6,7 +6,7 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/24 17:26:12 by edbernar #+# #+# #
|
||||
# Updated: 2024/09/27 03:40:12 by tomoron ### ########.fr #
|
||||
# Updated: 2024/11/09 15:53:51 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -14,6 +14,7 @@ from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from ..utils import genString
|
||||
from random import randint
|
||||
from django.db.models import Q
|
||||
import base64
|
||||
import json
|
||||
|
||||
@ -21,11 +22,11 @@ import json
|
||||
def changeBanner(socket, content):
|
||||
while True:
|
||||
generate_name = genString(50)
|
||||
if (not User.objects.filter(banner=f"/banner/{generate_name}.jpg").exists()):
|
||||
if (not User.objects.filter(Q(banner=f"/storage/{generate_name}.jpg") | Q(pfp=f"/storage/{generate_name}.jpg")).exists()):
|
||||
break
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.banner = f"/banner/{generate_name}.jpg"
|
||||
user.banner = f"/storage/{generate_name}.jpg"
|
||||
user.save()
|
||||
with open(f"/var/www/djangoserver/banner/{generate_name}.jpg", "wb") as image_file:
|
||||
with open(f"/var/www/djangoserver/storage/{generate_name}.jpg", "wb") as image_file:
|
||||
image_file.write(base64.b64decode(content["img"]))
|
||||
socket.sync_send(json.dumps({"type": "change_pfp", "content": {'banner': user.banner}}))
|
||||
|
@ -6,7 +6,7 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/23 23:35:41 by edbernar #+# #+# #
|
||||
# Updated: 2024/10/04 21:13:28 by tomoron ### ########.fr #
|
||||
# Updated: 2024/11/09 15:58:16 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -14,6 +14,7 @@ from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from ..utils import genString
|
||||
from random import randint
|
||||
from django.db.models import Q
|
||||
import base64
|
||||
import json
|
||||
|
||||
@ -21,12 +22,12 @@ import json
|
||||
def changePfp(socket, content):
|
||||
while True:
|
||||
generate_name = genString(50)
|
||||
if (not User.objects.filter(pfp=f"/pfp/{generate_name}.jpg").exists()):
|
||||
if (not User.objects.filter(Q(banner=f"/storage/{generate_name}.jpg") | Q(pfp=f"/storage/{generate_name}.jpg")).exists()):
|
||||
break
|
||||
with open(f"/var/www/djangoserver/pfp/{generate_name}.jpg", "wb") as image_file:
|
||||
with open(f"/var/www/djangoserver/storage/{generate_name}.jpg", "wb") as image_file:
|
||||
image_file.write(base64.b64decode(content["img"]))
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.pfp = f"/pfp/{generate_name}.jpg"
|
||||
user.pfp = f"/storage/{generate_name}.jpg"
|
||||
user.save()
|
||||
socket.pfp = user.pfp
|
||||
socket.scope["session"]["pfp"] = user.pfp
|
||||
|
@ -32,8 +32,7 @@ urlpatterns = [
|
||||
path("logout", views.logout, name='logout'),
|
||||
path("verify", views.verify, name='verify'),
|
||||
path("404", views.err404, name='err404'),
|
||||
path("pfp/<str>", views.pfp, name='pfp'),
|
||||
path("banner/<str>", views.banner, name='banner'),
|
||||
path("storage/<str>", views.getStorage, name='getStorage'),
|
||||
path("settingsPage", views.settingsPage, name='settingsPage'),
|
||||
path("tournamentPage", views.tournamentPage, name='tournamentPage'),
|
||||
]
|
||||
|
@ -137,19 +137,10 @@ def handler404(request, exception):
|
||||
def err404(request):
|
||||
return(render(request, "err404.html"))
|
||||
|
||||
def pfp(request, str):
|
||||
def getStorage(request, str):
|
||||
ret = None
|
||||
try:
|
||||
image_path = os.path.join('/var/www/djangoserver/pfp/', str)
|
||||
ret = FileResponse(open(image_path, 'rb'), content_type='image/png')
|
||||
except Exception:
|
||||
pass
|
||||
return ret
|
||||
|
||||
def banner(request, str):
|
||||
ret = None
|
||||
try:
|
||||
image_path = os.path.join('/var/www/djangoserver/banner/', str)
|
||||
image_path = os.path.join('/var/www/djangoserver/storage/', str)
|
||||
ret = FileResponse(open(image_path, 'rb'), content_type='image/png')
|
||||
except Exception:
|
||||
ret = FileResponse("banner not found", status=404)
|
||||
|
@ -10,4 +10,6 @@ RUN openssl req -x509 -nodes -out /etc/nginx/ssl/inception.crt -keyout /etc/ngin
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
COPY static /var/www/static
|
||||
|
||||
STOPSIGNAL SIGKILL
|
||||
|
||||
ENTRYPOINT ["nginx", "-g", "daemon off;"]
|
||||
|
Reference in New Issue
Block a user