InviteMe Developer 832528f2a5 feat: add subtle creator attribution
- HTML comment in base.html with project description and link
- Small fixed footer in bottom-right corner: Crafted by mycloud24
- Footer styled to be unobtrusive (low opacity, small font)
2026-09-01 12:06:57 +03:00
2026-09-01 12:06:57 +03:00

InviteMe

Production-система регистрации гостей, рассылки приглашений, выпуска QR-билетов и контроля входа на мероприятия.

Возможности

  • Мероприятия и ролевая модель: администратор, организатор и сотрудник на входе.
  • Импорт гостей из .xlsx, закрытое хранение фотографий и генерация QR-кодов.
  • Фоновая рассылка через SMTP, EWS или локальный Outlook с индивидуальными статусами доставки.
  • Персональная страница приглашения: RSVP, комментарий, особенности питания, билет и календарь .ics.
  • Сканирование на входе, отчёты о посещаемости и журнал аудита.
  • PostgreSQL, общие лимиты запросов через Redis, автоматический HTTPS и миграции базы.

Запуск в production

Нужны Linux-сервер с Docker Compose, домен, направленный на сервер, и открытые входящие порты 80/443.

git clone https://git.mycloud24.ru/insight/InviteMe.git
cd InviteMe
cp .env.example .env
# Заполните DOMAIN и сгенерируйте три секрета в .env.
docker compose up -d --build
docker compose exec inviteme flask --app run.py create-admin

Caddy автоматически получает и продлевает TLS-сертификат. Контейнер приложения напрямую наружу не публикуется.

Полная инструкция по установке, резервному копированию и обновлению: docs/PRODUCTION.md.

Локальная разработка

python -m venv venv
venv/bin/pip install -r requirements-dev.txt
venv/bin/python run.py

На Windows замените venv/bin/ на venv\Scripts\. Локальный режим использует SQLite и разрешает создание первого администратора через веб-страницу.

Безопасность

  • Production не запускается без уникальных секретов и обязательных безопасных настроек.
  • Фотографии, QR-коды, билеты и отчёты находятся вне static и выдаются только после проверки доступа.
  • Организатор видит только собственные мероприятия, а сотрудник на входе — только назначенные ему.
  • Двойная отметка входа блокируется базой, ошибочный вход отменяется с обязательной записью в аудит.
  • Изображения ограничиваются по размеру, декодируются, проверяются и сохраняются заново. SVG и анимация запрещены.
  • Почтовые пароли шифруются перед записью в базу.
  • Включены CSRF, защищённые cookies, HTTPS, security headers и лимиты запросов через Redis.
  • Контейнер работает без root, с файловой системой только для чтения и без Linux capabilities.

Проверка

python -m pytest -q
pip-audit -r requirements.txt

Структура

app/                 Flask-приложение
instance/uploads/    закрытые файлы в локальном режиме
migrations/          миграции Alembic
tests/               регрессионные тесты безопасности
docs/PRODUCTION.md   инструкция по эксплуатации

Лицензия

Открытая лицензия не предоставляется. Исходный код предназначен только для разрешённого правообладателем использования.

S
Description
Project InviteMe backed up from C:/Projects
Readme 16 MiB
Languages
Python 64.3%
HTML 29.6%
JavaScript 5.6%
Dockerfile 0.3%
Mako 0.2%