Compare commits

...

2 Commits

Author SHA1 Message Date
ajax a071a8d71a Docs 2021-09-11 17:29:42 +01:00
ajax 77e4ad91ed Onboarding to new environment with remote deployment to server 2021-09-11 17:23:14 +01:00
6 changed files with 38 additions and 8 deletions

1
.gitignore vendored
View File

@ -162,3 +162,4 @@ app/run_venv.sh
# Local History for Visual Studio Code
.history/
/reference config/

View File

@ -222,3 +222,16 @@ This should also mean that the sign-up prompts should persist over reboots.
Other developers for Discord Components recommended the use of dynamic call-backs, however these do not persist after reboots so are not suitable for this purpose.
Discord will need to make substantial API updates in the future for rolling out the Threads feature.
The bot will need updating again then.
## Remote Deployment to docker server
Configure local env to know about the server
- ` docker context create remote --docker "host=tcp://<hostname>:2376,ca=<full path>/ca.pem,cert=<full path>/cert.pem,key=<full path>/key.pem"`
- create a folder on the server to use for the config
- create/amend a docker compose for that env (eg docker-compose-nas)
- put the config in that folder
- deploy using that config `docker compose -f docker-compose-nas.yml up -d`
- hope
- if its a QNAP nas, manually copy the docker compose file to `/share/CACHEDEV1_DATA/VMs/container-station-data/application/geas-bot` because its stupid
-

View File

@ -1,7 +1,10 @@
FROM python:slim
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update -y && apt-get upgrade -y && apt-get install libopus0 -y && \
pip install --upgrade pip && pip install -r requirements.txt && \
apt-get autoremove -y
COPY . /app
WORKDIR /app
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install libopus0 -y
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN apt-get autoremove -y
CMD python3 -u ./bot.py

View File

@ -25,9 +25,13 @@ def yaml_dump(data:dict, filepath:str):
yaml.dump(data, file)
# Locate or create config file. Read from environment variables to locate file, and if missing or not valid then use default location.
configFile = os.getenv('CONFIG') if ((os.getenv('CONFIG').endswith('.yml') or os.getenv('CONFIG').endswith('.yaml')) and not os.getenv('CONFIG').endswith('config_blueprint.yml')) else './data/config.yml'
configFile = './data/config.yml'
if os.getenv('CONFIG'):
if os.getenv('CONFIG').endswith(('.yml','.yaml')) and not os.getenv('CONFIG').endswith('config_blueprint.yml'):
configFile = os.getenv('CONFIG')
if not os.path.exists(configFile): yaml_dump({},configFile)
if not os.path.exists(configFile):
yaml_dump({},configFile)
# Locate or create data file. Same as above.
dataFile = os.getenv('DATA') if ((os.getenv('DATA').endswith('.yml') or os.getenv('DATA').endswith('.yaml')) and not os.getenv('DATA').endswith('data_blueprint.yml')) else './data/data.yml'

9
docker-compose-nas.yml Normal file
View File

@ -0,0 +1,9 @@
version: '3.5'
services:
geasbot-app:
build: ./app
container_name: geas_bot
volumes:
- /share/Public/geasbot/data:/app/data
restart: unless-stopped

View File

@ -5,5 +5,5 @@ services:
build: ./app
container_name: geas_bot
volumes:
- ./app:/usr/src/app
- ./app:/app
restart: unless-stopped