Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

opendiving-api

Backend FastAPI+PostgreSQL+Redis para OpenDiving, registro de buceo open-source auto-hospedable.

Ficha actualizada 22 sept 2026, 15:31 · upstream 21 sept 2026, 18:25 · release v0.3.0

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es opendiving-api

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Este repositorio contiene el backend de OpenDiving, una aplicación web para registro de buceo auto-hospedable. Está construido con FastAPI, Python, PostgreSQL y Redis. La API gestiona registros de inmersiones con detalles técnicos como mezclas de gas (O₂/He), presiones, límites ppO₂ por cilindro, consumo SAC/RMV derivado automáticamente, y datos de computadoras de buceo importados desde archivos FIT o XML/Suunto.

La aplicación permite autenticación sin contraseña mediante enlaces mágicos por email, Google Sign-In y passkeys. Soporta gestión de equipo con programaciones de mantenimiento, certificados (c-cards), cursos de formación y especies marinas con integración en WoRMS para taxonomía. Incluye exportación completa del logbook en formatos abiertos como DiveJSON 1.0 y UDDF 3.2.2, validados contra esquemas oficiales.

El sistema fusiona inmersiones registradas por múltiples computadoras de buceo en un solo registro coherente, preserva datos originales sin inventar información para rellenar huecos temporales, y permite migración entre instancias o restauración desde copias de seguridad. La autenticación es segura sin almacenamiento de contraseñas, usando tokens de corta duración y cookies httpOnly.

CASOS DE USO
  • Registro técnico de inmersiones con mezclas de gas y límites CNS/OTU para buceo profundo
  • Importación automática de archivos de computadoras de buceo (Garmin Descent, Suunto Ocean) con perfiles por muestra
  • Gestión de equipo con programaciones de mantenimiento y alertas por email
  • Exportación completa del logbook en formatos abiertos para migrar entre plataformas o software
  • Registro de especies marinas con taxonomía WoRMS y fotos de Wikimedia Commons
  • Autenticación segura sin contraseñas mediante passkeys y enlaces mágicos por email
PUNTOS DESTACADOS
  • Soporte nativo para computadoras de buceo múltiples en una sola inmersión con fusión automática de registros
  • Integración directa con WoRMS para taxonomía marina actualizada en tiempo real sin snapshots obsoletos
  • Exportación completa en DiveJSON 1.0 y UDDF 3.2.2 validados contra esquemas oficiales
  • Autenticación sin almacenamiento de contraseñas usando passkeys como primer factor de autenticación
  • Gestión integral de equipo con programaciones de mantenimiento y alertas por email automáticas
  • Importación de archivos FIT, XML/Suunto con perfiles por muestra extraídos server-side con ETag caching
PRECAUCIONES
  • Requiere configuración SMTP para funcionalidad de autenticación sin contraseña en entornos de producción
  • La integración con Shearwater Cloud no está implementada y requiere un parser personalizado
  • El endpoint de formulario de contacto no tiene valor por defecto y devuelve 503 si no se configura
  • Las claves SECRET_KEY y POSTGRES_PASSWORD deben cambiarse obligatoriamente para evitar vulnerabilidades
  • La autenticación sin contraseña depende de un servicio SMTP confiable o relay externo
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO30 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

Instalar desde el repositorio principal opendiving/opendiving para producción. Configurar .env con SECRET_KEY único, POSTGRES_PASSWORD seguro y SMTP_HOST para autenticación sin contraseña. Usar docker compose up para desarrollo local. Cambiar FRONTEND_URL a la URL real del frontend en producción. Verificar que EMAIL_FROM_ADDRESS esté configurado cuando se use SMTP. Para producción, usar un relay SMTP confiable (ej. smtp.example.com) con STARTTLS o TLS. No ejecutar MTA propio sin conocimiento avanzado.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsFastAPIPython
SERVICIOS
PostgreSQLRedisS3/MinIO
BASES DE DATOS
PostgreSQLRedis
PUERTOS
8000300080255432
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.