Initial commit
This commit is contained in:
41
deploy/install.sh
Executable file
41
deploy/install.sh
Executable 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
23
deploy/nginx.conf
Normal 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
16
deploy/voley.service
Normal 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
|
||||
Reference in New Issue
Block a user