Данный проект подразумевает создание социальной сети, в которой необходимы регистрация, профили, стена, личные сообщения и АПИ для взаимодействия с этим всем. И главное – нужен робот, который будет эмулировать действия пользователя. Планируется запустить несколько таких социальных сетей, кучу роботов и с помощью этого моделировать поведение реальных пользователей в реальных соцсетях и изучать их таким образом.
1.1. В ходе первой итерации создан и настроен базовый проект для социальной сети на Django 2.0.
1.2. Создан view для просмотра информации о пользователе.
1.3. Настроено логирование ошибок в Sentry.
1.4. Добавлено использование django-configurations для управления конфигурациями.
В ходе второй итерации создан fabric-скрипт, который при выполнении команды fab bootstrap делает следующие действия на удалённой машине:
- Устанавливает нужные системные пакеты. Python, nginx, PostgreSQL и их требования.
- Конфигурирует БД: создает базу и пользователя со всеми нужными правами.
- Настраивает nginx на отдачу статики и пробрасыванию запроса к приложению на Django.
- Создает папку с сорцами, клонирует в неё последнюю версию репозитория.
- Создает виртуальное окружение с нужной версией Python, установливает в него все пакеты из requirements.txt.
- Запускает необходимые менеджмент-команды (migrate, collectstatic).
- Рестартует/запускает uwsgi и nginx.
Конфиги для nginx и uwsgi генерируются из шаблонов в папке configs.
Шаг 1. Установить требуемые зависимости.
sudo pip3 install -r requirements.txt
Шаг 2. Зарегистрироваться на Sentry, получить Client Key (DSN).
Шаг 3. Заменить имеющееся значение RAVEN_DSN на полученный Client Key в параметрах окружения (файл envs.txt).
После этого ошибки, возникающие при работе приложения, будут логироваться в ваш аккаунт и отправляться вам на почту.
Шаг 4. Заменить значение остальных переменных окружения на свои значение в файле envs.txt.
Шаг 5. При необходимости поменять значение 'ProductionConfig' на 'DevelopmentConfig' в файлах manage.py и wsgi.py.
Шаг 6. Установить параметры окружения, введя в консоли
source envs.txt
Шаг 7. Закоммитить сделанные изменения в репозиторий
git add .
git commit -m "Текст коммита"
git push
Шаг 8. Выполнить fabric-скрипт для деплоя на удалённую машину
fab bootstrap
После этого приложение будет доступно по ip-адресу удаленной машины.
Пример работы приложения можно увидеть по данной ссылке.
Просмотр информации о пользователе доступен по данной ссылке, где последняя часть адреса - это id пользователя.
Код написан в учебных целях. Обучающие курсы для веб-разработчиков - DEVMAN.org