Dashboard Django para gestion de personal, accesos, visitantes, vehiculos y consultas internas.
- Aplicacion desplegada en la VM de Vultr en
https://bonanza.robio-ai.com nginxfuncionando como reverse proxygunicornsirviendo Django en127.0.0.1:8000- SSL emitido con
certbot - Logo activo en la barra superior, favicon y pantalla de login
- Endpoint de placas disponible
- Endpoint de personas disponible
inventario_bonanza/manage.py: entrada de comandos de Djangoinventario_bonanza/inventario_bonanza/: configuracion principal del proyectoinventario_bonanza/gestion_personal/: app principalinventario_bonanza/static/: estaticos fuente versionablesinventario_bonanza/media/: archivos subidos localmenteinventario_bonanza/staticfiles/: salida decollectstaticconsulta_people/: fuentes de consulta para personasconsulta_plates/: fuentes de consulta para placas
En la VM actual el proyecto vive en:
/root/bonanzaServicios del sistema:
bonanza-gunicorn.servicenginx.service
Ruta de la configuracion de sitio:
/etc/nginx/sites-available/bonanza
Certificado SSL:
/etc/letsencrypt/live/bonanza.robio-ai.com/
python3 -m venv venv
venv/bin/pip install -r requirements.txt
venv/bin/python inventario_bonanza/manage.py migrate
venv/bin/python inventario_bonanza/manage.py runservercd /root/bonanza
/root/bonanza/venv/bin/python inventario_bonanza/manage.py migrate --noinput
/root/bonanza/venv/bin/python inventario_bonanza/manage.py collectstatic --noinput
systemctl restart bonanza-gunicorn
systemctl restart nginxDJANGO_SECRET_KEYDEBUGALLOWED_HOSTSCSRF_TRUSTED_ORIGINSAPP_URL
DATABASE_ENGINEDATABASE_NAMEDATABASE_ADMIN_USERDATABASE_ADMIN_PASSWORDDATABASE_DESCRIPTION
GLOBAL_ADMIN_USERNAMEGLOBAL_ADMIN_PASSWORDGLOBAL_ADMIN_EMAIL
MINIO_ROOT_USERMINIO_ROOT_PASSWORDMINIO_ACCESS_KEYMINIO_SECRET_KEYMINIO_BUCKET_NAMEMINIO_ENDPOINT_URLMINIO_CONSOLE_URLMINIO_VOLUMESMINIO_OPTSMINIO_PERSON_PHOTO_PATH
PLATE_LOOKUP_API_TOKENPERSON_LOOKUP_API_TOKEN
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDS
EMAIL_HOSTEMAIL_PORTEMAIL_USE_TLSEMAIL_HOST_USEREMAIL_HOST_PASSWORD
DJANGO_SERVICEMINIO_SERVICENGINX_SITE
/login//logout//role_redirect//global/dashboard//global/placas//global/consultas-personas//server//server/api/
GET /api/plate-lookup/<placa>/
Si PLATE_LOOKUP_API_TOKEN tiene valor, se debe enviar:
X-Plate-Lookup-Token: <token>
curl -H "X-Plate-Lookup-Token: <token>" \
https://bonanza.robio-ai.com/api/plate-lookup/ABC1234/Devuelve un JSON con:
okrecorderrorcuando aplica
La estructura de record incluye:
placaestadopropietariomarcamodeloanioclasetiposerviciousovinmotorsource_errorsnormalized_data
- Si no existe el registro, se crea en estado
pending - La consulta se procesa en segundo plano
- Si faltan credenciales externas, la respuesta puede traer errores por fuente
GET /api/person-lookup/<cedula>/
Si PERSON_LOOKUP_API_TOKEN tiene valor, se debe enviar:
X-Person-Lookup-Token: <token>
curl -H "X-Person-Lookup-Token: <token>" \
https://bonanza.robio-ai.com/api/person-lookup/0102030405/Devuelve un JSON con:
okrecorderrorcuando aplica
La estructura de record incluye:
cedulaestadonombre_completoprocesos_actor_totalprocesos_demandado_totalcitaciones_totalnormalized_datasource_errors
- Si no existe el registro, se crea en estado
pending - La consulta se procesa en segundo plano
- Las fuentes que requieren captcha o navegador pueden reportar error parcial
GET /server/api/
- Requiere sesion autenticada
- El acceso en la interfaz web esta restringido a
global_admin
- host
- uptime
- cpu
- memoria
- discos
- base de datos
- procesos de consulta
- colas de placas y personas
- Las fotos y archivos privados se sirven a traves de MinIO
- La ruta de media privada usa
private_media collectstaticpublica el contenido deinventario_bonanza/static/
- Logo principal:
inventario_bonanza/static/img/logo.png - Favicon: el mismo logo
- Login con cabecera visual del proyecto
www.bonanza.robio-ai.comno tiene DNS activo aun- Si se quiere usar
www, hay que crear el A record y volver a emitir el certificado - Revisar si se desea cambiar SQLite por PostgreSQL para produccion
- Confirmar si MinIO sera local definitivo o migrado a otro almacenamiento
- Definir si los tokens de API se consumiran solo internamente o desde sistemas externos
Ver estado de servicios:
systemctl status bonanza-gunicorn
systemctl status nginxVer logs:
journalctl -u bonanza-gunicorn -f
journalctl -u nginx -f
tail -f logs/django.logVerificacion rapida:
python3 inventario_bonanza/manage.py check