ai_qc/backend/run_api_server.py
nickviljoen 3fec052c12 Create frontend and backend folder structure for deployment
Organized the application into separate frontend and backend directories for cleaner deployment and better separation of concerns.

Frontend Directory (frontend/):
- index.html: Single-page web interface (renamed from web_ui.html)
- README.md: Frontend deployment guide
- Total size: ~113 KB (self-contained)
- Smart base path detection (works at / or /ai_qc/)
- No configuration changes required

Backend Directory (backend/):
- All Python files (api_server.py, llm_config.py, etc.)
- visual_qc_apps/: 33 QC check modules
- profiles/: 6 QC profile configurations
- brand_guidelines/: Reference asset storage
- config/: Environment configurations
- scripts/: Deployment automation
- uploads/, output/: Data directories
- requirements.txt, ai_qc.service, apache_config.conf
- Complete documentation

New Documentation:
- FOLDER_STRUCTURE.md: Comprehensive guide to new structure
- frontend/README.md: Frontend deployment instructions
- backend/BACKEND_README.md: Backend deployment guide

Deployment Mapping:
- frontend/ → /var/www/html/ai_qc/ (web root)
- backend/ → /opt/ai_qc/ (application directory)

Benefits:
- Clear separation of concerns
- Backend code not in web-accessible directory
- Independent frontend/backend updates
- Matches server's existing patterns (/opt/veo3, /opt/voice2text)
- Industry-standard architecture
- Easy to deploy and maintain

Original files preserved in root directory for reference.
Ready for production deployment following MIGRATION_GUIDE.md.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 11:55:53 +02:00

39 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
"""
Production server wrapper for Visual AI QC
Runs the Flask application using Waitress WSGI server
"""
import argparse
import sys
import os
from waitress import serve
# Add current directory to Python path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# Import the Flask app
from api_server import app
def main():
parser = argparse.ArgumentParser(description='Run Visual AI QC API Server')
parser.add_argument('--host', default='localhost', help='Host to bind to')
parser.add_argument('--port', type=int, default=7183, help='Port to bind to')
parser.add_argument('--workers', type=int, default=2, help='Number of worker threads')
args = parser.parse_args()
print(f"Starting Visual AI QC server on {args.host}:{args.port}")
print(f"Worker threads: {args.workers}")
print(f"Working directory: {os.getcwd()}")
# Use Waitress WSGI server (production-ready)
serve(
app,
host=args.host,
port=args.port,
threads=args.workers,
url_scheme='http'
)
if __name__ == '__main__':
main()