Initial commit

This commit is contained in:
root
2026-07-01 17:58:05 +03:00
commit 104ae25f2c
18 changed files with 1585 additions and 0 deletions

104
README.md Normal file
View File

@@ -0,0 +1,104 @@
# Voley — учет посещаемости волейбольной тренировки
Веб‑приложение для отметки посещения игроков по воскресеньям.
## Возможности
- Публичная главная страница: выбор воскресенья, отметка посещения, график за месяц/год.
- Админ‑интерфейс под паролем: добавление игроков, управление активностью.
- Хранение данных в SQLite.
## Запуск
1) Создайте виртуальное окружение и установите зависимости:
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
2) Задайте переменные окружения (можно через `.env` в вашей оболочке):
- `SECRET_KEY` — секрет для подписи cookies (любая длинная строка).
- `ADMIN_PASSWORD` — пароль админки.
Пример:
```bash
export SECRET_KEY="change-me"
export ADMIN_PASSWORD="change-me"
```
3) Запустите сервер:
```bash
uvicorn main:app --reload --port 8000
```
Откройте:
- Главная: `http://localhost:8000/`
- Админка: `http://localhost:8000/admin`
## Данные
SQLite база хранится в `data/voley.sqlite3` (создаётся автоматически при первом запуске).
## Деплой на сервер
Файлы для продакшн-деплоя находятся в `deploy/`.
### Быстрая установка (Ubuntu/Debian)
```bash
# На сервере:
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 и установите зависимости:
```bash
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/
```
### Полезные команды
```bash
# Статус
sudo systemctl status voley
# Логи
sudo journalctl -u voley -f
# Перезапуск
sudo systemctl restart voley
```