Giter VIP home page Giter VIP logo

kittygram_final's Introduction

Киттиграм

Оглавление:

Стек технологий

  • Python
  • Django
  • DRF
  • Docker
  • Nginx
  • Gunicorn
  • GitHub Actions
  • Linux

Краткое описание проекта:

Сайт с возможностью публикации фотографий котов и их достижений.

В файле docker-compose описывается система из контейнеров. Docker-compose-production описывает уже непосредственно вариант с работой через GitHub Actions и деплоем на сервере.

Реализован деплой на сервере после загрузки на GitHub при помощи GitHub Actions. Перед деплоем GitHub Actions делает следующее:

  • тестирует backend код на соответствие PEP8
  • тестирует frontend код
  • загружает на DockerHub все контейнеры (c nginx, backend и frontend)
  • с DockerHub осуществляет деплой на сервер
  • направляет в Телеграме сообщение о совершенном деплое, уточняя:
    • кто сделал коммит
    • какое сообщение было у коммита
    • ссылку на коммит

Как запустить проект:

  • Скачать docker на сервер, если его нет. Инструкции: https://docs.docker.com/get-docker/

  • Запустить с DockerHub или запустить с GitHub.

  • Выполнить миграции:

    После запуска необходимо выполнить сбор статистики и миграции бэкенда. Статистика фронтенда собирается во время запуска контейнера, после чего он останавливается.

    sudo docker exec -it [имя или id контейнера, узнать можно через sudo docker ps -a] python manage.py migrate
    
    sudo docker exec -it [имя или id контейнера, узнать можно через sudo docker ps -a] python manage.py  collectstatic
    
    sudo docker exec -it [имя или id контейнера, узнать можно через sudo docker ps -a] cp -r /app/collected_static/. /static/static/
    
  • Как остановить систему контейнеров:

    sudo docker compose -f docker-compose.yml down
    
  • 127.0.0.1:9000 Главная страница

Запуск с DockerHub

  1. Создать папку проекта, например kittygram и перейти в нее:
mkdir kittygram
cd kittygram
  1. Создать .env файл со сделующей информацией:
POSTGRES_USER=логин
POSTGRES_PASSWORD=пароль
POSTGRES_DB=имя БД
DB_HOST=название хоста
DB_PORT=5432
SECRET_KEY=секретный ключ (если идет подключение к серверу)
DEBUG=False
ALLOWED_HOSTS=ip адрес хоста(если есть),127.0.0.1,localhost,доменное имя (если есть)
  1. В папку проекта скачать и запустить файл docker-compose.production.yml:
    sudo docker compose -f docker-compose.production.yml up
    

Запуск с GitHub

  1. Клонировать репозиторий с проектом на свой компьютер: git clone [email protected]:gaifut/kittygram_final.git

  2. Установить и активировать виртуальное окружение:

python3.9 -m venv venv
. venv/bin/activate

В виртуальном окружении в папке backend (cd backend)установить зависимости:

pip install -r requirements.txt
  1. Создать .env файл со сделующей информацией:
POSTGRES_USER=логин
POSTGRES_PASSWORD=пароль
POSTGRES_DB=имя БД
DB_HOST=название хоста
DB_PORT=5432
SECRET_KEY=секретный ключ (если идет подключение к серверу)
DEBUG=False
ALLOWED_HOSTS=ip адрес хоста(если есть),127.0.0.1,localhost,доменное имя (если есть)
  1. Выполнить сборку контейнеров:
    sudo docker compose -f docker-compose.yml up
    

kittygram_final's People

Contributors

gaifut avatar

Watchers

 avatar

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.