Added dashboard docker configuration
This commit is contained in:
@@ -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
3
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
Vocard.rar
|
||||
.env
|
||||
*.pyc
|
||||
settings.json
|
||||
settings.json
|
||||
logs
|
||||
11
Dockerfile
11
Dockerfile
@@ -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"]
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -10,3 +10,4 @@ websockets==10.4
|
||||
Flask==2.2.3
|
||||
Flask-SocketIO==5.3.2
|
||||
psutil==5.9.5
|
||||
werkzeug==2.2.2
|
||||
|
||||
@@ -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
17
supervisord.conf
Normal 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
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user