This commit was merged in pull request #23.
This commit is contained in:
47
deployment/scripts/deploy.sh
Executable file
47
deployment/scripts/deploy.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DEPLOY_DIR="/var/www/bot"
|
||||
DOMAIN="bot.yourdomain.com"
|
||||
GIT_REPO="https://git.example.com/shoko/randebu.git"
|
||||
BRANCH="main"
|
||||
|
||||
echo "=== Randebu Deployment Script ==="
|
||||
echo "Deploy directory: $DEPLOY_DIR"
|
||||
echo "Domain: $DOMAIN"
|
||||
echo ""
|
||||
|
||||
cd "$DEPLOY_DIR"
|
||||
|
||||
echo "[1/6] Pulling latest code..."
|
||||
git pull origin "$BRANCH"
|
||||
|
||||
echo "[2/6] Updating backend dependencies..."
|
||||
cd "$DEPLOY_DIR/src/backend"
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
|
||||
echo "[3/6] Rebuilding frontend..."
|
||||
cd "$DEPLOY_DIR/src/frontend"
|
||||
npm install
|
||||
npm run build
|
||||
mkdir -p "$DEPLOY_DIR/frontend"
|
||||
cp -r build/* "$DEPLOY_DIR/frontend/"
|
||||
|
||||
echo "[4/6] Restarting backend service..."
|
||||
sudo systemctl restart ave-backend
|
||||
sleep 2
|
||||
sudo systemctl status ave-backend --no-pager
|
||||
|
||||
echo "[5/6] Testing endpoints..."
|
||||
curl -s "http://localhost:8000/health" && echo ""
|
||||
curl -s -o /dev/null -w "Frontend: %{http_code}\n" "https://$DOMAIN/" || true
|
||||
|
||||
echo "[6/6] Verifying SSL..."
|
||||
sudo certbot certificates 2>/dev/null | grep -A2 "$DOMAIN" || echo "No certificate found for $DOMAIN"
|
||||
|
||||
echo ""
|
||||
echo "=== Deployment Complete ==="
|
||||
echo "Backend: https://$DOMAIN/api/"
|
||||
echo "Frontend: https://$DOMAIN/"
|
||||
echo "Backend logs: sudo journalctl -u ave-backend -f"
|
||||
59
deployment/scripts/nginx-template.conf
Normal file
59
deployment/scripts/nginx-template.conf
Normal file
@@ -0,0 +1,59 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name bot.yourdomain.com;
|
||||
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name bot.yourdomain.com;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/bot.yourdomain.com/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/bot.yourdomain.com/privkey.pem;
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
|
||||
ssl_prefer_server_ciphers off;
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_timeout 1d;
|
||||
|
||||
root /var/www/bot/frontend;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:8000/api/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
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;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
location /ws/ {
|
||||
proxy_pass http://127.0.0.1:8000/ws/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
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 ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
|
||||
expires 1y;
|
||||
add_header Cache-Control "public, immutable";
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_min_length 1024;
|
||||
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
|
||||
}
|
||||
21
deployment/scripts/systemd-template.service
Normal file
21
deployment/scripts/systemd-template.service
Normal file
@@ -0,0 +1,21 @@
|
||||
[Unit]
|
||||
Description=Randebu Trading Bot Backend
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=your-user
|
||||
WorkingDirectory=/var/www/bot/src/backend
|
||||
Environment="PATH=/var/www/bot/src/backend/venv/bin"
|
||||
ExecStart=/var/www/bot/src/backend/venv/bin/python /var/www/bot/src/backend/run.py
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
EnvironmentFile=/var/www/bot/data/.env
|
||||
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=ave-backend
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user