195 lines
4.0 KiB
JSON
195 lines
4.0 KiB
JSON
{
|
|
"project": "InnotexBoard",
|
|
"version": "0.1.0",
|
|
"description": "Interface d'administration Debian légère - Alternative à Cockpit",
|
|
"created": "2026-01-16",
|
|
"updated": "2026-01-16",
|
|
"author": "Innotex Team",
|
|
"license": "MIT",
|
|
|
|
"stack": {
|
|
"backend": {
|
|
"framework": "FastAPI",
|
|
"language": "Python",
|
|
"version": "0.104.1",
|
|
"python_version": "3.8+",
|
|
"key_libraries": [
|
|
"fastapi",
|
|
"uvicorn",
|
|
"pydantic",
|
|
"python-jose",
|
|
"pam",
|
|
"psutil",
|
|
"docker"
|
|
]
|
|
},
|
|
"frontend": {
|
|
"framework": "Vue.js",
|
|
"version": "3.3.4",
|
|
"build_tool": "Vite",
|
|
"styling": "Tailwind CSS",
|
|
"node_version": "16+",
|
|
"key_libraries": [
|
|
"vue",
|
|
"vue-router",
|
|
"pinia",
|
|
"axios",
|
|
"tailwindcss"
|
|
]
|
|
}
|
|
},
|
|
|
|
"features": {
|
|
"authentication": {
|
|
"type": "PAM",
|
|
"tokens": "JWT",
|
|
"expiration_hours": 8
|
|
},
|
|
"monitoring": {
|
|
"cpu": true,
|
|
"memory": true,
|
|
"processes": true,
|
|
"refresh_interval_seconds": 5
|
|
},
|
|
"docker": {
|
|
"list_containers": true,
|
|
"cpu_stats": true,
|
|
"memory_stats": true,
|
|
"start_container": true,
|
|
"stop_container": true,
|
|
"restart_container": true,
|
|
"delete_container": true,
|
|
"port_mapping_display": true
|
|
},
|
|
"ui": {
|
|
"theme": "dark",
|
|
"responsive": true,
|
|
"components": [
|
|
"Dashboard",
|
|
"Login",
|
|
"Containers"
|
|
]
|
|
}
|
|
},
|
|
|
|
"api": {
|
|
"version": "v1",
|
|
"endpoints": 12,
|
|
"base_url": "http://localhost:8000/api/v1"
|
|
},
|
|
|
|
"files": {
|
|
"backend": {
|
|
"total": 12,
|
|
"python": 9,
|
|
"config": 1,
|
|
"docker": 1,
|
|
"documentation": 1
|
|
},
|
|
"frontend": {
|
|
"total": 15,
|
|
"vue": 4,
|
|
"javascript": 4,
|
|
"json": 4,
|
|
"config": 2,
|
|
"docker": 1
|
|
},
|
|
"configuration": {
|
|
"docker_compose": 2,
|
|
"nginx": 1,
|
|
"gitignore": 1,
|
|
"env": 2
|
|
},
|
|
"documentation": {
|
|
"total": 7,
|
|
"guides": 3,
|
|
"technical": 2,
|
|
"index": 1,
|
|
"checklist": 1
|
|
},
|
|
"scripts": {
|
|
"tests": 1,
|
|
"summary": 1
|
|
}
|
|
},
|
|
|
|
"statistics": {
|
|
"total_files": 45,
|
|
"total_lines_of_code": 3000,
|
|
"documentation_lines": 1500,
|
|
"components": 3,
|
|
"endpoints": 12,
|
|
"services": 2
|
|
},
|
|
|
|
"ports": {
|
|
"backend": 8000,
|
|
"frontend": 3000,
|
|
"nginx": 80,
|
|
"nginx_ssl": 443
|
|
},
|
|
|
|
"requirements": {
|
|
"system": [
|
|
"Python 3.8+",
|
|
"Node.js 16+",
|
|
"Docker (optional)",
|
|
"Debian/Ubuntu (for PAM)"
|
|
],
|
|
"permissions": [
|
|
"Docker socket access",
|
|
"PAM authentication",
|
|
"System stat reading (/proc, /sys)"
|
|
]
|
|
},
|
|
|
|
"deployment": {
|
|
"development": {
|
|
"method": "docker-compose",
|
|
"file": "docker-compose.yml",
|
|
"volumes": [
|
|
"source code",
|
|
"node_modules"
|
|
]
|
|
},
|
|
"production": {
|
|
"method": "docker-compose + nginx",
|
|
"file": "docker-compose.advanced.yml",
|
|
"reverse_proxy": "nginx.conf",
|
|
"ssl": "configurable"
|
|
}
|
|
},
|
|
|
|
"security": {
|
|
"authentication": "PAM + JWT",
|
|
"token_algorithm": "HS256",
|
|
"cors": "enabled",
|
|
"trusted_host": "enabled",
|
|
"input_validation": "Pydantic",
|
|
"https": "recommended for production"
|
|
},
|
|
|
|
"documentation": {
|
|
"quickstart": "QUICKSTART.md",
|
|
"architecture": "TECHNICAL_EXPLANATION.md",
|
|
"permissions": "PERMISSIONS.md",
|
|
"answers": "ANSWERS.md",
|
|
"index": "DOCUMENTATION.md"
|
|
},
|
|
|
|
"getting_started": {
|
|
"step1": "Read QUICKSTART.md",
|
|
"step2": "cd backend && pip install -r requirements.txt",
|
|
"step3": "cd frontend && npm install",
|
|
"step4": "python3 main.py (terminal 1)",
|
|
"step5": "npm run dev (terminal 2)",
|
|
"step6": "Visit http://localhost:3000"
|
|
},
|
|
|
|
"testing": {
|
|
"api_tests": "bash test_api.sh username password",
|
|
"swagger_docs": "http://localhost:8000/docs",
|
|
"frontend": "http://localhost:3000"
|
|
}
|
|
}
|