Instalación

Guía de instalación

Instala ZetiSecret en tu propia infraestructura. La instalación completa tarda menos de 10 minutos con Docker. No se requiere experiencia previa en administración de sistemas.

¿Prefieres la versión cloud? Si no quieres mantener tu propia instancia, puedes usar zetisecret.com — sin instalación, con planes gratuitos y de pago.

Requisitos

RequisitoVersión mínimaNotas
Docker 24.x Docker Desktop en Windows/macOS; Docker Engine en Linux
Docker Compose v2.x Incluido en Docker Desktop
RAM 512 MB libres 1 GB recomendado en producción
Disco 2 GB libres Para imágenes Docker y datos de PostgreSQL
Puerto 8090 (local) Configurable; 443 en producción con TLS

Windows (Docker Desktop)

La forma más sencilla de instalar ZetiSecret en Windows es usando Docker Desktop.

1. Instalar Docker Desktop

  1. Descarga Docker Desktop desde docker.com/products/docker-desktop.
  2. Ejecuta el instalador y acepta los valores por defecto. Reinicia el PC cuando se te pida.
  3. Abre Docker Desktop y espera a que el icono de la ballena en la barra de tareas se ponga en verde (puede tardar 1-2 minutos la primera vez).
  4. Verifica la instalación abriendo PowerShell:
    docker --version
    docker compose version
    Deberías ver Docker version 27.x y Docker Compose version v2.x.
Windows 10 Home es compatible siempre que WSL 2 esté habilitado. Docker Desktop lo activa automáticamente durante la instalación.

2. Descargar ZetiSecret

Opción A — Con Git (recomendado):

git clone https://github.com/rmedinag/ZetiSecret.git
cd ZetiSecret

Opción B — Sin Git:

  1. Ve a github.com/rmedinag/ZetiSecret
  2. Haz clic en Code → Download ZIP
  3. Descomprime el ZIP y abre PowerShell en esa carpeta

3. Arrancar la aplicación

No necesitas configurar nada antes de arrancar. El asistente de instalación se encarga de todo.

docker compose -f compose.local.yml up --build

La primera vez descarga las imágenes y compila la aplicación (2-3 minutos). Cuando veas esto, está listo:

zetisecret-app-1  | [install] No configuration found. Visit /install to set up.
zetisecret-app-1  | {"level":"info","msg":"Server listening on 0.0.0.0:8090"}

Para arrancar en segundo plano:

docker compose -f compose.local.yml up --build -d

4. Asistente de instalación

Abre http://localhost:8090 — serás redirigido automáticamente al asistente en /install. Desde ahí podrás configurar la base de datos, SMTP y otros ajustes.

Linux / macOS

El proceso es idéntico al de Windows. Solo varía cómo se instala Docker:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER   # reinicia sesión después

A partir de ahí, los comandos docker compose son los mismos que en Windows.

Cloud / VPS (producción)

Para despliegues en producción recomendamos un VPS Linux (Ubuntu 22.04 LTS o superior) con al menos 1 GB de RAM.

  1. Instala Docker Engine en el VPS:
    curl -fsSL https://get.docker.com | sh
  2. Clona el repositorio y configura las variables de entorno en un fichero .env.
  3. Arranca con el compose de producción:
    docker compose up --build -d
  4. Apunta tu dominio al IP del servidor y configura TLS. ZetiSecret incluye soporte para certificados Let's Encrypt a través de Caddy o puedes usar un proxy inverso como Nginx.
  5. Abre el asistente en https://tu-dominio.com/install y completa la configuración.
Para despliegues enterprise con Azure App Service, Azure Container Apps o Kubernetes, contáctanos — tenemos guías y soporte dedicado.

Variables de entorno

ZetiSecret se configura mediante variables de entorno o a través del asistente web. Las principales:

VariableDescripciónEjemplo
DATABASE_URL Cadena de conexión PostgreSQL postgresql://user:pass@db:5432/zetisecret
PUBLIC_APP_URL URL pública de la app (para links en emails) https://secrets.miempresa.com
SMTP_HOST Servidor SMTP para envío de emails smtp.resend.com
SMTP_PORT Puerto SMTP 465
SMTP_USER Usuario SMTP resend
SMTP_PASS Contraseña SMTP (secreto)
SMTP_FROM Dirección de remitente noreply@miempresa.com
PORT Puerto de escucha del servidor 8090
MAX_FAILED_ATTEMPTS Intentos fallidos antes de bloquear passphrase 5
PASSPHRASE_LOCK_MINUTES Duración del bloqueo en minutos 15

Actualización

Para actualizar a la última versión:

git pull origin main
docker compose -f compose.local.yml up --build -d

Las migraciones de base de datos se ejecutan automáticamente al arrancar el contenedor.

Las actualizaciones son compatibles hacia atrás. No es necesario hacer backup de datos antes de actualizar, aunque siempre es recomendable.

Soporte