Skip to content
Esclide edited this page Apr 28, 2020 · 58 revisions

CsteerDevops course study project. Wiki-framework is a fillable database in wiki format, deployed using Docker containers. Can be interacted with using either Web UI or Telegram Bots. Currently is being deployed to nginx server.

Last validated changes in develop branch.

Technologies:

  • MongoDB
  • Python 3.7 with framework Flask
  • React
  • Nginx
  • Telegram API
  • Docker-compose

Project schema can be found here.
Database document schema.json can be found here

Web UI is accessible through http://wf.csteer.pro/ or http://188.124.37.185
API documentation (swagger) through http://188.124.37.185:5000/api/wiki/doc

RUN

To run this project execute this commands:

curl -O https://raw.githubusercontent.com/CsteerDevops1/wiki-framework/develop/deploy.sh

chmod a+x deploy.sh

./deploy.sh project_dir

If you didn't have docker-compose early, you should logout and login in your system account to add your account in docker group.

Then you need to configure .env files in project_name/telegramBots/initBot/.env and project_name/telegramBots/userBot/.env. Or just leave them empty and configure later.

After that run deploy.sh again.

More information about deployment procedure

Working

You can check that the app is working. Try:

Structure

All project divided into modules. Each module represents a service and contained in own folder.

List of services:

  1. Core Service
  2. WEB UI
  3. Telegram Bots
    3.1 CS Wiki Search Bot
    3.2 CS Wiki Media Bot
    3.3 CS Wiki Edit Bot
  4. Translator

Short description of services

Core service is API for interacting with database.

Powered by Nginx and React. Allow to get, add, edit and delete object in database.

CS Wiki Search Bot - that bot allows you to search information in database.
CS Wiki Media Bot - that bot allows you to add data, stored in database.
CS Wiki Edit Bot - that bot allows you to edit data, stored in database. You can use inline Wiki Search Bot to choose object from db.

Background name field translator. This use Yandex Translator for translating.

Clone this wiki locally