Giter Club home page Giter Club logo

primorsk-cup's Introduction

workflow primorsk-cup Code style: black Imports: isort

primorsk-cup

Сайт для регистрации спортсменов на "Кубок Приморска".

Installing

Запуск проекта на локальном компьютере (на примере Linux)

Эти инструкции помогут вам создать копию проекта и запустить ее на локальном компьютере для целей разработки и тестирования. Запуск проекта (на примере Linux)

Перед тем, как начать: У вас должен быть установлен пакет "python3"

  • Создайте на своем компютере папку проекта mkdir Primorsk-cup и перейдите в нее cd Primorsk-cup
  • Склонируйте этот репозиторий в текущую папку git clone https://github.com/Bazulenkov/primorsk-cup
  • Создайте виртуальное окружение python3 -m venv venv
  • Активируйте виртуальное окружение source venv/bin/activate
  • Создайте файл .env командой touch .env и добавьте в него переменные окружения:
SECRET_KEY=#секретный ключ Django
DEBUG=1

Сгенерировать SECRET_KEY вы можете, например, по этой статье https://tech.serhatteker.com/post/2020-01/django-create-secret-key/

  • Установите зависимости pip install -r requirements.txt
  • Создайте все необходимые таблицы в базе данных - выполните команду ./manage.py migrate
  • Импортируйте теги в базу - выполните команду ./manage.py load_discipline
  • Создайте администратора сайта ./manage.py createsuperuser (Администратор тоже будет отображаться в списках участников - поэтому после создания администратора, нужно зайти в админку, и добавить все недостающие поля в запись администратора)

Чтобы запустить проект на локальной машине - ./manage.py runserver

Деплой на удаленный сервер

Установка Docker

Установите Docker, используя инструкции с официального сайта:

Запуск docker-compose

  • Поменяйте в файле .env настройки DEBUG=0
  • Добавьте в файл .env переменные окружения для работы с базой данных:
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД 

EMAIL_HOST=smtp.your-smtp-server.com
[email protected]
EMAIL_HOST_PASSWORD=email-password
EMAIL_PORT=25
EMAIL_USE_TLS=0
  • Скопируйте на сервер файл .env командами:
scp docker-compose.yaml  {user}@{server-ip}:
scp .env {user}@{server-ip}:
scp Dockerfile-nginx {user}@{server-ip}:

  • Запустите docker-compose командой sudo docker-compose up -d
  • Накатите миграции sudo docker-compose exec app python3 manage.py migrate
  • Импортируйте теги в базу - выполните команду sudo docker-compose exec app python3 manage.py load_discipline
  • Создайте суперпользователя Django sudo docker-compose exec app python3 manage.py createsuperuser --email '[email protected]'

CI/CD

Для автоматического деплоя на сервер необходимо:

  • создать переменные окружения в разделе secrets настроек текущего репозитория:
DOCKER_PASSWORD # Пароль от Docker Hub
DOCKER_USERNAME # Логин от Docker Hub
HOST # Публичный ip адрес сервера
USER # Пользователь зарегистрированный на сервере
PASSPHRASE # Если ssh-ключ защищен фразой-паролем
SSH_KEY # Приватный ssh-ключ
TELEGRAM_TO # ID телеграм-аккаунта
TELEGRAM_TOKEN # Токен бота

После каждого обновления репозитория (git push) будет происходить:

  1. Проверка кода на стандарты PEP8.
  2. Сборка и публикация образа на Docker Hub.
  3. Автоматический деплой.
  4. Отправка уведомления в персональный чат Telegram.

Built With

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.