139 lines
2.6 KiB
Markdown
139 lines
2.6 KiB
Markdown
|
|
# Quick Deployment Reference
|
||
|
|
|
||
|
|
Quick command reference for deploying the platform.
|
||
|
|
|
||
|
|
## One-Command Setup (Partial)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run automated script (sets up container and dependencies)
|
||
|
|
./deployment/scripts/deploy-lxc.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Essential Commands
|
||
|
|
|
||
|
|
### Container Management
|
||
|
|
```bash
|
||
|
|
# Create container
|
||
|
|
pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
|
||
|
|
--hostname explorer-prod --memory 16384 --cores 4 --unprivileged 0
|
||
|
|
|
||
|
|
# Start/Stop
|
||
|
|
pct start 100
|
||
|
|
pct stop 100
|
||
|
|
pct enter 100
|
||
|
|
```
|
||
|
|
|
||
|
|
### Services
|
||
|
|
```bash
|
||
|
|
# Start all services
|
||
|
|
systemctl start explorer-indexer explorer-api explorer-frontend
|
||
|
|
|
||
|
|
# Check status
|
||
|
|
systemctl status explorer-indexer
|
||
|
|
journalctl -u explorer-indexer -f
|
||
|
|
|
||
|
|
# Restart
|
||
|
|
systemctl restart explorer-api
|
||
|
|
```
|
||
|
|
|
||
|
|
### Database
|
||
|
|
```bash
|
||
|
|
# Run migrations
|
||
|
|
cd /home/explorer/explorer-monorepo/backend
|
||
|
|
go run database/migrations/migrate.go
|
||
|
|
|
||
|
|
# Backup
|
||
|
|
pg_dump -U explorer explorer | gzip > backup.sql.gz
|
||
|
|
```
|
||
|
|
|
||
|
|
### Nginx
|
||
|
|
```bash
|
||
|
|
# Test config
|
||
|
|
nginx -t
|
||
|
|
|
||
|
|
# Reload
|
||
|
|
systemctl reload nginx
|
||
|
|
|
||
|
|
# Check logs
|
||
|
|
tail -f /var/log/nginx/explorer-error.log
|
||
|
|
```
|
||
|
|
|
||
|
|
### Cloudflare Tunnel
|
||
|
|
```bash
|
||
|
|
# Create tunnel
|
||
|
|
cloudflared tunnel create explorer-tunnel
|
||
|
|
|
||
|
|
# Run tunnel
|
||
|
|
cloudflared tunnel --config /etc/cloudflared/config.yml run
|
||
|
|
|
||
|
|
# Service management
|
||
|
|
systemctl start cloudflared
|
||
|
|
systemctl status cloudflared
|
||
|
|
```
|
||
|
|
|
||
|
|
### Health Checks
|
||
|
|
```bash
|
||
|
|
# API health
|
||
|
|
curl http://localhost:8080/health
|
||
|
|
|
||
|
|
# Frontend
|
||
|
|
curl http://localhost:3000
|
||
|
|
|
||
|
|
# Through Nginx
|
||
|
|
curl http://localhost/api/health
|
||
|
|
|
||
|
|
# Through Cloudflare
|
||
|
|
curl https://explorer.d-bis.org/api/health
|
||
|
|
```
|
||
|
|
|
||
|
|
## File Locations
|
||
|
|
|
||
|
|
- **Config**: `/home/explorer/explorer-monorepo/.env`
|
||
|
|
- **Services**: `/etc/systemd/system/explorer-*.service`
|
||
|
|
- **Nginx**: `/etc/nginx/sites-available/explorer`
|
||
|
|
- **Tunnel**: `/etc/cloudflared/config.yml`
|
||
|
|
- **Logs**: `/var/log/explorer/` and `journalctl -u explorer-*`
|
||
|
|
|
||
|
|
## Common Issues
|
||
|
|
|
||
|
|
### Service won't start
|
||
|
|
```bash
|
||
|
|
journalctl -u explorer-api --since "10 minutes ago"
|
||
|
|
systemctl restart explorer-api
|
||
|
|
```
|
||
|
|
|
||
|
|
### Database connection failed
|
||
|
|
```bash
|
||
|
|
sudo -u postgres psql
|
||
|
|
\c explorer
|
||
|
|
\dt # List tables
|
||
|
|
```
|
||
|
|
|
||
|
|
### Nginx 502 Bad Gateway
|
||
|
|
```bash
|
||
|
|
# Check if API is running
|
||
|
|
curl http://localhost:8080/health
|
||
|
|
# Check Nginx error log
|
||
|
|
tail -f /var/log/nginx/explorer-error.log
|
||
|
|
```
|
||
|
|
|
||
|
|
### Cloudflare Tunnel not working
|
||
|
|
```bash
|
||
|
|
cloudflared tunnel info explorer-tunnel
|
||
|
|
journalctl -u cloudflared -f
|
||
|
|
```
|
||
|
|
|
||
|
|
## Emergency Rollback
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Stop all services
|
||
|
|
systemctl stop explorer-indexer explorer-api explorer-frontend
|
||
|
|
|
||
|
|
# Restore from backup
|
||
|
|
gunzip < backup.sql.gz | psql -U explorer explorer
|
||
|
|
|
||
|
|
# Restart services
|
||
|
|
systemctl start explorer-indexer explorer-api explorer-frontend
|
||
|
|
```
|
||
|
|
|