Files
volleyball_miniapp/README.md
2026-07-01 17:58:05 +03:00

3.0 KiB
Raw Blame History

Voley — учет посещаемости волейбольной тренировки

Веб‑приложение для отметки посещения игроков по воскресеньям.

Возможности

  • Публичная главная страница: выбор воскресенья, отметка посещения, график за месяц/год.
  • Админ‑интерфейс под паролем: добавление игроков, управление активностью.
  • Хранение данных в SQLite.

Запуск

  1. Создайте виртуальное окружение и установите зависимости:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Задайте переменные окружения (можно через .env в вашей оболочке):
  • SECRET_KEY — секрет для подписи cookies (любая длинная строка).
  • ADMIN_PASSWORD — пароль админки.

Пример:

export SECRET_KEY="change-me"
export ADMIN_PASSWORD="change-me"
  1. Запустите сервер:
uvicorn main:app --reload --port 8000

Откройте:

  • Главная: http://localhost:8000/
  • Админка: http://localhost:8000/admin

Данные

SQLite база хранится в data/voley.sqlite3 (создаётся автоматически при первом запуске).

Деплой на сервер

Файлы для продакшн-деплоя находятся в deploy/.

Быстрая установка (Ubuntu/Debian)

# На сервере:
sudo apt update && sudo apt install -y python3-venv nginx

# Скопируйте проект на сервер, затем:
cd /path/to/voley/deploy
chmod +x install.sh
./install.sh

Ручная установка

  1. Скопируйте проект в /opt/voley
  2. Создайте .env из .env.example и заполните переменные
  3. Создайте venv и установите зависимости:
    python3 -m venv .venv
    .venv/bin/pip install -r requirements.txt
    
  4. Скопируйте deploy/voley.service в /etc/systemd/system/
  5. Запустите: sudo systemctl enable --now voley
  6. Настройте nginx (см. deploy/nginx.conf)
  7. SSL: sudo certbot --nginx -d your-domain.com

Структура на сервере

/opt/voley/
├── .env              # Переменные окружения
├── .venv/            # Виртуальное окружение
├── data/             # SQLite база
│   └── voley.sqlite3
├── main.py
├── db.py
├── auth.py
├── templates/
└── static/

Полезные команды

# Статус
sudo systemctl status voley

# Логи
sudo journalctl -u voley -f

# Перезапуск
sudo systemctl restart voley