105 lines
3.0 KiB
Markdown
105 lines
3.0 KiB
Markdown
# 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
|
||
```
|