Настройка общедоступного пользовательского интерфейса

На этой странице объясняется, как настроить пользовательский интерфейс polkadot-js/apps для Edgeware, используя ветку Edgeware приложения. Основное отличие заключается в том, что ветвь Edgeware поддерживает типы, определенные в модулях голосования и управления Edgeware.

0. Инициализация сервера

Подготовьте сервер подходящего размера у одного из рекомендуемых поставщиков VPS.

Мы предполагаем, что вы используете Ubuntu 18.04 x64; другие версии или операционные системы потребуют внесения изменений в эти инструкции.

Настройте DNS, указывающий на сервер, например apps.edgewa.re. Настоятельно рекомендуется сделать это сейчас.

SSH на сервер.

1. Установка apps и настройка их как системной службы

Клонируйте репозиторий apps:

git clone https://github.com/hicommonwealth/apps.git
cd apps

Установите nodejs 11.x и yarn. Вам нужно будет добавить новые репозитории пакетов:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
apt update
apt install -y nodejs yarn

Установите зависимости:

yarn

Создайте юнит службы для systemd:

{
    echo '[Unit]'
    echo 'Description=EdgewareApps'
    echo '[Service]'
    echo 'Type=exec'
    echo 'WorkingDirectory='`pwd`
    echo 'Environment=ENV=production'
    echo 'ExecStart=yarn run start'
    echo '[Install]'
    echo 'WantedBy=multi-user.target'
} > /etc/systemd/system/apps.service

Запустите и проверьте, работает ли служба:

systemctl start apps
systemctl status apps
curl localhost:3000

2. Настройка SSL-сертификата

Чтобы сделать apps безопасным и доступным через SSL, мы будем использовать Let’s Encrypt и certbot.

Установите Certbot:

apt -y install software-properties-common
add-apt-repository universe
add-apt-repository ppa:certbot/certbot
apt update
apt -y install certbot python-certbot-nginx

Запустите certbot, чтобы получить сертификат от Let's Encrypt:

certbot --nginx

Certbot задаст вам несколько вопросов, запустит собственный веб-сервер и поговорит с Let's Encrypt, чтобы выдать сертификат.

Когда он спросит вас, следует ли перенаправлять трафик с порта 80 на SSL, вы должны ответить да.

3. Обновление конфигурации nginx

Установите предполагаемый публичный адрес сервера, например. apps.edgewa.re в качестве переменной среды:

export name=apps.edgewa.re

Настройте конфигурацию nginx. Это внедрит публичный адрес, который вы только что определили.

{
    echo 'user       www-data;  ## Default: nobody'
    echo 'worker_processes  5;  ## Default: 1'
    echo 'error_log  /var/log/nginx/error.log;'
    echo 'pid        /var/run/nginx.pid;'
    echo 'worker_rlimit_nofile 8192;'
    echo ''
    echo 'events {'
    echo '  worker_connections  4096;  ## Default: 1024'
    echo '}'
    echo ''
    echo 'http {'
    echo '    map $http_upgrade $connection_upgrade {'
    echo '      default upgrade;'
    echo "      \'\' close;"
    echo '    }'
    echo '    server {'
    echo '      listen       443 ssl;'
    echo '      server_name  '$name';'
    echo ''
    echo '      ssl_certificate /etc/letsencrypt/live/'$name'/cert.pem;'
    echo '      ssl_certificate_key /etc/letsencrypt/live/'$name'/privkey.pem;'
    echo '      ssl_session_timeout 5m;'
    echo '      ssl_protocols  SSLv2 SSLv3 TLSv1;'
    echo '      ssl_ciphers  HIGH:!aNULL:!MD5;'
    echo '      ssl_prefer_server_ciphers   on;'
    echo ''
    echo '      location / {'
    echo '          proxy_pass http://127.0.0.1:3000 ;'
    echo '      }'
    echo '    }'
    echo '}'
} > /etc/nginx/nginx.conf

Запустите nginx и убедитесь, что он запускается при запуске системы:

systemctl daemon-reload
systemctl start nginx
systemctl enable nginx

Убедитесь, что ваш сервер работает в локальном браузере.