docs Introducción

Introducción

Todo lo que necesitas saber sobre DeployKit y cómo funciona.

¿Qué es DeployKit?

DeployKit es una PaaS (Platform as a Service) autoalojada y de código abierto que despliega aplicaciones, bases de datos, stacks de Compose y servidores de juegos en tu propia infraestructura. Piensa en ella como tu propio Vercel o Heroku, con control total sobre tus datos, sin dependencia de un proveedor y sin límites de uso. Por debajo es simplemente Docker, Compose y Traefik: si desinstalas DeployKit, tus contenedores siguen funcionando.

Esta documentación cubre DeployKit v0.6.0.

Características principales

Aplicaciones

Despliega desde GitHub, GitLab, cualquier repositorio Git o una imagen de Docker, con rollbacks, réplicas, autoescalado y modo mantenimiento

Builds con autodetección

Nixpacks, Dockerfile o Cloud Native Buildpacks, con escaneo opcional de vulnerabilidades con Trivy

Bases de datos

PostgreSQL, MySQL, MariaDB, MongoDB y Redis con un clic, con backups programados y restauración

Stacks de Compose y plantillas

Ejecuta un docker-compose.yml completo como una unidad, o instala uno desde el catálogo de plantillas de un clic

Servidores de juegos

Minecraft, Valheim, CS2 y Terraria desde un catálogo, con consola en vivo, gestor de archivos, backups de mundos y mods

GitHub App

Repositorios privados sin tokens personales, estados de commit en cada despliegue y previews de PR

Webhooks y previews

Despliegue automático al hacer push desde GitHub, GitLab o cualquier CI, además de entornos efímeros para pull requests

SSL automático

Certificados HTTPS gratuitos con Let's Encrypt + Traefik para cada dominio

Tareas programadas

Tareas cron y comandos puntuales (migraciones, scripts) en contenedores aislados

Monitorización y alertas

Métricas de CPU, memoria y red en vivo e históricas, reglas de alerta y logs persistentes con búsqueda

Páginas de estado

Una página pública, sin inicio de sesión, que muestra el estado en vivo y la disponibilidad de los servicios que elijas

Exportar e importar

Toda tu instancia en un archivo YAML: revísalo en git o reconstruye todo en un servidor nuevo

Servidores remotos

Despliega en otras máquinas por SSH, con un catálogo gestionado de claves SSH

Acceso basado en roles

Roles de Admin, Operator y Viewer con permisos por proyecto y un registro de auditoría completo

Notificaciones

Alertas por Discord, Slack, Telegram, Email y Webhook

Arquitectura

DeployKit es un plano de control: un panel y una API que manejan el daemon de Docker de una o más máquinas. No ejecuta tus aplicaciones dentro de sí mismo — le dice a Docker que las ejecute. Una instalación de producción ejecuta estos contenedores:

  • API — Fastify 5 + tRPC 11, Drizzle ORM, workers de BullMQ y Socket.IO. Monta el socket de Docker del host para construir imágenes y crear contenedores, y es el único componente que habla con la base de datos y con Docker
  • Web — SPA en React 19 (TanStack Router, TanStack Query, Tailwind CSS) servida en el mismo dominio que la API
  • Traefik v3.6 — Reverse proxy en los puertos 80/443. Descubre los contenedores por sus labels y emite los certificados de Let's Encrypt. Lee Docker a través de un socket proxy de solo lectura, nunca el socket directamente
  • PostgreSQL 16 — Almacena toda la configuración, usuarios, proyectos, historial de despliegues, métricas y datos de auditoría
  • Redis 7 — Protegido con contraseña. Contiene las colas de BullMQ (despliegues, backups, tareas programadas), los refresh tokens y los contadores de rate limit
  • Docker socket proxy — API de Docker de solo lectura para Traefik, en una red interna a la que solo Traefik puede acceder

Tus aplicaciones, bases de datos y stacks se unen a la red de Docker deploykit-network , donde Traefik enruta hacia ellos. Los servidores de juegos se ejecutan en una red aparte, deploykit-games, y los jugadores se conectan directamente a sus puertos. Los despliegues y los backups se encolan y los procesan los workers; el panel sigue el progreso en tiempo real mediante Socket.IO.

Requisitos del sistema

  • Servidor Linux (Ubuntu, Debian, familia RHEL o Alpine)
  • 1 vCPU como mínimo (se recomiendan 2 o más — la construcción de imágenes consume mucha CPU)
  • 1 GB de RAM como mínimo (se recomiendan 2 GB o más; un servidor de Minecraft con mods necesita por sí solo de 4 a 8 GB)
  • 10 GB de disco como mínimo (se recomiendan 50 GB o más según las imágenes, datos, backups y mundos de juegos)
  • Puertos 80 y 443 abiertos — el puerto 80 es obligatorio aunque todo acabe en HTTPS, porque Let's Encrypt valida a través de él
  • Acceso root o sudo
  • Node.js 20+ en el servidor, solo para ejecutar el CLI del instalador