- Docker and Docker Compose installed
- Ports 80 and 5000 available
- Clone or download the project
cd The_citadel- Start the application
docker-compose up -d --build- Wait for services to be ready (30-60 seconds)
# Check status
docker-compose ps
# View logs
docker-compose logs -f- Access the application
- Open browser: http://localhost
- Login with default admin:
admin/Admin@123
- Upload sample challenges
- Login as admin
- Go to Admin Dashboard
- Click "Upload JSON File"
- Select
server/sample-vulnerabilities.json
- Create a student account
- Logout
- Click "Register"
- Create account and select difficulty level
docker-compose restart backendEdit docker-compose.yml:
frontend:
ports:
- "8080:80" # Change 80 to 8080
backend:
ports:
- "5001:5000" # Change 5000 to 5001docker-compose logs backend
docker-compose logs frontend
docker-compose logs dbdocker-compose down -v
docker-compose up -d --buildEdit docker-compose.yml:
environment:
JWT_SECRET: <generate-random-32-char-string>
ADMIN_PASSWORD: <strong-password>
DB_PASSWORD: <strong-db-password>Add SSL certificates and update nginx configuration:
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# ... rest of config
}# Allow only necessary ports
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable# Backup database
docker exec llm-cyber-range-db pg_dump -U postgres llm_cyber_range > backup.sql
# Restore database
docker exec -i llm-cyber-range-db psql -U postgres llm_cyber_range < backup.sqldocker-compose psdocker statsdocker-compose logs --tail=100 -f# Stop services (keep data)
docker-compose stop
# Stop and remove containers (keep data)
docker-compose down
# Stop and remove everything including data
docker-compose down -vAdmin Account:
- Username:
admin - Password:
Admin@123
Database:
- User:
postgres - Password:
postgres_password_change_in_production
Students can access from other devices on the same network:
- Find your server IP:
ip addr show
# or
hostname -I- Students access via:
http://YOUR_SERVER_IP
- Upload challenges before creating student accounts
- Monitor admin dashboard for student progress
- Backup database regularly
- Update passwords in production
- Use HTTPS for production deployments