Skip to content

Latest commit

 

History

History
executable file
·
161 lines (101 loc) · 6.23 KB

File metadata and controls

executable file
·
161 lines (101 loc) · 6.23 KB

Документация на русском - см. INSTALL.ru.md (Russian docs -- see INSTALL.ru.md).

Up and running locally

1. OS

The site works under MacOS and Unix systems, but not on Windows, because many 3rd party modules are not compatible with Windows.

2. Create the folder

Create a folder /js for the project. You can use any other directory as well, just adjust the paths below.

3. Install and run Node.JS and MongoDB

Node.JS – the last version from https://nodejs.org.

MongoDB - can be either 2.6+ or newer.

Use packages for Linux, MacPorts or Homebrew for Mac.

Если через MacPorts, то:

sudo port install mongodb
sudo port load mongodb

3. Клонируйте репозитарий

Предположу, что Git у вас уже стоит и вы умеете им пользоваться.

Клонируйте только ветку master движка:

cd /js
git clone -b master --single-branch https://github.com/iliakan/javascript-nodejs

4. Глобальные модули

Поставьте глобальные модули:

npm install -g mocha bunyan gulp nodemon

Чтобы автоматически ставилась переменная NODE_PATH, для запуска gulp далее используется команда: npm --silent run gulp --.

На практике для удобства используется alias:

alias glp="npm --silent run gulp -- "

Или же можно запускать gulp как: NODE_PATH=./handlers:./modules gulp.

5. Системные пакеты

Для работы также нужны Nginx, GraphicsMagick и ImageMagick (обычно используется GM, он лучше, но иногда IM).

Под Macports команды такие:

sudo port install ImageMagick GraphicsMagick
sudo port install nginx +debug+gzip_static+realip+geoip

sudo port load nginx

6. npm install

В директории, в которую клонировали, запустите:

npm install

7. Конфигурация Nginx с нуля

Если в системе ранее не стоял nginx, то поставьте его.

Логи nginx пишет в директорию /var/log/nginx.

Если её нет, то нужно создать и поставить пермишны/владельца. Например, если компьютер – ваш личный, то запустить от рута:

mkdir /var/log/nginx
chmod 777 /var/log/nginx

Cтавим настройки для сайта запуском:

npm --silent run gulp -- config:nginx --prefix /opt/local/etc/nginx --root /js/javascript-nodejs --env development --clear

Здесь --prefix -- место для конфигов nginx, обычно /etc/nginx, в случае MacPorts это /opt/local/etc/nginx. В параметр --root запишите место установки сайта.

В --root находится путь к движку: если вы использовали другой путь для сайта, вместо /js/javascript-nodejs, то измените его.

Опция --clear полностью удалит старые конфиги nginx.

Также рекомендуется в /etc/hosts добавить строку:

127.0.0.1 javascript.in

Такое имя хоста стоит в конфигурации Nginx.

7.1. Если Nginx у вас уже стоит

Если уже есть nginx, то сделайте резервную копию всех его конфигов.

После этого выполните предыдущую секцию без --clear в команде:

npm --silent run gulp -- config:nginx --prefix /opt/local/etc/nginx --root /js/javascript-nodejs --env development

Такая команда скопирует файлы из директории /js/javascript-nodejs/nginx в указанную директорию --prefix, но без перезаписывания. При копировании используется небольшая шаблонизация конфигов, т.е. это не просто cp, но структура файлов остаётся такой же.

Основные конфиги будут перезаписаны, но в sites-enabled останутся и будут подключены и другие сайты.

Перезапустите Nginx. Проверьте, что ваши предыдущие проекты работают.

8. База

Клонируйте ветку учебника, например ru:

cd /js
git clone -b ru --single-branch https://github.com/iliakan/javascript-tutorial

После клонирования импортируйте учебник в базу командой:

PLUNK_REMOTE_OFF=1 npm --silent run gulp -- tutorial:import --root /js/javascript-tutorial

Здесь /js/javascript-tutorial -- директория с репозитарием учебника.

PLUNK_REMOTE_OFF=1 отключает автоматическую загрузку примеров из учебников на сервис plnkr.co. Она требует настройки сессии на plnkr.co и нужна при публикации учебника. Для запуска проекта она не нужна, особенно если вас интересуют другие модули.

9. Запуск сайта

Запуск сайта в режиме разработки:

NODE_LANG=ru ./dev

Это поднимет сразу и сайт и механизмы автосборки стилей-скриптов и livereload.

Обратите внимание: ходить на сайт нужно через Nginx (обычно порт 80), не напрямую в Node.JS (не будет статики).

Если в /etc/hosts есть строка 127.0.0.1 javascript.in, то адрес будет http://javascript.in/.

TroubleShooting

Если что-то не работает -- пишите issue.