Skip to content

Commit

Permalink
It finally works as a single app!
Browse files Browse the repository at this point in the history
  • Loading branch information
duncte123 committed Mar 12, 2024
1 parent 9163720 commit fc9c59f
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 10 deletions.
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ FROM python:3.12

WORKDIR /app

RUN pip install django~=3.2
RUN pip install django~=5.0
RUN django-admin startproject tracker_development

WORKDIR /app/tracker_development/donation-tracker
Expand All @@ -39,7 +39,8 @@ COPY --from=client /app/tracker/ tracker
COPY ./tracker/tracker tracker
COPY ./tracker/setup.py ./
RUN pip install -e .
#RUN pip install 'uvicorn[daphne]' gunicorn
RUN pip install daphne
#RUN pip install gunicorn

WORKDIR /app/tracker_development
COPY ./settings.py ./wsgi.py ./asgi.py ./local_statics.py ./routing.py ./urls.py /app/tracker_development/tracker_development/
Expand Down
20 changes: 19 additions & 1 deletion asgi.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,22 @@

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tracker_development.settings')

application = get_asgi_application()
django_app = get_asgi_application()

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.security.websocket import AllowedHostsOriginValidator
from django.urls import path

import tracker.routing

application = ProtocolTypeRouter({
'http': django_app,
'websocket': AllowedHostsOriginValidator(
AuthMiddlewareStack(
URLRouter(
[path('', URLRouter(tracker.routing.websocket_urlpatterns))]
)
)
),
})
32 changes: 29 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
version: "3.7"
services:
app:
# image: "esamarathon/tracker:latest"
build:
context: .
dockerfile: Dockerfile
Expand All @@ -11,14 +10,12 @@ services:
volumes:
- "./db:/app/tracker_development/db"
- "./blank.json:/app/tracker_development/blank.json"
# - "./tracker/:/app/tracker_development/donation-tracker/"
- "./local.py:/app/tracker_development/tracker_development/local.py"
- "static:/var/www/html/static:rw"
environment:
- TRACKER_ALLOWED_HOSTS="localhost, esatracker.eu.ngrok.io"
- TRACKER_DOMAIN="localhost"
- TRACKER_DEBUG=True
# - TRACKER_DATABASES='{"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": "db/testdb"}}'
- TRACKER_TIME_ZONE="Europe/Amsterdam"
- TRACKER_SITE_NAME="ESA Dev Tracker"
- TRACKER_SITE_PREFIX="/"
Expand All @@ -30,6 +27,35 @@ services:
- TRACKER_USE_NEW_DONATE_LAYOUT=False
ports:
- "8000:8000"
# app_ws:
# build:
# context: .
# dockerfile: Dockerfile
# stdin_open: true # docker run -i
# tty: true # docker run -t
## entrypoint: /bin/bash
# entrypoint: daphne -b 0.0.0.0 -p 8001 tracker_development.asgi:application
## entrypoint: gunicorn --bind 0.0.0.0:8001 tracker_development.asgi:application -k uvicorn.workers.UvicornWorker
# volumes:
# - "./db:/app/tracker_development/db"
# - "./blank.json:/app/tracker_development/blank.json"
# - "./local.py:/app/tracker_development/tracker_development/local.py"
# - "static:/var/www/html/static:rw"
# environment:
# - TRACKER_ALLOWED_HOSTS="localhost, esatracker.eu.ngrok.io"
# - TRACKER_DOMAIN="localhost"
# - TRACKER_DEBUG=True
# - TRACKER_TIME_ZONE="Europe/Amsterdam"
# - TRACKER_SITE_NAME="ESA Dev Tracker"
# - TRACKER_SITE_PREFIX="/"
# - TRACKER_SECRET_KEY="HAhAHAHhahahahhahahhahahhahahahahha"
# - TRACKER_STATIC_URL="/static"
# - TRACKER_STATIC_ROOT="/var/www/html/static"
# - TRACKER_HAS_GDOC=False
# - TRACKER_HAS_EMAIL=False
# - TRACKER_USE_NEW_DONATE_LAYOUT=False
# ports:
# - "8001:8001"
web:
image: nginx:latest
volumes:
Expand Down
10 changes: 7 additions & 3 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,13 @@ rm -rf /var/ww/html/static/gen || true
# Collect all the static assets
python manage.py collectstatic --noinput

if [ -x "$(command -v gunicorn)" ]; then
# gunicorn --bind 0.0.0.0:8000 tracker_development.wsgi
gunicorn --bind 0.0.0.0:8000 tracker_development.asgi:application -k uvicorn.workers.UvicornWorker
if [ -x "$(command -v daphne)" ]; then
echo "Using daphne server"
daphne -b 0.0.0.0 -p 8000 tracker_development.asgi:application
elif [ -x "$(command -v gunicorn)" ]; then
echo "Using gunicorn server"
gunicorn --bind 0.0.0.0:8000 tracker_development.wsgi
# gunicorn --bind 0.0.0.0:8000 tracker_development.asgi:application -k uvicorn.workers.UvicornWorker
else
echo "Gunicorn not installed: Using built-in server."
# watchmedo shell-command --patterns="*.css" -R -c "python manage.py collectstatic --noinput" &
Expand Down
19 changes: 19 additions & 0 deletions nginx_dev.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,26 @@ http {
upstream tracker {
server app:8000;
}

# upstream tracker_ws {
# server app_ws:8001;
# }

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
location /ws {
proxy_pass http://tracker;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}

location / {
proxy_pass http://tracker;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Expand Down
2 changes: 1 addition & 1 deletion tracker

0 comments on commit fc9c59f

Please sign in to comment.