Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hotfix for js loading issues #233

Merged
merged 12 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
chore(DOCKER): for better experience split docker compose into produc…
…tion and local
  • Loading branch information
MagneticNeedle committed Oct 19, 2023
commit bf2fa093e92d24d8df1ef77940d16feecc48df73
File renamed without changes.
9 changes: 9 additions & 0 deletions bfportal/core/management/commands/playground.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from pathlib import Path

from django.core.management import BaseCommand
from loguru import logger


class Command(BaseCommand):
def handle(self, *args, **options):
logger.debug("This is a command to be used as a playground")
145 changes: 10 additions & 135 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,131 +2,12 @@ version: "3.7"

services:

# Production environment services
db:
image: postgres:14
restart: always
profiles:
- production
volumes:
- postgress_db:/var/lib/postgresql/data

environment:
- POSTGRES_NAME=${DB_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: "10s"
timeout: "5s"
retries: 5
start_period: "10s"

bfportal_gg_production:
image: docker.pkg.github.com/battlefield-portal-community/bfportal.gg/main:latest
restart: always
command: bash -c "python manage.py migrate --noinput && python manage.py ensure_superuser --username bfportal --email [email protected] --password '${SU_PASSWD}' && python manage.py ensure_initialization && gunicorn --workers 4 --bind 0.0.0.0:${PRODUCTION_PORT}"
user: "33:33"
profiles:
- production
ports:
- "${PRODUCTION_PORT}:${PRODUCTION_PORT}"
volumes:
- type: "bind"
source: /var/www/bfportal-media
target: /app/media
environment:
- PRODUCTION_KEY=${PRODUCTION_KEY}
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
- DISCORD_SECRET=${DISCORD_SECRET}
- DB_NAME=${DB_NAME}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=db # takes precedent over .env file
- DEBUG=${DEBUG}
- APPROVAL_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_CHANNEL_WEBHOOK_ID=${APPROVAL_CHANNEL_WEBHOOK_ID}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID}
- PRODUCTION_HOST=${PRODUCTION_HOST}
- PRODUCTION_PORT=${PRODUCTION_PORT}
- OWNERS=${OWNERS}
depends_on:
- db
healthcheck:
test: curl -fk http://0.0.0.0:${PRODUCTION_PORT}/ || exit 1
interval: "60s"
timeout: "3s"
retries: 3
start_period: "5s"

# Dev environment services (on remote server)
db_devel:
image: postgres:14
restart: always
profiles:
- dev
volumes:
- postgress_db_devel:/var/lib/postgresql/data

environment:
- POSTGRES_NAME=${DB_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: "10s"
timeout: "5s"
retries: 5
start_period: "10s"

bfportal_gg_dev:
image: docker.pkg.github.com/battlefield-portal-community/bfportal.gg/dev:latest
restart: always
command: bash -c "python manage.py migrate --noinput && python manage.py ensure_superuser --username bfportal --email [email protected] --password '${SU_PASSWD}' && python manage.py ensure_initialization && gunicorn --workers 4 --bind 0.0.0.0:${DEVEL_PORT}"
user: "33:33"
profiles:
- dev
ports:
- "${DEVEL_PORT}:${DEVEL_PORT}"
volumes:
- type: "bind"
source: /var/www/bfportal-devel-media
target: /app/media
environment:
- PRODUCTION_KEY=${PRODUCTION_KEY}
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
- DISCORD_SECRET=${DISCORD_SECRET}
- DB_NAME=${DB_NAME}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=db_devel # takes precedent over .env file
- DEBUG=True
- APPROVAL_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_CHANNEL_WEBHOOK_ID=${APPROVAL_CHANNEL_WEBHOOK_ID}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID}
- PRODUCTION_HOST=${PRODUCTION_HOST}
- PRODUCTION_PORT=${PRODUCTION_PORT}
- OWNERS=${OWNERS}
- DEVEL_PORT=${DEVEL_PORT}
depends_on:
- db_devel
healthcheck:
test: curl -fk http://0.0.0.0:${DEVEL_PORT}/ || exit 1
interval: "60s"
timeout: "3s"
retries: 3
start_period: "5s"

# Dev environment services (on local machine)
db_dev_local:
db:
image: postgres:14
restart: always
volumes:
- postgress_db_dev_local:/var/lib/postgresql/data
profiles:
- dev_local
- postgres_db_dev_local:/var/lib/postgresql/data
environment:
- POSTGRES_NAME=${DB_NAME}
- POSTGRES_USER=${DB_USERNAME}
Expand All @@ -138,16 +19,14 @@ services:
retries: 5
start_period: "10s"

bfportal_dev_local:
bfportal:
build:
context: .
dockerfile: Dockerfile
dockerfile: docker/Dockerfile
target: dev
restart: no
command: bash -c "python manage.py migrate --noinput && python manage.py ensure_superuser --username bfportal --email [email protected] --password 1234 && python manage.py ensure_initialization && python manage.py mock -u 10 -e 50 --noregen && python manage.py runserver 0.0.0.0:8000"
container_name: bfportal_dev_local
profiles:
- dev_local
ports:
- "8000:8000"
volumes:
Expand All @@ -158,7 +37,7 @@ services:
- DB_NAME=${DB_NAME}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=db_dev_local # takes precedent over .env file
- POSTGRES_HOST=db # takes precedent over .env file
- DEBUG=True
- APPROVAL_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_CHANNEL_WEBHOOK_ID=${APPROVAL_CHANNEL_WEBHOOK_ID}
Expand All @@ -175,26 +54,22 @@ services:
retries: 5
start_period: "10s"
depends_on:
- db_dev_local
- db

bfportal_dev_local_tailwind:
tailwind:
build:
context: .
dockerfile: Dockerfile
dockerfile: docker/dockerfile
target: dev
command: npm run watch
restart: always
container_name: bfportal_dev_local_tailwind
profiles:
- dev_local
volumes:
- ./bfportal:/app
depends_on:
bfportal_dev_local:
bfportal:
condition: service_healthy
stdin_open: true

volumes:
postgress_db_devel:
postgress_db:
postgress_db_dev_local:
postgres_db_dev_local:
123 changes: 123 additions & 0 deletions docker/docker-compose.production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
version: "3.7"
services:

# Production environment services
db:
image: postgres:14
restart: always
profiles:
- production
volumes:
- postgress_db:/var/lib/postgresql/data

environment:
- POSTGRES_NAME=${DB_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: "10s"
timeout: "5s"
retries: 5
start_period: "10s"

bfportal_gg_production:
image: docker.pkg.github.com/battlefield-portal-community/bfportal.gg/main:latest
restart: always
command: bash -c "python manage.py migrate --noinput && python manage.py ensure_superuser --username bfportal --email [email protected] --password '${SU_PASSWD}' && python manage.py ensure_initialization && gunicorn --workers 4 --bind 0.0.0.0:${PRODUCTION_PORT}"
user: "33:33"
profiles:
- production
ports:
- "${PRODUCTION_PORT}:${PRODUCTION_PORT}"
volumes:
- type: "bind"
source: /var/www/bfportal-media
target: /app/media
environment:
- PRODUCTION_KEY=${PRODUCTION_KEY}
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
- DISCORD_SECRET=${DISCORD_SECRET}
- DB_NAME=${DB_NAME}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=db # takes precedent over .env file
- DEBUG=${DEBUG}
- APPROVAL_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_CHANNEL_WEBHOOK_ID=${APPROVAL_CHANNEL_WEBHOOK_ID}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID}
- PRODUCTION_HOST=${PRODUCTION_HOST}
- PRODUCTION_PORT=${PRODUCTION_PORT}
- OWNERS=${OWNERS}
depends_on:
- db
healthcheck:
test: curl -fk http://0.0.0.0:${PRODUCTION_PORT}/ || exit 1
interval: "60s"
timeout: "3s"
retries: 3
start_period: "5s"

# Dev environment services (on remote server)
db_devel:
image: postgres:14
restart: always
profiles:
- dev
volumes:
- postgress_db_devel:/var/lib/postgresql/data

environment:
- POSTGRES_NAME=${DB_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: "10s"
timeout: "5s"
retries: 5
start_period: "10s"

bfportal_gg_dev:
image: docker.pkg.github.com/battlefield-portal-community/bfportal.gg/dev:latest
restart: always
command: bash -c "python manage.py migrate --noinput && python manage.py ensure_superuser --username bfportal --email [email protected] --password '${SU_PASSWD}' && python manage.py ensure_initialization && gunicorn --workers 4 --bind 0.0.0.0:${DEVEL_PORT}"
user: "33:33"
profiles:
- dev
ports:
- "${DEVEL_PORT}:${DEVEL_PORT}"
volumes:
- type: "bind"
source: /var/www/bfportal-devel-media
target: /app/media
environment:
- PRODUCTION_KEY=${PRODUCTION_KEY}
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
- DISCORD_SECRET=${DISCORD_SECRET}
- DB_NAME=${DB_NAME}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=db_devel # takes precedent over .env file
- DEBUG=True
- APPROVAL_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_CHANNEL_WEBHOOK_ID=${APPROVAL_CHANNEL_WEBHOOK_ID}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_TOKEN}
- APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID=${APPROVAL_SUCCESS_CHANNEL_WEBHOOK_ID}
- PRODUCTION_HOST=${PRODUCTION_HOST}
- PRODUCTION_PORT=${PRODUCTION_PORT}
- OWNERS=${OWNERS}
- DEVEL_PORT=${DEVEL_PORT}
depends_on:
- db_devel
healthcheck:
test: curl -fk http://0.0.0.0:${DEVEL_PORT}/ || exit 1
interval: "60s"
timeout: "3s"
retries: 3
start_period: "5s"

volumes:
postgress_db_devel:
postgress_db:
File renamed without changes.
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ exclude=
*/migrations/*
.venv
__pycache__
bfportal/core/management/commands/playground.py
# Ignore some of the most obnoxious linting errors.
ignore=
W503,E226,
Expand Down