From 0a5251ec10b18223bf7c743a3ef84db4752453a4 Mon Sep 17 00:00:00 2001 From: Nell Date: Sun, 20 Apr 2025 03:08:12 +0200 Subject: [PATCH] some fix --- app/Dockerfile | 10 ++++++++-- app/app/settings.py | 3 +++ app/app/urls.py | 2 ++ app/frontend/src/components/torrent/App.vue | 5 +++++ ...{requirements.txt => requirements-common.txt} | 6 ------ app/requirements-dev.txt | 2 ++ app/requirements-prod.txt | 2 ++ app/static/oxpanel.png | Bin 0 -> 7580 bytes app/templates/base.html | 6 ++++-- docker-compose.yml | 1 + 10 files changed, 27 insertions(+), 10 deletions(-) rename app/{requirements.txt => requirements-common.txt} (80%) create mode 100644 app/requirements-dev.txt create mode 100644 app/requirements-prod.txt create mode 100644 app/static/oxpanel.png diff --git a/app/Dockerfile b/app/Dockerfile index 43efdf1..a709426 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -2,6 +2,7 @@ FROM python:3.13-slim ARG puid=1000 ARG pgid=1000 +ARG debug=false ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ LANG=C.UTF-8 \ @@ -40,8 +41,13 @@ RUN yarn install WORKDIR /app RUN pip install --upgrade pip -COPY ./requirements.txt ./requirements.txt -RUN pip install --no-cache-dir -r requirements.txt +COPY requirements*.txt ./ +RUN if [ "$debug" = "true" ] ; then \ + pip install --no-cache-dir -r requirements-dev.txt ; \ + else \ + pip install --no-cache-dir -r requirements-prod.txt ; \ + fi + #COPY . . diff --git a/app/app/settings.py b/app/app/settings.py index 726f76b..f368128 100644 --- a/app/app/settings.py +++ b/app/app/settings.py @@ -59,6 +59,8 @@ INSTALLED_APPS = [ 'api', 'torrent', ] +if DEBUG: + INSTALLED_APPS = ["daphne"] + INSTALLED_APPS MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', @@ -139,6 +141,7 @@ USE_TZ = True STATIC_URL = '/static/' STATICFILES_DIRS = [ + BASE_DIR / "static", BASE_DIR / "frontend/dist", ] STATIC_ROOT = BASE_DIR / "static_collected" diff --git a/app/app/urls.py b/app/app/urls.py index 23e6c9e..0b7f22c 100644 --- a/app/app/urls.py +++ b/app/app/urls.py @@ -17,6 +17,7 @@ Including another URLconf from django.contrib import admin from django.urls import path, include # Added include for including app URLs from django.http import HttpResponse +from django.views.generic import RedirectView from django.contrib.auth.views import ( PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, PasswordResetCompleteView, PasswordChangeView, PasswordChangeDoneView, LogoutView @@ -28,6 +29,7 @@ urlpatterns = [ path("", include("torrent.urls", "torrent")), path("user/", include("user.urls", "user")), path("api/", include("api.urls", "api")), + path("home", RedirectView.as_view(url="/", permanent=False), name="home"), # reset password related path("password_reset/", PasswordResetView.as_view(), name="password_reset"), diff --git a/app/frontend/src/components/torrent/App.vue b/app/frontend/src/components/torrent/App.vue index fac9fac..54d856c 100644 --- a/app/frontend/src/components/torrent/App.vue +++ b/app/frontend/src/components/torrent/App.vue @@ -37,6 +37,11 @@ Manage + diff --git a/app/requirements.txt b/app/requirements-common.txt similarity index 80% rename from app/requirements.txt rename to app/requirements-common.txt index d252e3b..c34418d 100644 --- a/app/requirements.txt +++ b/app/requirements-common.txt @@ -6,15 +6,9 @@ django-filter djangorestframework-simplejwt channels channels_redis - -celery - pytz -psycopg[binary] -uvicorn transmission-rpc stream-zip anyio websockets uvloop -watchfiles diff --git a/app/requirements-dev.txt b/app/requirements-dev.txt new file mode 100644 index 0000000..2331212 --- /dev/null +++ b/app/requirements-dev.txt @@ -0,0 +1,2 @@ +-r requirements-common.txt +daphne \ No newline at end of file diff --git a/app/requirements-prod.txt b/app/requirements-prod.txt new file mode 100644 index 0000000..c657880 --- /dev/null +++ b/app/requirements-prod.txt @@ -0,0 +1,2 @@ +-r requirements-common.txt +uvicorn \ No newline at end of file diff --git a/app/static/oxpanel.png b/app/static/oxpanel.png new file mode 100644 index 0000000000000000000000000000000000000000..d869281c60beeed2c619d460d42a7a1281705917 GIT binary patch literal 7580 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 literal 0 HcmV?d00001 diff --git a/app/templates/base.html b/app/templates/base.html index 802700b..bd69915 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -1,9 +1,11 @@ -{% load django_vite %} +{% load django_vite %}{% load static %} {% block base_title %}Oxpanel{% block title %}{% endblock %}{% endblock %} - {% block base_css %} + + + {% block base_css %} {# {% stylesheet_pack 'app' %}#} {% block css %}{% endblock %} diff --git a/docker-compose.yml b/docker-compose.yml index b21bfa2..536c402 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,6 +58,7 @@ services: args: puid: ${USER_ID} pgid: ${GROUP_ID} + debug: ${DEBUG:-false} env_file: - .env volumes: