Skip to content

Latest commit

 

History

History
92 lines (81 loc) · 7.97 KB

how-to-start-freefeeding.md

File metadata and controls

92 lines (81 loc) · 7.97 KB
title layout
Как быстро начать программировать FreeFeed
wiki

Как быстро начать программировать FreeFeed

Замена для FriendFeed, которую делают энтузиасты русскоязычного сообщества, называется FreeFeed.

FreeFeed будет работать на движке френдфидоподобной социальной сети. Этот движок называется Пепятка. Для того, чтобы приблизить запуск FreeFeed, нужно закрывать баги в Пепятке. Пепятка разрабатывается на виду у всех, состоит из нескольких репозиториев на Гитхабе.

Основная помощь нужна в коде бэкенда (сервера), который осуществляет хранение постов/комментов/лайков/подписок/пользователей/etc: pepyatka-server и фронтенда (интерфейса), который красиво рисует ваш фид в браузере, позволяет нажимать лайк и так далее: pepyatka-html

И бэкенд, и фронтенд написаны на Яваскрипте, самом простом языке программирования в мире. Если вы в последние 10 лет писали какой-нибудь код, то вы сможете читать и писать Яваскрипт. Из конкретных технологий там используются Node.js, Redis, Ember.js -- всё это очень простые, понятные и интересные штуки.

Что нужно сделать -- уже известно. Задачи записываются в виде тикетов прямо на Гитхабе. Например, на текущий момент (20 апреля 2015, 16:00) в бэкенде к следующему релизу нужно сделать 15 задач, за 6 из них уже кто-то взялся, а 9 ждут вас: pepyatka-server milestone 0.1.0. Во фронтенде есть целых 27 задач, которые нужны для релиза, но никто пока не пообещал их сделать.

Создайте собственные форки обоих репозиториев на Github. Для этого зайдите браузером на https://github.com/pepyatka/pepyatka-server и нажмите кнопку "Fork" справа вверху. Повторите для pepyatka-html.

Сейчас я опишу, как поднять на собственном компьютере экземпляр Пепятки внутри виртуальной машины и начать в нём что-нибудь менять. Это займёт у вас 10-20 минут. При этом на вашем компьютере может быть почти любая ОС -- точно поддерживается Windows, Mac OS X и разные Линуксы. (Если у вас уже есть сервер с Ubuntu Linux, и вы хотите использовать его, то переходите к пункту 15. Если у вас есть под рукой Linux или Mac OS X с питоном и гитом, то вы можете пойти по более технологичному пути и поднять себе среду разработки с помощью ansible. Если вы выбрали такой путь, и у вас всё получилось, то можете сразу идти на шаг 20).

Поставьте VirtualBox и vagrant. Нужна свежая версия vagrant (1.7), поэтому лучше поставить прямо с сайта. Откройте терминал, создайте где-нибудь новую папку pepyatka и перейдите в неё. Выполните команду

vagrant init ubuntu/trusty32

В папке появился файл с именем Vagrantfile.

Внесите в него несколько изменений: добавьте строчки config.vm.network :forwarded_port, guest: 3000, host: 3000 и config.vm.network :forwarded_port, guest: 3333, host: 3333 сразу после закомментированной строки с примером config.vm.network. Ещё обязательно добавьте рядышком строчку config.ssh.forward_agent = true.

Запустите виртуальный сервер командой vagrant up. В первый раз это приведёт к скачиванию и настройке образа сервера, а потом всё будет работать быстро. После запуска зайдите внутрь командой vagrant ssh. Вы попадёте в командную строку вашего виртуального сервера. Выполните прямо там команды для установки софта:

sudo apt-get update
sudo apt-get install git-core nodejs-legacy redis-server graphicsmagick npm

Скачайте копии кода бэкенда и фронтенда с Github. Команды ниже, но в них слово ВАШ_ЛОГИН замените на ваш Github-логин.

git clone git@github.com:ВАШ_ЛОГИН/pepyatka-html.git
git clone git@github.com:ВАШ_ЛОГИН/pepyatka-server.git

Перейдите в папку pepyatka-server, которую вам только что создал git. Запустите установку зависимостей и сам бэкенд Пепятки:

npm install
sudo npm install -g supervisor
supervisor ./index.js &

Перейдите в папку фронтенда ../pepyatka-html. Запустите установку и сам фронтенд:

npm install
npm start

Теперь откройте ссылку http://localhost:3333/ в браузере --- это ваша собственная копия будущего FreeFeed. Можете там зарегистрироваться, написать пост и с удовольствием залайкать его (да, это баг!). Уже почти всё. Осталось только самое интересное. Для того, чтобы исправить какую-нибудь ошибку или решить задачу, вам нужно внести необходимые изменения в код, затем закоммитить их, отправить на Github и создать pull-request -- запрос на интеграцию ваших изменений в основной код Пепятки. Допустим, вы нашли опечатку в файле README бэкенда.

cd pepyatka-server
nano README.md
git commit -a -m "Fix a typo"
git push origin development

Далее, переходите в браузере по ссылке https://github.com/ВАШ_ЛОГИН/pepyatka-server и нажимаете зелёную кнопку с двумя стрелками -- именно она позволит отправить ваши изменения в основной код Пепятки. У разработчиков есть рабочий чат-канал в Slack, где можно и нужно задавать любые вопросы. Чтобы получить к нему доступ, напишите email на freefeed.net@gmail.com