🚀 Запуск приложения Passit с использованием Docker Compose

Создаём файл docker-compose.yml и добавляем следующее содержимое:

version: '3.2'

services:

  postgres:
    image: postgres
    restart: always
    container_name: postgres
    environment:
      POSTGRES_DB: passit
      POSTGRES_USER: passit
      POSTGRES_PASSWORD: **your-password**
      PGDATA: /var/lib/postgresql/data/
    volumes:
      - /var/lib/postgresql/data:/var/lib/postgresql/data

  passit-app:
    image: passit/passit:stable
    restart: always
    container_name: passit-app
    command: bin/start.sh
    environment:
      DATABASE_URL: postgres://passit:your-password@postgres:5432/passit
      SECRET_KEY: **your-password**
      IS_DEBUG: 'False'
      EMAIL_URL: smtp+tls://login:password@server-email:587
      DEFAULT_FROM_EMAIL: "your-email"
      EMAIL_CONFIRMATION_HOST: "your-domain"

  nginx:
    container_name: nginx
    restart: always
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      - /etc/letsencrypt/live/your-domain/fullchain.pem:/etc/letsencrypt/live/your-domain/fullchain.pem
      - /etc/letsencrypt/live/your-domain/privkey.pem:/etc/letsencrypt/live/your-domain/privkey.pem

✏️ Параметры для замены:

  • your-password — установите свой пароль для базы данных и других секретов.
  • your-domain — укажите домен, под которым будет доступно приложение.
  • login:password@server-email — параметры для SMTP-сервера.

Настройка конфигурации веб-сервера nginx

В файл default.conf из директории /etc/nginx/conf.d/ добавьте следующее содержимое:

server {
    listen 80;
    server_name your-domain;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain;
    ssl_certificate /etc/letsencrypt/live/your-domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain/privkey.pem;

    location / {
      proxy_pass http://passit-app:8080;
      proxy_set_header Host $host;
    }
}

✏️ Не забудьте заменить your-domain на ваш фактический домен, который используется для приложения Passit.


Миграция базы данных

После того как контейнеры запущены, выполните миграцию базы данных для приложения:

docker-compose run --rm passit-app ./manage.py migrate

✨ Теперь ваше приложение Passit готово к использованию!