Un recorrido de 7 pasos que te lleva de una máquina Linux nueva con Docker a una instancia de SealRoute totalmente activada. Cada paso tiene el comando o la captura de pantalla exactos que necesitas.
docker --version
docker compose version
docker-compose.yml predeterminado incluye un proxy inverso Caddy que gestiona HTTPS automáticamente cuando defines HOST=tu.dominio.Crea un directorio de trabajo y obtén el archivo compose de producción del repositorio. Ya conecta SealRoute, Postgres y Caddy.
mkdir sealroute && cd sealroute
curl -L https://raw.githubusercontent.com/sealroute/sealroute/main/docker-compose.yml -o docker-compose.yml
curl -L https://raw.githubusercontent.com/sealroute/sealroute/main/deploy.sh -o deploy.sh
chmod +x deploy.sh
Si prefieres clonar todo el paquete de despliegue: git clone https://github.com/sealroute/sealroute.git && cd sealroute. De cualquier forma, los siguientes pasos son los mismos.
SealRoute lee su configuración de variables de entorno. Crea un archivo .env junto a tu archivo compose. Lo mínimo que necesitas:
# Where the app is reachable from a browser. Use https://your.domain in
# production or http://localhost:3000 for a local trial.
APP_URL=https://your.domain
HOST=your.domain
# Generate with `openssl rand -hex 64` and keep it secret.
SECRET_KEY_BASE=replace-me-with-a-long-random-string
# --- Aplindo licensing ------------------------------------------------------
APLINDO_LICENSE_API_URL=https://license.aplindo.com
APLINDO_LICENSE_PRODUCT_SLUG=SealRoute
APLINDO_LICENSE_DEFAULT_AMOUNT_IDR=5000000.00
APLINDO_LICENSE_HEARTBEAT_SECONDS=3600
Un ejemplo más completo con opciones adicionales está en .env.example.
Levanta SealRoute, Postgres y el proxy inverso en segundo plano:
docker compose up -d
Observa los registros de arranque hasta que veas a Puma escuchando en tcp://0.0.0.0:3000:
docker compose logs -f app
El primer arranque también ejecuta las migraciones de la base de datos. En un host de 2 GB esto suele completarse en menos de un minuto.
Abre la app en tu navegador. Como todavía no hay usuarios, SealRoute te redirige a la página /setup. Aquí creas la primera cuenta de administrador y los metadatos de tu cuenta.
Completa:
APP_URL en tu .env. Se usa para generar enlaces de firma en los correos.
Haz clic en Enviar. SealRoute crea la cuenta, inicia tu sesión y te redirige a la página /license.
Una instancia autoalojada de SealRoute necesita una licencia activa para desbloquear las pantallas tras el inicio de sesión. La página /license tiene dos tarjetas: Comprar licencia arriba y Activar licencia abajo.
En la tarjeta Comprar licencia, establece el número de puestos que necesitas. El precio unitario proviene de tu ajuste APLINDO_LICENSE_DEFAULT_AMOUNT_IDR (actualmente IDR 1.499.000 por puesto), y el total se recalcula automáticamente al cambiar el número de puestos.
Haz clic en Comprar licencia. SealRoute abre un modal con el iframe de pago de Aplindo. Completa el pago ahí. Cuando la transacción se realice, Aplindo envía la clave de licencia a la dirección que indicaste, y la misma clave también se muestra en la página de éxito del pago.
Copia la clave de licencia de la página de éxito o de tu correo y pégala en la tarjeta Activar licencia en /license:
Haz clic en Activar. SealRoute llama al servidor de licencias de Aplindo, vincula la clave a esta máquina y recarga. Verás la tarjeta Licencia actual arriba con estado active, el slug del producto, el ID de licencia, el ID de máquina, la fecha de caducidad y la marca de tiempo del último heartbeat.
SealRoute programa una tarea de heartbeat que vuelve a comprobar la licencia con Aplindo cada APLINDO_LICENSE_HEARTBEAT_SECONDS segundos (por defecto: cada hora). Si la licencia se revoca o caduca, el siguiente heartbeat lo reflejará.
SealRoute ya está plenamente operativo. Visita / y llegarás al panel vacío de Plantillas de Documentos, listo para tu primera carga.
Haz clic en Subir en el panel, suelta un PDF o DOCX y arrastra campos sobre él: firma, fecha, texto, casilla, etc.
SealRoute es ante todo una API REST. Genera un token de API en Ajustes → API, y luego dirígete a la documentación de la API para ver ejemplos completos en 10 lenguajes.