40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Entry point for WebSSH Backend.
|
|
|
|
This script starts the WebSSH server with all its components:
|
|
- HTTP API server (login, connections, SFTP REST endpoints)
|
|
- WebSocket SSH server (terminal access)
|
|
- WebSocket SFTP server (file operations)
|
|
- Periodic cleanup task for session recordings
|
|
|
|
Usage:
|
|
python run.py
|
|
|
|
Environment variables:
|
|
WEBSSH_USERS - Comma-separated user:pass pairs (default: admin:admin)
|
|
JWT_SECRET - Secret key for JWT tokens (auto-generated if not set)
|
|
MAX_UPLOAD_SIZE - Maximum file upload size (default: 100M)
|
|
RECORDING_ENABLED - Enable session recording (default: true)
|
|
RECORDING_RETENTION_DAYS - Days to keep recordings (default: 30)
|
|
STORAGE_DIR - Directory for data storage (default: /data)
|
|
"""
|
|
import sys
|
|
import os
|
|
|
|
# Add current directory to path for imports
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from webssh_backend.main import main
|
|
from webssh_backend.config import logger
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
import asyncio
|
|
asyncio.run(main())
|
|
except KeyboardInterrupt:
|
|
logger.info("Server stopped by user")
|
|
except Exception as e:
|
|
logger.error(f"Fatal error: {e}")
|
|
sys.exit(1)
|