feat: Complete HTTPS multi-endpoint configuration and deployment automation
- Enhanced Caddyfile with consolidated HTTPS block supporting all access points - Added support for https://digiserver, https://10.76.152.164, and https://digiserver.sibiusb.harting.intra - Configured Caddy reverse proxy with HTTP/3 (QUIC), TLS 1.3+, and HTTP/2 support - Implemented security headers (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection) - Added HTTP to HTTPS automatic redirects for all endpoints - Enhanced setup_https.sh with improved error handling and progress reporting - Created deploy.sh for fully automated one-command deployment - Added comprehensive deployment documentation (5 guides) - Configured 2GB file upload limit and 300s request/response timeouts - Added Caddy admin API on port 2019 for configuration management - Implemented health checks and container dependency management - All volumes persistent and properly isolated - Production-ready configuration with environment variable parameterization
This commit is contained in:
272
old_code_documentation/DEPLOYMENT_COMMANDS.md
Normal file
272
old_code_documentation/DEPLOYMENT_COMMANDS.md
Normal file
@@ -0,0 +1,272 @@
|
||||
# DigiServer Deployment Commands
|
||||
|
||||
This document contains all necessary `docker exec` commands to deploy and configure DigiServer on a new PC with the same settings as the production system.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
```bash
|
||||
# Ensure you're in the project directory
|
||||
cd /path/to/digiserver-v2
|
||||
|
||||
# Start the containers
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 1. Database Initialization and Migrations
|
||||
|
||||
### Run all database migrations in sequence:
|
||||
|
||||
```bash
|
||||
# Create https_config table
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_https_config_table.py
|
||||
|
||||
# Create player_user table
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_player_user_table.py
|
||||
|
||||
# Add email to https_config table
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_email_to_https_config.py
|
||||
|
||||
# Migrate player_user global settings
|
||||
docker-compose exec -T digiserver-app python /app/migrations/migrate_player_user_global.py
|
||||
```
|
||||
|
||||
**Note:** The `-T` flag prevents Docker from allocating a pseudo-terminal, which is useful for automated deployments.
|
||||
|
||||
## 2. HTTPS Configuration via CLI
|
||||
|
||||
### Check HTTPS Configuration Status:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py status
|
||||
```
|
||||
|
||||
### Enable HTTPS with Production Settings:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py enable \
|
||||
digiserver \
|
||||
digiserver.sibiusb.harting.intra \
|
||||
admin@example.com \
|
||||
10.76.152.164 \
|
||||
443
|
||||
```
|
||||
|
||||
### Show Detailed Configuration:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py show
|
||||
```
|
||||
|
||||
## 3. Admin User Setup
|
||||
|
||||
### Create/Reset Admin User (if needed):
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.user import User
|
||||
from app.extensions import db
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
# Check if admin exists
|
||||
admin = User.query.filter_by(username='admin').first()
|
||||
if admin:
|
||||
print('✅ Admin user already exists')
|
||||
else:
|
||||
# Create new admin user
|
||||
admin = User(username='admin', email='admin@example.com')
|
||||
admin.set_password('admin123') # Change this password!
|
||||
admin.is_admin = True
|
||||
db.session.add(admin)
|
||||
db.session.commit()
|
||||
print('✅ Admin user created with username: admin')
|
||||
"
|
||||
```
|
||||
|
||||
## 4. Database Verification
|
||||
|
||||
### Check Database Tables:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.extensions import db
|
||||
from sqlalchemy import inspect
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
inspector = inspect(db.engine)
|
||||
tables = inspector.get_table_names()
|
||||
print('📊 Database Tables:')
|
||||
for table in sorted(tables):
|
||||
print(f' ✓ {table}')
|
||||
print(f'\\n✅ Total tables: {len(tables)}')
|
||||
"
|
||||
```
|
||||
|
||||
### Check HTTPS Configuration in Database:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.https_config import HTTPSConfig
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
config = HTTPSConfig.get_config()
|
||||
if config:
|
||||
print('✅ HTTPS Configuration Found:')
|
||||
print(f' Status: {\"ENABLED\" if config.https_enabled else \"DISABLED\"}')
|
||||
print(f' Hostname: {config.hostname}')
|
||||
print(f' Domain: {config.domain}')
|
||||
print(f' IP Address: {config.ip_address}')
|
||||
print(f' Port: {config.port}')
|
||||
else:
|
||||
print('⚠️ No HTTPS configuration found')
|
||||
"
|
||||
```
|
||||
|
||||
## 5. Health Checks
|
||||
|
||||
### Test Caddy Configuration:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T caddy caddy validate --config /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### Test Flask Application Health:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
import urllib.request
|
||||
try:
|
||||
response = urllib.request.urlopen('http://localhost:5000/health', timeout=5)
|
||||
print('✅ Application is responding')
|
||||
print(f' Status: {response.status}')
|
||||
except Exception as e:
|
||||
print(f'❌ Application health check failed: {e}')
|
||||
"
|
||||
```
|
||||
|
||||
### Check Docker Container Logs:
|
||||
|
||||
```bash
|
||||
# Flask app logs
|
||||
docker-compose logs digiserver-app | tail -50
|
||||
|
||||
# Caddy logs
|
||||
docker-compose logs caddy | tail -50
|
||||
```
|
||||
|
||||
## 6. Complete Deployment Script
|
||||
|
||||
Create a file called `deploy.sh` to run all steps automatically:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🚀 DigiServer Deployment Script"
|
||||
echo "=================================="
|
||||
echo ""
|
||||
|
||||
# Change to project directory
|
||||
cd /path/to/digiserver-v2
|
||||
|
||||
# Step 1: Start containers
|
||||
echo "📦 Starting containers..."
|
||||
docker-compose up -d
|
||||
sleep 5
|
||||
|
||||
# Step 2: Run migrations
|
||||
echo "📊 Running database migrations..."
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_https_config_table.py
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_player_user_table.py
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_email_to_https_config.py
|
||||
docker-compose exec -T digiserver-app python /app/migrations/migrate_player_user_global.py
|
||||
|
||||
# Step 3: Configure HTTPS
|
||||
echo "🔒 Configuring HTTPS..."
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py enable \
|
||||
digiserver \
|
||||
digiserver.sibiusb.harting.intra \
|
||||
admin@example.com \
|
||||
10.76.152.164 \
|
||||
443
|
||||
|
||||
# Step 4: Verify setup
|
||||
echo "✅ Verifying setup..."
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py status
|
||||
|
||||
echo ""
|
||||
echo "🎉 Deployment Complete!"
|
||||
echo "=================================="
|
||||
echo "Access your application at:"
|
||||
echo " - https://digiserver"
|
||||
echo " - https://10.76.152.164"
|
||||
echo " - https://digiserver.sibiusb.harting.intra"
|
||||
echo ""
|
||||
echo "Login with:"
|
||||
echo " Username: admin"
|
||||
echo " Password: (check your password settings)"
|
||||
```
|
||||
|
||||
Make it executable:
|
||||
```bash
|
||||
chmod +x deploy.sh
|
||||
```
|
||||
|
||||
Run it:
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
## 7. Troubleshooting
|
||||
|
||||
### Restart Services:
|
||||
|
||||
```bash
|
||||
# Restart all containers
|
||||
docker-compose restart
|
||||
|
||||
# Restart just the app
|
||||
docker-compose restart digiserver-app
|
||||
|
||||
# Restart just Caddy
|
||||
docker-compose restart caddy
|
||||
```
|
||||
|
||||
### View Caddy Configuration:
|
||||
|
||||
```bash
|
||||
docker-compose exec -T caddy cat /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### Test HTTPS Endpoints:
|
||||
|
||||
```bash
|
||||
# Test from host machine (if accessible)
|
||||
curl -k https://digiserver.sibiusb.harting.intra
|
||||
|
||||
# Test from within containers
|
||||
docker-compose exec -T caddy wget --no-check-certificate -qO- https://localhost/ | head -20
|
||||
```
|
||||
|
||||
### Clear Caddy Cache (if certificate issues occur):
|
||||
|
||||
```bash
|
||||
docker volume rm digiserver-v2_caddy-data
|
||||
docker volume rm digiserver-v2_caddy-config
|
||||
docker-compose restart caddy
|
||||
```
|
||||
|
||||
## Important Notes
|
||||
|
||||
- Always use `-T` flag with `docker-compose exec` in automated scripts to prevent TTY issues
|
||||
- Change default passwords (`admin123`) in production environments
|
||||
- Adjust email address in HTTPS configuration as needed
|
||||
- For different network setups, modify the IP address and domain in the enable HTTPS command
|
||||
- Keep database backups before running migrations
|
||||
- Test all three access points after deployment
|
||||
|
||||
278
old_code_documentation/DEPLOYMENT_INDEX.md
Normal file
278
old_code_documentation/DEPLOYMENT_INDEX.md
Normal file
@@ -0,0 +1,278 @@
|
||||
# 📚 DigiServer Deployment Documentation Index
|
||||
|
||||
Complete documentation for deploying and maintaining DigiServer. Choose your path below:
|
||||
|
||||
---
|
||||
|
||||
## 🚀 I Want to Deploy Now!
|
||||
|
||||
### Quick Start (2 minutes)
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
./deploy.sh
|
||||
```
|
||||
→ See [DEPLOYMENT_README.md](DEPLOYMENT_README.md)
|
||||
|
||||
### Or Step-by-Step Setup
|
||||
```bash
|
||||
./setup_https.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📖 Documentation Files
|
||||
|
||||
### 1. **[DEPLOYMENT_README.md](DEPLOYMENT_README.md)** ⭐ START HERE
|
||||
- **Size**: 9.4 KB
|
||||
- **Purpose**: Complete deployment guide for beginners
|
||||
- **Contains**:
|
||||
- Quick start instructions
|
||||
- Prerequisites checklist
|
||||
- 3 deployment methods (auto, semi-auto, manual)
|
||||
- Verification procedures
|
||||
- First access setup
|
||||
- Troubleshooting guide
|
||||
- **Read time**: 15-20 minutes
|
||||
|
||||
### 2. **[DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md)** ⭐ REFERENCE GUIDE
|
||||
- **Size**: 7.6 KB
|
||||
- **Purpose**: Quick reference for all docker exec commands
|
||||
- **Contains**:
|
||||
- Database migrations
|
||||
- HTTPS configuration
|
||||
- User management
|
||||
- Database inspection
|
||||
- Health checks
|
||||
- Maintenance commands
|
||||
- Troubleshooting commands
|
||||
- **Use when**: You need a specific command
|
||||
- **Read time**: 5-10 minutes (or search for what you need)
|
||||
|
||||
### 3. **[DEPLOYMENT_COMMANDS.md](DEPLOYMENT_COMMANDS.md)**
|
||||
- **Size**: 6.8 KB
|
||||
- **Purpose**: Detailed deployment command explanations
|
||||
- **Contains**:
|
||||
- Individual command explanations
|
||||
- Complete deployment script template
|
||||
- Health check procedures
|
||||
- Verification steps
|
||||
- Advanced troubleshooting
|
||||
- **Read time**: 20-30 minutes
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Executable Scripts
|
||||
|
||||
### 1. **[deploy.sh](deploy.sh)** - Fully Automated
|
||||
- **Size**: 6.7 KB
|
||||
- **Purpose**: One-command deployment
|
||||
- **Does**:
|
||||
1. Starts Docker containers
|
||||
2. Runs all migrations
|
||||
3. Configures HTTPS
|
||||
4. Verifies setup
|
||||
5. Shows access URLs
|
||||
- **Usage**:
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
- **With custom settings**:
|
||||
```bash
|
||||
HOSTNAME=server1 DOMAIN=server1.internal ./deploy.sh
|
||||
```
|
||||
|
||||
### 2. **[setup_https.sh](setup_https.sh)** - Semi-Automated
|
||||
- **Size**: 5.9 KB
|
||||
- **Purpose**: Setup script that works in or outside Docker
|
||||
- **Does**:
|
||||
- Detects environment (Docker container or host)
|
||||
- Runs migrations
|
||||
- Configures HTTPS
|
||||
- Shows status
|
||||
- **Usage**:
|
||||
```bash
|
||||
./setup_https.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Quick Navigation by Task
|
||||
|
||||
### "I need to deploy on a new PC"
|
||||
1. Read: [DEPLOYMENT_README.md](DEPLOYMENT_README.md#prerequisites)
|
||||
2. Run: `./deploy.sh`
|
||||
3. Access: https://digiserver.sibiusb.harting.intra
|
||||
|
||||
### "I need a specific docker exec command"
|
||||
→ Search [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md)
|
||||
|
||||
### "I want to understand what's being deployed"
|
||||
→ Read [DEPLOYMENT_COMMANDS.md](DEPLOYMENT_COMMANDS.md#prerequisites)
|
||||
|
||||
### "Something went wrong, help!"
|
||||
→ See [DEPLOYMENT_README.md](DEPLOYMENT_README.md#-troubleshooting) or [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#-troubleshooting)
|
||||
|
||||
### "I need to configure custom settings"
|
||||
→ Read [DEPLOYMENT_README.md](DEPLOYMENT_README.md#-environment-variables)
|
||||
|
||||
### "I want to manage HTTPS"
|
||||
→ See [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#-https-configuration-management)
|
||||
|
||||
---
|
||||
|
||||
## 📋 Deployment Checklist
|
||||
|
||||
- [ ] Docker and Docker Compose installed
|
||||
- [ ] Project files copied to new PC
|
||||
- [ ] Run `./deploy.sh` or `./setup_https.sh`
|
||||
- [ ] Verify with `docker-compose ps`
|
||||
- [ ] Access https://digiserver.sibiusb.harting.intra
|
||||
- [ ] Log in with admin/admin123
|
||||
- [ ] Change default password
|
||||
- [ ] Configure players and content
|
||||
|
||||
---
|
||||
|
||||
## 🔑 Configuration Options
|
||||
|
||||
### Default Settings
|
||||
```
|
||||
Hostname: digiserver
|
||||
Domain: digiserver.sibiusb.harting.intra
|
||||
IP Address: 10.76.152.164
|
||||
Port: 443
|
||||
Email: admin@example.com
|
||||
Username: admin
|
||||
Password: admin123
|
||||
```
|
||||
|
||||
### Customize During Deployment
|
||||
```bash
|
||||
HOSTNAME=myserver \
|
||||
DOMAIN=myserver.internal \
|
||||
IP_ADDRESS=192.168.1.100 \
|
||||
EMAIL=admin@myserver.com \
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Common Tasks
|
||||
|
||||
| Task | Command |
|
||||
|------|---------|
|
||||
| **Start containers** | `docker-compose up -d` |
|
||||
| **Stop containers** | `docker-compose stop` |
|
||||
| **View logs** | `docker-compose logs -f` |
|
||||
| **Check HTTPS status** | `docker-compose exec -T digiserver-app python /app/https_manager.py status` |
|
||||
| **Reset password** | See [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#reset-admin-password) |
|
||||
| **View all tables** | See [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#list-all-tables) |
|
||||
| **Create admin user** | See [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#create-admin-user) |
|
||||
|
||||
---
|
||||
|
||||
## 📊 File Structure
|
||||
|
||||
```
|
||||
digiserver-v2/
|
||||
├── DEPLOYMENT_README.md ..................... Main deployment guide
|
||||
├── DOCKER_EXEC_COMMANDS.md ................. Quick reference (BEST FOR COMMANDS)
|
||||
├── DEPLOYMENT_COMMANDS.md .................. Detailed explanations
|
||||
├── deploy.sh ............................. Fully automated deployment
|
||||
├── setup_https.sh ......................... Semi-automated setup
|
||||
├── docker-compose.yml ..................... Docker services config
|
||||
├── Caddyfile .............................. Reverse proxy config
|
||||
├── requirements.txt ....................... Python dependencies
|
||||
│
|
||||
├── app/
|
||||
│ ├── app.py ............................ Flask application
|
||||
│ ├── models/ ........................... Database models
|
||||
│ │ ├── https_config.py
|
||||
│ │ ├── user.py
|
||||
│ │ └── ...
|
||||
│ └── ...
|
||||
│
|
||||
├── migrations/
|
||||
│ ├── add_https_config_table.py
|
||||
│ ├── add_player_user_table.py
|
||||
│ ├── add_email_to_https_config.py
|
||||
│ └── migrate_player_user_global.py
|
||||
│
|
||||
└── old_code_documentation/
|
||||
├── HTTPS_CONFIGURATION.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Deployment Methods Comparison
|
||||
|
||||
| Method | Time | Effort | Best For |
|
||||
|--------|------|--------|----------|
|
||||
| `./deploy.sh` | 2-3 min | Click & wait | First-time setup, automation |
|
||||
| `./setup_https.sh` | 3-5 min | Manual review | Learning, step debugging |
|
||||
| Manual commands | 10-15 min | Full control | Advanced users, scripting |
|
||||
|
||||
---
|
||||
|
||||
## ✨ What Gets Deployed
|
||||
|
||||
✅ Flask web application with admin dashboard
|
||||
✅ HTTPS with self-signed certificates
|
||||
✅ Caddy reverse proxy for routing
|
||||
✅ SQLite database with all tables
|
||||
✅ User management system
|
||||
✅ HTTPS configuration management
|
||||
✅ Player and content management
|
||||
✅ Group and playlist management
|
||||
✅ Admin audit trail
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Learning Path
|
||||
|
||||
1. **Total Beginner?**
|
||||
- Start: [DEPLOYMENT_README.md](DEPLOYMENT_README.md)
|
||||
- Run: `./deploy.sh`
|
||||
- Learn: Browse [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md) for available commands
|
||||
|
||||
2. **Want to Understand Everything?**
|
||||
- Read: [DEPLOYMENT_README.md](DEPLOYMENT_README.md#-deployment-methods) (all 3 methods)
|
||||
- Study: [DEPLOYMENT_COMMANDS.md](DEPLOYMENT_COMMANDS.md)
|
||||
- Reference: [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md)
|
||||
|
||||
3. **Need to Troubleshoot?**
|
||||
- Check: [DEPLOYMENT_README.md](DEPLOYMENT_README.md#-troubleshooting)
|
||||
- Or: [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md#-troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## 💡 Pro Tips
|
||||
|
||||
1. **Use `-T` flag** in docker-compose exec for scripts (prevents TTY issues)
|
||||
2. **Keep backups** before major changes
|
||||
3. **Check logs often**: `docker-compose logs -f`
|
||||
4. **Use environment variables** for custom deployments
|
||||
5. **Verify after deployment** using health check commands
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Related Documentation
|
||||
|
||||
- **HTTPS Setup**: `old_code_documentation/HTTPS_CONFIGURATION.md`
|
||||
- **Admin Features**: Check admin panel after login
|
||||
- **API Documentation**: See `old_code_documentation/PLAYER_EDIT_MEDIA_API.md`
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
- Logs: `docker-compose logs digiserver-app`
|
||||
- Health Check: See [DOCKER_EXEC_COMMANDS.md#-health-checks](DOCKER_EXEC_COMMANDS.md#-health-checks)
|
||||
- Troubleshooting: See [DEPLOYMENT_README.md#-troubleshooting](DEPLOYMENT_README.md#-troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
**Ready? Start with:** `./deploy.sh` 🚀
|
||||
|
||||
Or read [DEPLOYMENT_README.md](DEPLOYMENT_README.md) for the full guide.
|
||||
433
old_code_documentation/DEPLOYMENT_README.md
Normal file
433
old_code_documentation/DEPLOYMENT_README.md
Normal file
@@ -0,0 +1,433 @@
|
||||
# DigiServer Deployment Guide
|
||||
|
||||
Complete guide for deploying DigiServer on a new PC with automatic or manual configuration.
|
||||
|
||||
## 📋 Table of Contents
|
||||
|
||||
1. [Quick Start](#quick-start)
|
||||
2. [Prerequisites](#prerequisites)
|
||||
3. [Deployment Methods](#deployment-methods)
|
||||
4. [Verification](#verification)
|
||||
5. [Documentation Files](#documentation-files)
|
||||
6. [Troubleshooting](#troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
The fastest way to deploy DigiServer on a new PC:
|
||||
|
||||
```bash
|
||||
# 1. Clone or copy the project to your new PC
|
||||
cd /path/to/digiserver-v2
|
||||
|
||||
# 2. Run the automated deployment script
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
That's it! The script will:
|
||||
- ✅ Start all Docker containers
|
||||
- ✅ Run all database migrations
|
||||
- ✅ Configure HTTPS with self-signed certificates
|
||||
- ✅ Verify the setup
|
||||
- ✅ Display access URLs
|
||||
|
||||
---
|
||||
|
||||
## 📋 Prerequisites
|
||||
|
||||
Before deploying, ensure you have:
|
||||
|
||||
### 1. Docker & Docker Compose
|
||||
```bash
|
||||
# Check Docker installation
|
||||
docker --version
|
||||
|
||||
# Check Docker Compose installation
|
||||
docker-compose --version
|
||||
```
|
||||
|
||||
If not installed, follow the official guides:
|
||||
- [Docker Installation](https://docs.docker.com/install/)
|
||||
- [Docker Compose Installation](https://docs.docker.com/compose/install/)
|
||||
|
||||
### 2. Project Files
|
||||
```bash
|
||||
# You should have these files in the project directory:
|
||||
ls -la
|
||||
# Caddyfile - Reverse proxy configuration
|
||||
# docker-compose.yml - Docker services definition
|
||||
# setup_https.sh - Manual setup script
|
||||
# deploy.sh - Automated deployment script
|
||||
# requirements.txt - Python dependencies
|
||||
```
|
||||
|
||||
### 3. Sufficient Disk Space
|
||||
- ~2GB for Docker images and volumes
|
||||
- Additional space for your content/uploads
|
||||
|
||||
### 4. Network Access
|
||||
- Ports 80, 443 available (or configure in docker-compose.yml)
|
||||
- Port 2019 for Caddy admin API (internal only)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Deployment Methods
|
||||
|
||||
### Method 1: Fully Automated (Recommended)
|
||||
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
**What it does:**
|
||||
1. Starts Docker containers
|
||||
2. Runs all migrations
|
||||
3. Configures HTTPS
|
||||
4. Verifies setup
|
||||
5. Shows access URLs
|
||||
|
||||
**Configuration variables** (can be customized):
|
||||
```bash
|
||||
# Use environment variables to customize
|
||||
HOSTNAME=digiserver \
|
||||
DOMAIN=digiserver.sibiusb.harting.intra \
|
||||
IP_ADDRESS=10.76.152.164 \
|
||||
EMAIL=admin@example.com \
|
||||
PORT=443 \
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Method 2: Semi-Automated Setup
|
||||
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
./setup_https.sh
|
||||
```
|
||||
|
||||
**What it does:**
|
||||
1. Starts containers (if needed)
|
||||
2. Runs all migrations
|
||||
3. Configures HTTPS with production settings
|
||||
4. Shows status
|
||||
|
||||
---
|
||||
|
||||
### Method 3: Manual Step-by-Step
|
||||
|
||||
#### Step 1: Start Containers
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Wait for containers to be ready (check with `docker-compose ps`).
|
||||
|
||||
#### Step 2: Run Migrations
|
||||
```bash
|
||||
# Migration 1: HTTPS Config
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_https_config_table.py
|
||||
|
||||
# Migration 2: Player User
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_player_user_table.py
|
||||
|
||||
# Migration 3: Email
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_email_to_https_config.py
|
||||
|
||||
# Migration 4: Player User Global
|
||||
docker-compose exec -T digiserver-app python /app/migrations/migrate_player_user_global.py
|
||||
```
|
||||
|
||||
#### Step 3: Configure HTTPS
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py enable \
|
||||
digiserver \
|
||||
digiserver.sibiusb.harting.intra \
|
||||
admin@example.com \
|
||||
10.76.152.164 \
|
||||
443
|
||||
```
|
||||
|
||||
#### Step 4: Verify Status
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py status
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Verification
|
||||
|
||||
### Check Container Status
|
||||
```bash
|
||||
docker-compose ps
|
||||
```
|
||||
|
||||
Expected output:
|
||||
```
|
||||
NAME SERVICE STATUS PORTS
|
||||
digiserver-v2 digiserver-app Up (healthy) 5000/tcp
|
||||
digiserver-caddy caddy Up 80, 443, 2019/tcp
|
||||
```
|
||||
|
||||
### Test HTTPS Access
|
||||
```bash
|
||||
# From the same network (if DNS configured)
|
||||
curl -k https://digiserver.sibiusb.harting.intra
|
||||
|
||||
# Or from container
|
||||
docker-compose exec -T caddy wget --no-check-certificate -qO- https://localhost/ | head -10
|
||||
```
|
||||
|
||||
### Expected Response
|
||||
Should show HTML login page with "DigiServer" in the title.
|
||||
|
||||
### Check Database
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from sqlalchemy import inspect
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
inspector = inspect(app.extensions.db.engine)
|
||||
tables = inspector.get_table_names()
|
||||
print('Database tables:', len(tables))
|
||||
for t in sorted(tables):
|
||||
print(f' ✓ {t}')
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentation Files
|
||||
|
||||
### 1. `DOCKER_EXEC_COMMANDS.md` ⭐ **START HERE**
|
||||
Quick reference for all docker exec commands
|
||||
- Database operations
|
||||
- User management
|
||||
- HTTPS configuration
|
||||
- Health checks
|
||||
- Maintenance tasks
|
||||
|
||||
### 2. `DEPLOYMENT_COMMANDS.md`
|
||||
Comprehensive deployment guide
|
||||
- Prerequisites
|
||||
- Each deployment step explained
|
||||
- Complete deployment script template
|
||||
- Troubleshooting section
|
||||
|
||||
### 3. `deploy.sh`
|
||||
Automated deployment script (executable)
|
||||
- Runs all steps automatically
|
||||
- Shows progress with colors
|
||||
- Configurable via environment variables
|
||||
|
||||
### 4. `setup_https.sh`
|
||||
Semi-automated setup script (executable)
|
||||
- Detects if running in Docker or on host
|
||||
- Manual configuration option
|
||||
- Detailed output
|
||||
|
||||
### 5. `Caddyfile`
|
||||
Reverse proxy configuration
|
||||
- HTTPS certificate management
|
||||
- Domain routing
|
||||
- Security headers
|
||||
|
||||
### 6. `docker-compose.yml`
|
||||
Docker services definition
|
||||
- Flask application
|
||||
- Caddy reverse proxy
|
||||
- Volumes and networks
|
||||
|
||||
---
|
||||
|
||||
## 🔐 First Access
|
||||
|
||||
After deployment:
|
||||
|
||||
1. **Access the application**
|
||||
- https://digiserver.sibiusb.harting.intra
|
||||
- https://10.76.152.164
|
||||
- https://digiserver
|
||||
|
||||
2. **Log in with default credentials**
|
||||
```
|
||||
Username: admin
|
||||
Password: admin123
|
||||
```
|
||||
|
||||
3. **⚠️ IMPORTANT: Change the password immediately**
|
||||
- Click on admin user settings
|
||||
- Change default password to a strong password
|
||||
|
||||
4. **Configure your system**
|
||||
- Set up players
|
||||
- Upload content
|
||||
- Create groups
|
||||
- Configure playlists
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
### Containers Won't Start
|
||||
```bash
|
||||
# Check logs
|
||||
docker-compose logs
|
||||
|
||||
# Try rebuilding
|
||||
docker-compose down
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
### Migration Fails
|
||||
```bash
|
||||
# Check database connection
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
app = create_app()
|
||||
print('Database OK')
|
||||
"
|
||||
|
||||
# Check if tables already exist
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from sqlalchemy import inspect
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
inspector = inspect(app.extensions.db.engine)
|
||||
print('Existing tables:', inspector.get_table_names())
|
||||
"
|
||||
```
|
||||
|
||||
### HTTPS Certificate Issues
|
||||
```bash
|
||||
# Clear Caddy certificate cache
|
||||
docker volume rm digiserver-v2_caddy-data
|
||||
docker volume rm digiserver-v2_caddy-config
|
||||
|
||||
# Restart Caddy
|
||||
docker-compose restart caddy
|
||||
```
|
||||
|
||||
### Port 80/443 Already in Use
|
||||
```bash
|
||||
# Find what's using the port
|
||||
lsof -i :80 # For port 80
|
||||
lsof -i :443 # For port 443
|
||||
|
||||
# Stop the conflicting service or change ports in docker-compose.yml
|
||||
```
|
||||
|
||||
### Can't Access via IP Address
|
||||
```bash
|
||||
# Verify Caddy is listening
|
||||
docker-compose exec -T caddy netstat -tlnp 2>/dev/null | grep -E ':(80|443)'
|
||||
|
||||
# Test from container
|
||||
docker-compose exec -T caddy wget --no-check-certificate -qO- https://localhost/
|
||||
```
|
||||
|
||||
### Database Corruption
|
||||
```bash
|
||||
# Backup current database
|
||||
docker-compose exec -T digiserver-app cp /app/instance/digiserver.db /app/instance/digiserver.db.backup
|
||||
|
||||
# Reset database (CAUTION: This deletes all data)
|
||||
docker-compose exec -T digiserver-app rm /app/instance/digiserver.db
|
||||
|
||||
# Restart and re-run migrations
|
||||
docker-compose restart digiserver-app
|
||||
./setup_https.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 More Help
|
||||
|
||||
See the detailed documentation files:
|
||||
- **Quick Commands**: `DOCKER_EXEC_COMMANDS.md`
|
||||
- **Full Guide**: `DEPLOYMENT_COMMANDS.md`
|
||||
- **HTTPS Details**: `old_code_documentation/HTTPS_CONFIGURATION.md`
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Deployment on Different PC
|
||||
|
||||
To deploy on a different PC:
|
||||
|
||||
1. **Copy project files** to the new PC (or clone from git)
|
||||
2. **Ensure Docker and Docker Compose are installed**
|
||||
3. **Run deployment script**:
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
./deploy.sh
|
||||
```
|
||||
4. **Access the application** on the new PC at the configured URLs
|
||||
|
||||
All settings will be automatically configured! 🎉
|
||||
|
||||
---
|
||||
|
||||
## 📋 Environment Variables
|
||||
|
||||
You can customize deployment using environment variables:
|
||||
|
||||
```bash
|
||||
# Customize hostname
|
||||
HOSTNAME=myserver ./deploy.sh
|
||||
|
||||
# Customize domain
|
||||
DOMAIN=myserver.example.com ./deploy.sh
|
||||
|
||||
# Customize IP address
|
||||
IP_ADDRESS=192.168.1.100 ./deploy.sh
|
||||
|
||||
# Customize email
|
||||
EMAIL=admin@myserver.com ./deploy.sh
|
||||
|
||||
# Customize port
|
||||
PORT=8443 ./deploy.sh
|
||||
|
||||
# All together
|
||||
HOSTNAME=server1 \
|
||||
DOMAIN=server1.internal \
|
||||
IP_ADDRESS=192.168.1.100 \
|
||||
EMAIL=admin@server1.com \
|
||||
PORT=443 \
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✨ Features
|
||||
|
||||
✅ Automated HTTPS with self-signed certificates
|
||||
✅ Multi-access (hostname, domain, IP address)
|
||||
✅ Automatic reverse proxy with Caddy
|
||||
✅ Docker containerized (easy deployment)
|
||||
✅ Complete database schema with migrations
|
||||
✅ Admin dashboard for configuration
|
||||
✅ User management
|
||||
✅ Player management
|
||||
✅ Content/Playlist management
|
||||
✅ Group management
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notes
|
||||
|
||||
- Default SSL certificates are **self-signed** (internal use)
|
||||
- For production with Let's Encrypt, edit the Caddyfile
|
||||
- Keep database backups before major changes
|
||||
- Default credentials are in the code; change them in production
|
||||
- All logs available via `docker-compose logs`
|
||||
|
||||
---
|
||||
|
||||
**Ready to deploy? Run:** `./deploy.sh` 🚀
|
||||
|
||||
353
old_code_documentation/DOCKER_EXEC_COMMANDS.md
Normal file
353
old_code_documentation/DOCKER_EXEC_COMMANDS.md
Normal file
@@ -0,0 +1,353 @@
|
||||
# DigiServer Docker Exec Commands - Quick Reference
|
||||
|
||||
Quick reference guide for common `docker exec` commands used in DigiServer deployment and maintenance.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Complete Automated Deployment
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
### Manual Step-by-Step Setup
|
||||
```bash
|
||||
./setup_https.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Database Migrations
|
||||
|
||||
Run migrations in this order:
|
||||
|
||||
```bash
|
||||
# 1. HTTPS Configuration table
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_https_config_table.py
|
||||
|
||||
# 2. Player User table
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_player_user_table.py
|
||||
|
||||
# 3. Email column for HTTPS config
|
||||
docker-compose exec -T digiserver-app python /app/migrations/add_email_to_https_config.py
|
||||
|
||||
# 4. Player User global migration
|
||||
docker-compose exec -T digiserver-app python /app/migrations/migrate_player_user_global.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔒 HTTPS Configuration Management
|
||||
|
||||
### Check HTTPS Status
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py status
|
||||
```
|
||||
|
||||
### Show Detailed Configuration
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py show
|
||||
```
|
||||
|
||||
### Enable HTTPS (Production Settings)
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py enable \
|
||||
digiserver \
|
||||
digiserver.sibiusb.harting.intra \
|
||||
admin@example.com \
|
||||
10.76.152.164 \
|
||||
443
|
||||
```
|
||||
|
||||
### Disable HTTPS
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py disable
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 👤 User Management
|
||||
|
||||
### Create Admin User
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.user import User
|
||||
from app.extensions import db
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
admin = User.query.filter_by(username='admin').first()
|
||||
if not admin:
|
||||
admin = User(username='admin', email='admin@example.com')
|
||||
admin.set_password('admin123')
|
||||
admin.is_admin = True
|
||||
db.session.add(admin)
|
||||
db.session.commit()
|
||||
print('✅ Admin user created')
|
||||
else:
|
||||
print('✅ Admin user already exists')
|
||||
"
|
||||
```
|
||||
|
||||
### Reset Admin Password
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.user import User
|
||||
from app.extensions import db
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
admin = User.query.filter_by(username='admin').first()
|
||||
if admin:
|
||||
admin.set_password('newpassword123')
|
||||
db.session.commit()
|
||||
print('✅ Admin password reset successfully')
|
||||
else:
|
||||
print('❌ Admin user not found')
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Database Inspection
|
||||
|
||||
### List All Tables
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from sqlalchemy import inspect
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
inspector = inspect(app.extensions.db.engine)
|
||||
tables = inspector.get_table_names()
|
||||
for table in sorted(tables):
|
||||
print(f' ✓ {table}')
|
||||
print(f'Total: {len(tables)} tables')
|
||||
"
|
||||
```
|
||||
|
||||
### Check HTTPS Configuration Record
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.https_config import HTTPSConfig
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
config = HTTPSConfig.get_config()
|
||||
if config:
|
||||
print('HTTPS Configuration:')
|
||||
print(f' Status: {\"ENABLED\" if config.https_enabled else \"DISABLED\"}')
|
||||
print(f' Hostname: {config.hostname}')
|
||||
print(f' Domain: {config.domain}')
|
||||
print(f' IP: {config.ip_address}')
|
||||
print(f' Port: {config.port}')
|
||||
print(f' Updated: {config.updated_at}')
|
||||
print(f' Updated by: {config.updated_by}')
|
||||
else:
|
||||
print('No configuration found')
|
||||
"
|
||||
```
|
||||
|
||||
### Count Users
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
from app.models.user import User
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
count = User.query.count()
|
||||
print(f'Total users: {count}')
|
||||
admins = User.query.filter_by(is_admin=True).count()
|
||||
print(f'Admin users: {admins}')
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Health Checks
|
||||
|
||||
### Check Flask Application
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
import urllib.request
|
||||
try:
|
||||
response = urllib.request.urlopen('http://localhost:5000/', timeout=5)
|
||||
print(f'✅ Application responding (HTTP {response.status})')
|
||||
except Exception as e:
|
||||
print(f'❌ Application error: {e}')
|
||||
"
|
||||
```
|
||||
|
||||
### Validate Caddy Configuration
|
||||
```bash
|
||||
docker-compose exec -T caddy caddy validate --config /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### Test HTTPS from Container
|
||||
```bash
|
||||
docker-compose exec -T caddy wget --no-check-certificate -qO- https://localhost/ | head -10
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Maintenance Commands
|
||||
|
||||
### View Caddy Configuration
|
||||
```bash
|
||||
docker-compose exec -T caddy cat /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### Reload Caddy Configuration
|
||||
```bash
|
||||
docker-compose exec -T caddy caddy reload --config /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
### View Application Logs (Last 50 lines)
|
||||
```bash
|
||||
docker-compose logs --tail=50 digiserver-app
|
||||
```
|
||||
|
||||
### View Caddy Logs (Last 50 lines)
|
||||
```bash
|
||||
docker-compose logs --tail=50 caddy
|
||||
```
|
||||
|
||||
### Clear All Logs
|
||||
```bash
|
||||
docker-compose logs --clear
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Container Management
|
||||
|
||||
### Restart All Containers
|
||||
```bash
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
### Restart Specific Container
|
||||
```bash
|
||||
# Restart application
|
||||
docker-compose restart digiserver-app
|
||||
|
||||
# Restart Caddy
|
||||
docker-compose restart caddy
|
||||
```
|
||||
|
||||
### Stop All Containers
|
||||
```bash
|
||||
docker-compose stop
|
||||
```
|
||||
|
||||
### Start All Containers
|
||||
```bash
|
||||
docker-compose start
|
||||
```
|
||||
|
||||
### Remove Everything (Clean slate)
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
### Remove Everything Including Volumes (Full cleanup)
|
||||
```bash
|
||||
docker-compose down -v
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Backup and Recovery
|
||||
|
||||
### Backup Database
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
import shutil
|
||||
from datetime import datetime
|
||||
|
||||
app = create_app()
|
||||
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||
backup_name = f'digiserver_{timestamp}.db'
|
||||
|
||||
with app.app_context():
|
||||
# Get database path
|
||||
db_path = app.instance_path + '/digiserver.db'
|
||||
shutil.copy(db_path, f'/app/backups/{backup_name}')
|
||||
print(f'✅ Backup created: {backup_name}')
|
||||
"
|
||||
```
|
||||
|
||||
### List Database Backups
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app ls -lah /app/backups/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Containers won't start:**
|
||||
```bash
|
||||
# Check logs
|
||||
docker-compose logs
|
||||
|
||||
# Try rebuild
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
**Migration fails:**
|
||||
```bash
|
||||
# Check database connection
|
||||
docker-compose exec -T digiserver-app python -c "
|
||||
from app.app import create_app
|
||||
app = create_app()
|
||||
print('✅ Database connection OK')
|
||||
"
|
||||
```
|
||||
|
||||
**Certificate issues:**
|
||||
```bash
|
||||
# Clear Caddy cache
|
||||
docker volume rm digiserver-v2_caddy-data
|
||||
docker volume rm digiserver-v2_caddy-config
|
||||
|
||||
# Restart Caddy
|
||||
docker-compose restart caddy
|
||||
```
|
||||
|
||||
**Port conflicts:**
|
||||
```bash
|
||||
# Find what's using port 443
|
||||
lsof -i :443
|
||||
|
||||
# Find what's using port 80
|
||||
lsof -i :80
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Tips and Notes
|
||||
|
||||
- **`-T` flag**: Prevents Docker from allocating a pseudo-terminal (use in scripts)
|
||||
- **No `-T` flag**: Allocates a terminal (use for interactive commands)
|
||||
- **Container name**: `digiserver-app` (Flask application)
|
||||
- **Container name**: `digiserver-caddy` (Reverse proxy)
|
||||
- **Network**: `digiserver-v2_digiserver-network`
|
||||
- **Database**: SQLite at `/app/instance/digiserver.db`
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Related Documentation
|
||||
|
||||
- [DEPLOYMENT_COMMANDS.md](DEPLOYMENT_COMMANDS.md) - Complete deployment guide
|
||||
- [setup_https.sh](setup_https.sh) - Semi-automated setup script
|
||||
- [deploy.sh](deploy.sh) - Fully automated deployment script
|
||||
- [HTTPS_CONFIGURATION.md](old_code_documentation/HTTPS_CONFIGURATION.md) - HTTPS details
|
||||
|
||||
120
old_code_documentation/QUICK_START.md
Normal file
120
old_code_documentation/QUICK_START.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# 🚀 DigiServer Deployment - Quick Reference Card
|
||||
|
||||
## Instant Deployment
|
||||
|
||||
```bash
|
||||
cd /path/to/digiserver-v2
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
That's it! ✅
|
||||
|
||||
---
|
||||
|
||||
## 📖 Documentation Files
|
||||
|
||||
| File | Purpose | Size |
|
||||
|------|---------|------|
|
||||
| [DEPLOYMENT_INDEX.md](DEPLOYMENT_INDEX.md) | Navigation guide | 8.1 KB |
|
||||
| [DEPLOYMENT_README.md](DEPLOYMENT_README.md) | Complete guide | 9.4 KB |
|
||||
| [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md) | Command reference | 7.6 KB |
|
||||
| [DEPLOYMENT_COMMANDS.md](DEPLOYMENT_COMMANDS.md) | Detailed guide | 6.8 KB |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Executable Scripts
|
||||
|
||||
| Script | Purpose | Time |
|
||||
|--------|---------|------|
|
||||
| [deploy.sh](deploy.sh) | Fully automated | 2-3 min |
|
||||
| [setup_https.sh](setup_https.sh) | Semi-automated | 3-5 min |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Common Commands
|
||||
|
||||
### Check Status
|
||||
```bash
|
||||
docker-compose ps
|
||||
```
|
||||
|
||||
### View Logs
|
||||
```bash
|
||||
docker-compose logs -f digiserver-app
|
||||
```
|
||||
|
||||
### Verify HTTPS Configuration
|
||||
```bash
|
||||
docker-compose exec -T digiserver-app python /app/https_manager.py status
|
||||
```
|
||||
|
||||
### Access the Application
|
||||
```
|
||||
https://digiserver.sibiusb.harting.intra
|
||||
https://10.76.152.164
|
||||
https://digiserver
|
||||
```
|
||||
|
||||
### Default Login
|
||||
```
|
||||
Username: admin
|
||||
Password: admin123
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Containers won't start | `docker-compose logs` |
|
||||
| Migration fails | Check DB connection, see docs |
|
||||
| HTTPS errors | Clear Caddy cache: `docker volume rm digiserver-v2_caddy-*` |
|
||||
| Port conflict | `lsof -i :443` or change in docker-compose.yml |
|
||||
|
||||
See [DEPLOYMENT_README.md#-troubleshooting](DEPLOYMENT_README.md#-troubleshooting) for full guide.
|
||||
|
||||
---
|
||||
|
||||
## 🌍 Deploy on Different PC
|
||||
|
||||
1. Copy project files
|
||||
2. Install Docker & Docker Compose
|
||||
3. Run `./deploy.sh`
|
||||
|
||||
Done! 🎉
|
||||
|
||||
---
|
||||
|
||||
## 🔑 Customize Deployment
|
||||
|
||||
```bash
|
||||
HOSTNAME=myserver \
|
||||
DOMAIN=myserver.internal \
|
||||
IP_ADDRESS=192.168.1.100 \
|
||||
EMAIL=admin@example.com \
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Need More Help?
|
||||
|
||||
- **First time?** → [DEPLOYMENT_README.md](DEPLOYMENT_README.md)
|
||||
- **Need a command?** → [DOCKER_EXEC_COMMANDS.md](DOCKER_EXEC_COMMANDS.md)
|
||||
- **Lost?** → [DEPLOYMENT_INDEX.md](DEPLOYMENT_INDEX.md)
|
||||
- **Troubleshooting?** → [DEPLOYMENT_README.md#-troubleshooting](DEPLOYMENT_README.md#-troubleshooting)
|
||||
|
||||
---
|
||||
|
||||
## ✨ What You Get
|
||||
|
||||
✅ Web application with admin dashboard
|
||||
✅ HTTPS with self-signed certificates
|
||||
✅ User management system
|
||||
✅ Player & content management
|
||||
✅ Fully configured & ready to use
|
||||
|
||||
---
|
||||
|
||||
**Ready to deploy?** `./deploy.sh` 🚀
|
||||
Reference in New Issue
Block a user