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

41
deploy/install.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/bash
set -e
APP_DIR="/opt/voley"
APP_USER="www-data"
echo "=== Установка Voley ==="
# Создание директории
sudo mkdir -p $APP_DIR
sudo mkdir -p $APP_DIR/data
# Копирование файлов
sudo cp -r ../*.py ../requirements.txt ../templates ../static $APP_DIR/
sudo cp ../.env $APP_DIR/.env
# Виртуальное окружение
sudo python3 -m venv $APP_DIR/.venv
sudo $APP_DIR/.venv/bin/pip install --upgrade pip
sudo $APP_DIR/.venv/bin/pip install -r $APP_DIR/requirements.txt
# Права
sudo chown -R $APP_USER:$APP_USER $APP_DIR
# systemd
sudo cp voley.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable voley
sudo systemctl start voley
# nginx
sudo cp nginx.conf /etc/nginx/sites-available/voley
sudo ln -sf /etc/nginx/sites-available/voley /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
echo ""
echo "=== Готово! ==="
echo "1. Отредактируйте $APP_DIR/.env (SECRET_KEY, ADMIN_PASSWORD)"
echo "2. Измените домен в /etc/nginx/sites-available/voley"
echo "3. Перезапустите: sudo systemctl restart voley"
echo "4. SSL: sudo certbot --nginx -d voley.example.com"

23
deploy/nginx.conf Normal file
View File

@@ -0,0 +1,23 @@
server {
listen 80;
server_name volleyball.my.to; # Замените на ваш домен
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static {
alias /opt/voley/static;
expires 7d;
add_header Cache-Control "public, immutable";
}
# Опционально: SSL через certbot
# listen 443 ssl;
# ssl_certificate /etc/letsencrypt/live/volleyball.my.to/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/volleyball.my.to/privkey.pem;
}

16
deploy/voley.service Normal file
View File

@@ -0,0 +1,16 @@
[Unit]
Description=Voley Attendance App
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/voley
EnvironmentFile=/opt/voley/.env
ExecStart=/opt/voley/.venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --workers 2
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target