-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment procedure
Raxel55 edited this page Mar 18, 2020
·
30 revisions
Don't run docker-compose by yourself, docker will set wrong rights on ~/.volumes/mongo/data/db folder, which is used by mongodb. Docker-compose elf file will be downloaded to pwd and used in script.
Your system should have these programs on Linux:
- git
- docker
You can install it by yourself using apt-get:
sudo apt-get update
sudo apt-get install -y git docker.io
Or you can use a script below for it. The script will install all requirements and run the project.
To deploy on your ubuntu machine you need:
- Download or copy deploy.sh script from root folder in repository on your machine (currently this file is only on develop branch)
Download by curl:
curl -O https://raw.githubusercontent.com/CsteerDevops1/wiki-framework/develop/deploy.sh
- Ensure that .env files are created or environment variables set in proper containers:
-
project_name/telegramBots/userBot/.env- used to set telegram proxy and bot token -
project_name/telegramBots/initBot/.env- used to set bot token
You can remove bots from docker-compose, if you don't need them. Or create empty files in order to configure them later.
- Ensure that you have permissions to run docker (try
docker psand check if there are no permissions denied errors). If docker is not installed you will have to run the script twice (it's gonna fail first time).logoutandloginin your account to get docker permissions and run the script again.
- Run
deploy.sh project_folderto create or update running version of this project. Project folder will be created if it doesn't exist. Script usesdevelopbranch for now.
Use these command to run the script:
chmod a+x deploy.sh
./deploy.sh project_dir
- It may asks for sudo access to install necessary requirements (git/docker)
This will launch 6 containers:
-
flask_apihosts flask server on 5000 port for api to database -
user_botcs_wiki_search_bot polling, bot that allows you to search information in database by "name" field -
init_botcs_wiki_media_bot polling, bot that allows you to edit data, stored in database -
translatorthis container translates names and descriptions for each not-translated document in database -
web_uihosts nginx on 8080, giving away web ui pages -
mongodb_containermongo database, files in ~/.volumes/mongo/data/db
Known problems:
- if script installs docker, it will fail running docker-compose - you need to ensure that your groups are updated and you are in docker group