Diplo es una plataforma como servicio (PaaS) local construida en Go, diseñada para desplegar y gestionar aplicaciones de forma sencilla.
- 🚀 Deploy rápido de aplicaciones
- 🐳 Soporte para contenedores (Docker y Containerd)
- 📊 Monitoreo en tiempo real
- 🔧 Gestión de aplicaciones desde interfaz web
- 🍓 Optimizado para Raspberry Pi con containerd
- 🔒 Variables de entorno seguras con cifrado
- Go 1.21+
- SQLite3
- Docker o Containerd (recomendado para Raspberry Pi)
# Clonar repositorio
git clone <repository-url>
cd diplo
# Instalar dependencias
make deps
# Ejecutar en modo desarrollo
make dev# Deploy completo con containerd optimizado para Raspberry Pi
make deploy-autoEste comando:
- Compila el binario para ARM64
- Copia todos los scripts y documentación
- Configura containerd automáticamente
- Optimiza para Raspberry Pi
# Solo copiar archivos
make deploy
# Configurar containerd manualmente
make setup-containerd
# O configurar Docker
make setup-docker# Deploy completo con Docker
make deploy-fullmake build # Compilar
make run # Compilar y ejecutar
make dev # Modo desarrollo
make debug # Modo debug
make test # Ejecutar tests
make clean # Limpiar archivosmake deploy-auto # Deploy automático (RECOMENDADO)
make deploy # Solo copiar archivos
make post-deploy # Configuración post-deploy
make setup-containerd # Instalar containerd
make setup-docker # Instalar Docker
make diagnose-containerd # Diagnosticar containerdmake manage # Gestión de Diplo
make help # Ver todos los comandosUna vez ejecutado, accede a:
- Local: http://localhost:8080
- Raspberry Pi: http://raspberrypi.local:8080
# Deploy de aplicación
POST /api/unified/deploy
{
"name": "mi-app",
"repo_url": "https://github.com/usuario/repo",
"runtime_type": "containerd"
}
# Estado del sistema
GET /api/status
# Diagnóstico de containerd
GET /api/containerd/diagnostic
# Instalar containerd (solo Raspberry Pi)
POST /api/containerd/install- Mejor rendimiento: Más ligero que Docker
- Menor uso de memoria: Ideal para recursos limitados
- Optimizado para ARM: Mejor soporte para arquitectura ARM
- Inicio más rápido: ~2-3 segundos vs 5-8 segundos de Docker
El sistema detecta automáticamente que estás en Raspberry Pi y:
- Prioriza containerd sobre Docker
- Aplica optimizaciones específicas para ARM
- Configura límites de memoria apropiados
- Crea el namespace 'diplo' automáticamente
# En tu Raspberry Pi
./diplo-scripts/diagnose_containerd.sh
./diplo-scripts/verify_raspberry_containerd.shdiplo/
├── cmd/diplo/ # Punto de entrada principal
├── internal/ # Código interno
│ ├── database/ # Capa de base de datos
│ ├── docker/ # Integración con Docker
│ ├── runtime/ # Sistema de runtimes (Docker/Containerd)
│ ├── server/ # Servidor HTTP y handlers
│ └── templates/ # Templates HTML
├── scripts/ # Scripts de instalación y gestión
├── docs/ # Documentación
└── Makefile # Comandos de build y deploy
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Si encuentras problemas:
- Ejecuta el diagnóstico:
make diagnose-containerd - Revisa los logs:
sudo journalctl -u containerd -f - Verifica la configuración:
cat /etc/containerd/config.toml - Reinicia el servicio:
sudo systemctl restart containerd
¡Diplo está optimizado para tu Raspberry Pi con containerd! 🍓