mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-03-31 06:24:09 -04:00
support postgres, mysql docker
This commit is contained in:
@@ -24,7 +24,7 @@ WORKDIR /app
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y --no-install-recommends nodejs npm iputils-ping nmap &&\
|
||||
apt-get install -y --no-install-recommends default-mysql-client nodejs npm iputils-ping nmap &&\
|
||||
apt-get clean &&\
|
||||
rm -rf /var/lib/{apt,dpkg,cache,log}/
|
||||
COPY --from=python-build /python-build/venv /app/venv
|
||||
|
||||
@@ -13,27 +13,25 @@ if os.getenv("DJANGO_SUPERUSER_USER") and os.getenv("DJANGO_SUPERUSER_PASSWORD")
|
||||
else:
|
||||
print('Django user exists')
|
||||
|
||||
# create django secret key
|
||||
if not os.getenv("DJANGO_SUPERUSER_PASSWORD"):
|
||||
os.environ["DJANGO_SECRET_KEY"] = get_random_secret_key()
|
||||
|
||||
# reset visitors
|
||||
[i.delete() for i in Websocket.objects.all()]
|
||||
Websocket.objects.create(visitors=0)
|
||||
|
||||
# notifications
|
||||
if not os.getenv("PING_INTERVAL"):
|
||||
os.environ["PING_INTERVAL"] = 5
|
||||
if os.environ.get("PING_INTERVAL"):
|
||||
ping_interval = os.environ.get("PING_INTERVAL")
|
||||
else:
|
||||
ping_interval = 5
|
||||
Settings.objects.update_or_create(
|
||||
id=1,
|
||||
defaults={
|
||||
"interval": os.getenv("PING_INTERVAL")
|
||||
"interval": ping_interval
|
||||
}
|
||||
)
|
||||
|
||||
# register device ping task
|
||||
schedule, created = IntervalSchedule.objects.get_or_create(
|
||||
every=int(os.getenv("PING_INTERVAL")),
|
||||
every=ping_interval,
|
||||
period=IntervalSchedule.SECONDS,
|
||||
)
|
||||
if created:
|
||||
|
||||
@@ -5,6 +5,7 @@ cd /app/backend/ || exit
|
||||
# wait for db and redis
|
||||
if [ "${DB_TYPE}" != "sqlite" ]; then
|
||||
/usr/bin/env bash ./wait-for-it.sh "${DB_HOST}":"${DB_PORT}" -t 300 -s
|
||||
echo "sleeping 20"
|
||||
sleep 20
|
||||
fi
|
||||
/usr/bin/env bash ./wait-for-it.sh "${REDIS_HOST}":"${REDIS_PORT}" -t 300 -s
|
||||
@@ -19,6 +20,12 @@ elif [ "$PING_INTERVAL" -lt 5 ]; then
|
||||
PING_INTERVAL=5
|
||||
fi
|
||||
|
||||
# create django secret key
|
||||
if [ -z "$DJANGO_SECRET_KEY" ]; then
|
||||
DJANGO_SECRET_KEY=$(python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())')
|
||||
export DJANGO_SECRET_KEY
|
||||
fi
|
||||
|
||||
# init django
|
||||
python3 manage.py makemigrations
|
||||
python3 manage.py migrate
|
||||
|
||||
@@ -6,23 +6,23 @@ services:
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- DJANGO_SUPERUSER_USER=admin
|
||||
- DJANGO_SUPERUSER_PASSWORD=admin
|
||||
- DJANGO_SECRET_KEY=secret
|
||||
- DJANGO_DEBUG=False
|
||||
- DJANGO_LANGUAGE_CODE=de
|
||||
- DJANGO_TIME_ZONE=Europe/Berlin
|
||||
- DJANGO_PORT=8000
|
||||
- REDIS_HOST=127.0.0.1
|
||||
- REDIS_PORT=6379
|
||||
- DB_TYPE=mysql
|
||||
- FRONTEND_PORT=8000
|
||||
- BACKEND_PORT=8001
|
||||
- DB_TYPE=mysql # required
|
||||
- REDIS_HOST=127.0.0.1 # required (make sure to use the same ip as below)
|
||||
- REDIS_PORT=6379 # required (make sure to use the same port as below)
|
||||
- DB_HOST=127.0.0.1
|
||||
- DB_PORT=3306
|
||||
- DB_NAME=upsnap
|
||||
- DB_USER=upsnap
|
||||
- DB_PASSWORD=upsnap
|
||||
- PING_INTERVAL=5
|
||||
- ENABLE_NOTIFICATIONS=True
|
||||
#- PING_INTERVAL=5 # optional (default: 5 seconds)
|
||||
#- DJANGO_SUPERUSER_USER=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SUPERUSER_PASSWORD=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SECRET_KEY=secret # optional (default: randomly generated)
|
||||
#- DJANGO_DEBUG=True # optional (default: False)
|
||||
#- DJANGO_LANGUAGE_CODE=de # optional (default: en)
|
||||
#- DJANGO_TIME_ZONE=Europe/Berlin # optional (default: UTC)
|
||||
depends_on:
|
||||
- upsnap_redis
|
||||
- upsnap_mysql
|
||||
|
||||
@@ -6,23 +6,23 @@ services:
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- DJANGO_SUPERUSER_USER=admin
|
||||
- DJANGO_SUPERUSER_PASSWORD=admin
|
||||
- DJANGO_SECRET_KEY=secret
|
||||
- DJANGO_DEBUG=False
|
||||
- DJANGO_LANGUAGE_CODE=de
|
||||
- DJANGO_TIME_ZONE=Europe/Berlin
|
||||
- DJANGO_PORT=8000
|
||||
- REDIS_HOST=127.0.0.1
|
||||
- REDIS_PORT=6379
|
||||
- DB_TYPE=postgres
|
||||
- FRONTEND_PORT=8000
|
||||
- BACKEND_PORT=8001
|
||||
- DB_TYPE=postgres # required
|
||||
- REDIS_HOST=127.0.0.1 # required (make sure to use the same ip as below)
|
||||
- REDIS_PORT=6379 # required (make sure to use the same port as below)
|
||||
- DB_HOST=127.0.0.1
|
||||
- DB_PORT=5432
|
||||
- DB_NAME=upsnap
|
||||
- DB_USER=upsnap
|
||||
- DB_PASSWORD=upsnap
|
||||
- PING_INTERVAL=5
|
||||
- ENABLE_NOTIFICATIONS=True
|
||||
#- PING_INTERVAL=5 # optional (default: 5 seconds)
|
||||
#- DJANGO_SUPERUSER_USER=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SUPERUSER_PASSWORD=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SECRET_KEY=secret # optional (default: randomly generated)
|
||||
#- DJANGO_DEBUG=True # optional (default: False)
|
||||
#- DJANGO_LANGUAGE_CODE=de # optional (default: en)
|
||||
#- DJANGO_TIME_ZONE=Europe/Berlin # optional (default: UTC)
|
||||
depends_on:
|
||||
- upsnap_redis
|
||||
- upsnap_postgres
|
||||
|
||||
@@ -2,8 +2,7 @@ version: "3"
|
||||
services:
|
||||
app:
|
||||
container_name: upsnap_app
|
||||
#image: seriousm4x/upsnap:latest
|
||||
build: .
|
||||
image: seriousm4x/upsnap:latest
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
@@ -12,13 +11,13 @@ services:
|
||||
- DB_TYPE=sqlite # required
|
||||
- REDIS_HOST=127.0.0.1 # required (make sure to use the same ip as below)
|
||||
- REDIS_PORT=6379 # required (make sure to use the same port as below)
|
||||
- PING_INTERVAL=5 # optional (default: 5 seconds)
|
||||
- DJANGO_SUPERUSER_USER=admin # optional (default: backend login disabled)
|
||||
- DJANGO_SUPERUSER_PASSWORD=admin # optional (default: backend login disabled)
|
||||
- DJANGO_SECRET_KEY=secret # optional (default: randomly generated)
|
||||
- DJANGO_DEBUG=True # optional (default: False)
|
||||
- DJANGO_LANGUAGE_CODE=de # optional (default: en)
|
||||
- DJANGO_TIME_ZONE=Europe/Berlin # optional (default: UTC)
|
||||
#- PING_INTERVAL=5 # optional (default: 5 seconds)
|
||||
#- DJANGO_SUPERUSER_USER=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SUPERUSER_PASSWORD=admin # optional (default: backend login disabled)
|
||||
#- DJANGO_SECRET_KEY=secret # optional (default: randomly generated)
|
||||
#- DJANGO_DEBUG=True # optional (default: False)
|
||||
#- DJANGO_LANGUAGE_CODE=de # optional (default: en)
|
||||
#- DJANGO_TIME_ZONE=Europe/Berlin # optional (default: UTC)
|
||||
depends_on:
|
||||
- upsnap_redis
|
||||
redis:
|
||||
|
||||
Reference in New Issue
Block a user