Added dashboard docker configuration

This commit is contained in:
Choco
2024-07-25 18:02:28 +08:00
parent 939b68e8d9
commit 74bb22ccd3
8 changed files with 78 additions and 28 deletions

View File

@@ -12,3 +12,6 @@ GENIUS_TOKEN = YOUR_GENIUS_TOKEN
MONGODB_URL = YOUR_MONGODB_URL
MONGODB_NAME = YOUR_MONGODB_DB_NAME
DASHBOARD_HOST = 0.0.0.0
DASHBOARD_PORT = 5555

3
.gitignore vendored
View File

@@ -1,4 +1,5 @@
Vocard.rar
.env
*.pyc
settings.json
settings.json
logs

View File

@@ -1,8 +1,8 @@
# Use an official Python runtime as a base image
FROM python:3.12-slim
# Install build dependencies
RUN apt-get update -y && apt-get install -y gcc python3-dev
# Install build dependencies and supervisor
RUN apt-get update -y && apt-get install -y gcc python3-dev supervisor
# Set the working directory to /app
WORKDIR /app
@@ -13,5 +13,8 @@ COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Run main.py when the container launches
CMD ["python", "-u", "main.py"]
# Copy the supervisor configuration file
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Run supervisor to manage both processes main.py and webapp.py
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

View File

@@ -8,6 +8,13 @@ services:
environment:
- _JAVA_OPTIONS=-Xmx1G
- SERVER_PORT=2333
- LAVALINK_SERVER_PASSWORD=youshallnotpass
healthcheck:
test: 'curl -H "Authorization: youshallnotpass" -s http://localhost:2333/version'
interval: 10s
timeout: 10s
retries: 5
start_period: 10s
volumes:
- ./application.yml:/opt/Lavalink/application.yml
networks:
@@ -15,21 +22,21 @@ services:
expose:
- "2333"
mongo:
image: mongo:latest
container_name: mongo
restart: unless-stopped
volumes:
- ./data/mongo/db:/data/db
- ./data/mongo/conf:/data/configdb
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin
expose:
- "27017"
networks:
- local
command: ["mongod", "--oplogSize=1024", "--wiredTigerCacheSizeGB=1", "--auth", "--noscripting"]
# mongo:
# image: mongo:latest
# container_name: mongo
# restart: unless-stopped
# volumes:
# - ./data/mongo/db:/data/db
# - ./data/mongo/conf:/data/configdb
# environment:
# - MONGO_INITDB_ROOT_USERNAME=admin
# - MONGO_INITDB_ROOT_PASSWORD=admin
# expose:
# - "27017"
# networks:
# - local
# command: ["mongod", "--oplogSize=1024", "--wiredTigerCacheSizeGB=1", "--auth", "--noscripting"]
vocard:
image: vocard
@@ -38,12 +45,28 @@ services:
dockerfile: ./Dockerfile
volumes:
- ./settings.json:/app/settings.json
- ./.env:/app/.env
- ./logs/supervisor/:/var/log
environment:
- TOKEN=YOUR_BOT_TOKEN
- CLIENT_ID=YOUR_BOT_CLIENT_ID
- CLIENT_SECRET_ID=YOUR_BOT_CLIENT_SECRET_ID
- SECRET_KEY=DASHBOARD_SECRET_KEY
- BUG_REPORT_CHANNEL_ID=YOUR_DISCORD_CHANNEL_ID
- SPOTIFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID
- SPOTIFY_CLIENT_SECRET=YOUR_SPOTIFY_CLIENT_SECRET
- GENIUS_TOKEN=YOUR_GENIUS_TOKEN
- MONGODB_URL=YOUR_MONGODB_URL
- MONGODB_NAME=YOUR_MONGODB_DB_NAME
- DASHBOARD_HOST=0.0.0.0
- DASHBOARD_PORT=5555
depends_on:
lavalink:
condition: service_started
mongo:
condition: service_started
condition: service_healthy
# mongo:
# condition: service_started
ports:
- "5555:5555"
networks:
- local

View File

@@ -10,3 +10,4 @@ websockets==10.4
Flask==2.2.3
Flask-SocketIO==5.3.2
psutil==5.9.5
werkzeug==2.2.2

View File

@@ -1,9 +1,9 @@
{
"nodes": {
"DEFAULT": {
"host": "127.0.0.1",
"host": "lavalink",
"port": 2333,
"password": "password",
"password": "youshallnotpass",
"secure": false,
"identifier": "DEFAULT"
}

17
supervisord.conf Normal file
View File

@@ -0,0 +1,17 @@
[supervisord]
nodaemon=true
user=root
[program:main]
command=python -u /app/main.py
autostart=true
autorestart=true
stderr_logfile=/var/log/main.err.log
stdout_logfile=/var/log/main.out.log
[program:webapp]
command=python -u /app/web/webapp.py
autostart=true
autorestart=true
stderr_logfile=/var/log/webapp.err.log
stdout_logfile=/var/log/webapp.out.log

View File

@@ -20,7 +20,9 @@ socketio = SocketIO(app)
# Discord OAuth2 credentials
CLIENT_ID = os.getenv("CLIENT_ID")
CLIENT_SECRET = os.getenv("CLIENT_SECRET_ID")
REDIRECT_URI = 'http://127.0.0.1:5000/callback'
HOST = os.getenv("DASHBOARD_HOST")
PORT = os.getenv("DASHBOARD_PORT")
REDIRECT_URI = f'http://{HOST}:{PORT}/callback'
DISCORD_API_BASE_URL = 'https://discord.com/api'
USERS = {}
@@ -208,4 +210,4 @@ def handle_message(user: User, msg):
asyncio.run(ipc_client.send(msg, user))
if __name__ == '__main__':
socketio.run(app, host="127.0.0.1", port=5000)
socketio.run(app, host=HOST, port=PORT, allow_unsafe_werkzeug=True)