Техническая инструкция по базовой установке и настройке

Unicraft uLearn BOX можно установить на любую операционную систему. Однако, официально поддерживаемой является Ubuntu 22.04. Это значит, что именно на этой ОС наша платформа гарантированно работоспособна.

Шаг 1. Установите docker и docker-compose.

Шаг 2. Создайте папку приложения, мы рекомендуем выбрать /opt/unicraft (далее в инструкции мы будем отталкиваться от неё)

Шаг 3. Создайте папки для nginx (веб-сервер) и rethinkdb (база данных):

mkdir /opt/unicraft/nginx
mkdir /opt/unicraft/rethinkdb

Шаг 4. Создайте папки, где будут храниться файловые данные Unicraft:

mkdir /opt/unicraft/build
mkdir /opt/unicraft/lms_resources

Шаг 5. Создайте ключи безопасности (обратите внимание, что папка /opt/unicraft/.uclms/keys должна быть предварительно создана):

openssl ecparam -name secp521r1 -genkey -noout -out /opt/unicraft/.uclms/keys/uclms.pem
openssl ec -in /opt/unicraft/.uclms/keys/uclms.pem -pubout -outform PEM -out /opt/unicraft/.uclms/keys/uclms.pub.pem

Шаг 6. По желанию, добавьте TLS-сертификаты в папку /opt/nginx/certs/_ВАШ ДОМЕН_ (их можно получить от Let’s Encrypt с помощью утилиты certbot)

Шаг 7. Создайте конфигурацию nginx (предлагаем разместить её в /opt/unicraft/nginx/_ВАШ ДОМЕН_.conf):

upstream unicraft_service {
  server unicraft:23000;
} 

server {
  listen 80;
  server_name _ВАШ ДОМЕН_;
  return 301 https://_ВАШ ДОМЕН_$request_uri;
}

server {
  listen 443 ssl;
  server_name _ВАШ ДОМЕН_;
  
  ssl_certificate /etc/nginx/certs/_ВАШ ДОМЕН_/fullchain.pem;
  ssl_certificate_key /etc/nginx/certs/_ВАШ ДОМЕН_/privkey.pem;
  ssl_trusted_certificate /etc/nginx/certs/_ВАШ ДОМЕН_/chain.pem;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';

  set $root /opt/unicraft/build;
  set $resources /opt/unicraft/lms_resources;

  location /static {
    root $root;
    access_log off;
    expires 10m;
  }

  location /courses_resources {
    root $resources;
    internal;
  }
  
  location /public_resources {
    alias $resources/public;
    access_log off;
  }

  location /certs {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://unicraft_service/api/v2/certs;
  }

  location / {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://unicraft_service;
  }
}

Данная конфигурация подразумевает наличие TLS-сертификатов.

Шаг 8. Создайте конфигурацию docker-compose (предлагаем разместить её в /opt/unicraft/docker-compose.yml):

version: "3"
services:
  nginx:
    image: nginx:latest
    volumes:
      - "/opt/unicraft/nginx/_ВАШ ДОМЕН_.conf:/etc/nginx/conf.d/_ВАШ ДОМЕН_.conf:ro"
      - "/opt/unicraft/nginx/.htpasswd:/etc/nginx/.htpasswd:ro"
      - "/opt/unicraft/nginx/certs:/etc/nginx/certs:ro"
      - "/opt/unicraft/lms_resources:/opt/unicraft/lms_resources:ro"
      - "/opt/unicraft/build:/opt/unicraft/build:ro"
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - unicraft
      - rethinkdb

  unicraft:
    image: _ЗДЕСЬ УКАЖИТЕ ПРЕДОСТАВЛЕННЫЙ НАМИ DOCKER-ОБРАЗ_
    volumes:
      - "/opt/unicraft/lms_resources:/lms/lms_resources" 
      - "/opt/unicraft/.uclms:/lms/.uclms:ro"
      - "/opt/unicraft/build:/lms/build"
      - "/opt/unicraft/lms_resources:/ulearn/lms_resources"
      - "/opt/unicraft/.uclms:/ulearn/.uclms:ro"
    ports:
      - "23000:23000"
    environment:
      - RETHINKDB_HOST=rethinkdb
      - RETHINKDB_PORT=28015
      - BEANSTALKD_HOST=beanstalkd
      - BEANSTALKD_PORT=11300
    depends_on:
      - rethinkdb
      - beanstalkd

  rethinkdb:
    image: rethinkdb:2.4.0
    volumes:
      - "/opt/unicraft/rethinkdb:/data/rethinkdb_data"

  beanstalkd:
    image: "schickling/beanstalkd:latest"

Шаг 9. Запустите приложение:

docker-compose up -d

Шаг 10. Проверьте, что приложение открывается по вашему домену.

Получите бесплатную консультацию по выбору обучающей платформы

Или позвоните по телефону +7 (495) 532-69-02

consult_man

Unicraft © 2016-2024 Все права защищены.