OnePlace version 0.2.0. Создание профиля, подписка на теги, мультиаккаунты


 Веб-клиент для блокчейнов Golos и Steem.
 Технологии: Node.js, Vue.js, Loopback, Redis, MySQL
 Релиз версии 0.2.0, запущенной сейчас на сайте. Пост с анонсом и описанием функционала.
 Сайт: https://oneplace.media
 Github: https://github.com/OnePlace-media/oneplace/releases/tag/v0.2.0

Установка

 Клонирование репозитория и установка npm модулей
git clone git@github.com:OnePlace-media/oneplace.git
cd oneplace && npm i
 Установка зависимостей

 Данная инструкция ориентирована на пользоватлей linux с debian дистрибутивами.

 Node.js

 Установите Node.js, мы рекомендуем использовать LTS version и nvm для установки:

nvm install 8.9.4
nvm use 8.9.4

 OnePlace является комплексным решением и имеет дополнительный функционал над обоими блокчейнами. Вам необходимо установить базы данных MySQL и Redis. Используйте Docker Compose с нашим docker-compose.yml или установите в ручном режиме:

 MySQL
sudo apt-get update
sudo apt-get install mysql-server

 В данном репозитории присутствует sql-скрипт для инициализации структуры БД. Используйте его для быстрого старта:

# Вставка sql-скрипта в mysql
mysql -u root < ./server/data/mysql/mysql-init.sql
# Логин Mysql
mysql -u root
# Создаем нового пользователя
CREATE USER 'oneplace'@'localhost' IDENTIFIED BY 'password';
# Настройка привилегий
GRANT ALL PRIVILEGES ON oneplace.* TO 'oneplace'@'localhost'

 Вы также можете использовать MySql WorkBench с нашим model файлом для расширения sql-схемы.

 Redis
sudo apt-get install redis
 Конфигурация

 После установки сконфигурируйте redis-server для работы в качестве демона на локальном порту, для этого в стандартный конфиг (например, /etc/redis/redis.conf) внесите следующие изменения:

daemonise yes
bind 127.0.0.1
port 6379

 После установки зависимостей необходимо создать конфигурационные файлы из шаблонов:

cd server
# Главный config
cp config.sample.json config.json
# Параметры к источникам данных (mysql, redis и т.д.)
cp datasources.sample.json datasources.json
 config.json
{
  ...,
  "postingWrapper": {
    "steemDomain": "URL до ноды STEEM с HTTP JSON-RPC протоколом",
    "golosDomain": "URL до ноды GOLOS с HTTP JSON-RPC протоколом",
    "WIF": "Приватный постинг ключ аккаунта приложения в блокчейнах STEEM и GOLOS",
    "username": "Имя аккаунта приложения в блокчейнах STEEM и GOLOS (без @)"
  }
}
 Сборка и запуск

 Мы приготовили несколько команд для быстрой сборки и запуска всех сервисов. Для начала необходимо собрать рабочую версию клиента с готовым конфигом:

# Сборка фронт части проекта
npm run build

 Для запуска демонов мы рекомендуем использовать PM2. Подробнее в process.json.

pm2 start process.json

# запуск мониторинг pm2
pm2 monit

 Но вы можете осуществить запуск вручную.

 Запуск в ручном режиме
# Запуск LoopBack-API сервера
npm start

# Запуск VueSSR сервера
npm run client

 Подробнее см. package.json.

После установки

 На данный момент проект не является монолитным приложением, с помощью nginx вы легко можете объединить интерфейсы VUE с loopback, простой пример:

location /api {
  proxy_pass http://127.0.0.1:3001;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^/(dist|static) {
  root /var/www/oneplace/data/www/oneplace.media/client;
  expires 7d;
}
location / {
  proxy_pass http://127.0.0.1:3000;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;
}

В ближайшем будущем

  • Запуск демонов в кластере и soft рестарт с нулевым простоем
  • Полное покрытие Unit тестами (frontend) и BDD (API) тестами с Karma, Mocha и PhantomJS
  • Непрерывная интеграция и автоматический деплой
  • Git flow и релизы с change log
  • Полная документация

открытый-кодoneplaceголосблокчейнsteem
47
0.827 GOLOS
0
В избранное
Обновления репозитория с кодом приложения OnePlace
47
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (3)
Сортировать по:
Сначала старые