Automatia BCN
ABS
setupsetup-guide

Guía de instalación de ABS

Instale su servidor ABS auto-hospedado en aproximadamente 30 minutos

Esta guía le ayudará a poner en marcha su propio servidor de orquestación de IA, ABS. Al terminar, tendrá una instancia privada y segura lista para automatizar sus flujos de trabajo. Su correo de bienvenida contiene tres archivos adjuntos esenciales: docker-compose.yml, Caddyfile y .env.template. Recibirá un segundo correo con su clave de licencia (ABS_LICENSE_KEY) en las próximas 24 horas.

1. Prepare su VPS

Recomendamos un VPS de Hetzner como el CX22 (aproximadamente €3,79/mes), que ofrece un excelente rendimiento. Los requisitos mínimos son Ubuntu 22.04 LTS o superior, 2 vCPU, 4 GB de RAM y 40 GB de disco. Una vez que tenga su servidor, apunte un registro DNS de tipo A (por ejemplo, abs.suempresa.com) a la IP pública del VPS. A continuación, configure el firewall para permitir el tráfico esencial. Use sudo ufw allow 22/tcp para SSH, sudo ufw allow 80/tcp para la validación del certificado HTTP y sudo ufw allow 443/tcp para el tráfico HTTPS. Por seguridad, cree un usuario no-root con privilegios sudo y configure el acceso mediante claves SSH en lugar de contraseñas. Finalmente, anote su subdominio, ya que lo necesitará para la variable de entorno ABS_PUBLIC_HOSTNAME más adelante.
# Point an A record at your VPS public IP, then on the server:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo adduser abs && sudo usermod -aG sudo abs
ssh-copy-id abs@your.hostname.com

2. Instale Docker y autentíquese en GHCR

ABS se distribuye como imágenes de Docker, por lo que necesitará Docker Engine y Docker Compose. La forma más sencilla de instalarlos es con el script oficial: curl -fsSL https://get.docker.com -o get-docker.sh y luego sudo sh get-docker.sh. Para poder ejecutar comandos de Docker sin sudo, agregue su usuario al grupo docker: sudo usermod -aG docker $USER. Deberá cerrar la sesión y volver a iniciarla para que este cambio surta efecto. Verifique que todo funciona con docker run hello-world. A continuación, inicie sesión en el registro de contenedores de GitHub (GHCR) con el token de acceso personal (PAT) de solo lectura que encontrará en su correo de bienvenida: docker login ghcr.io. Esto es necesario porque las imágenes de ABS son privadas. Guarde este token de forma segura y no lo comparta.
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER
# log out, log back in
docker run hello-world
docker login ghcr.io   # paste read-only PAT from your welcome email

3. Guarde los tres archivos adjuntos y complete .env

Cree un directorio para los archivos de configuración de ABS, por ejemplo, en /opt/abs con sudo mkdir /opt/abs. Descargue los tres archivos adjuntos de su correo de bienvenida (docker-compose.yml, Caddyfile, .env.template) y guárdelos en este nuevo directorio. Ahora, edite el archivo de plantilla de entorno: nano /opt/abs/.env.template. Deberá completar las siguientes variables: ABS_LICENSE_KEY (que recibirá en un correo separado en 24h), ABS_PUBLIC_HOSTNAME (su subdominio, p. ej., abs.suempresa.com) y ABS_ACME_EMAIL (su email, para las notificaciones de certificados de Let's Encrypt). Puede añadir opcionalmente claves de API para proveedores como Anthropic, OpenAI o Groq. ABS no realizará ninguna llamada a un proveedor si no ha configurado su clave. Una vez completado, cambie el nombre del archivo a .env con mv /opt/abs/.env.template /opt/abs/.env.
sudo mkdir -p /opt/abs && sudo chown $USER:$USER /opt/abs
cd /opt/abs
# save docker-compose.yml, Caddyfile, .env.template here
# (download from your welcome email attachments)
nano .env.template   # fill ABS_LICENSE_KEY, ABS_PUBLIC_HOSTNAME, ABS_ACME_EMAIL
mv .env.template .env

4. Levante ABS con docker compose

Con todo en su sitio, es hora de iniciar los servicios. Desde su directorio /opt/abs, ejecute docker compose -f docker-compose.yml up -d. Este comando descargará las imágenes y levantará los contenedores en segundo plano. Puede seguir los logs en tiempo real con docker compose logs -f. El proceso de arranque inicial puede tardar alrededor de un minuto. Verá cómo el backend realiza su healthcheck y pasa a un estado saludable. Caddy, nuestro servidor proxy inverso, solicitará automáticamente un certificado TLS a Let's Encrypt. Para que esto funcione, su DNS debe estar propagado y los puertos 80 y 443 deben estar abiertos. Una vez que los logs se estabilicen, verifique que el backend responde correctamente con curl https://su-hostname/healthz. Debería recibir un OK.
cd /opt/abs
docker compose -f docker-compose.yml up -d
docker compose logs -f      # wait ~60s for backend healthcheck
curl https://your.hostname.com/healthz

5. Asistente de configuración inicial

¡Ya casi está! Abra su navegador y vaya a su subdominio, https://abs.suempresa.com. Será recibido por el asistente de configuración inicial. Primero, se le pedirá que cree la cuenta de administrador principal, proporcionando un email y una contraseña segura. A continuación, tendrá la opción de configurar una 'vault key', una capa adicional de encriptación para sus secretos. También podrá introducir sus claves de proveedor de IA si no lo hizo en el archivo .env. En este paso, el sistema validará su ABS_LICENSE_KEY contra nuestros servidores y creará una huella digital única para su instancia. Al finalizar, aterrizará en el panel de administración de ABS, listo para empezar a crear.
# Open in your browser:
# https://your.hostname.com
# Wizard:
#   1. Admin email + password
#   2. Optional vault key
#   3. Optional provider keys (Anthropic / OpenAI / Groq / Cohere)
#   4. License JWT validation

Resolución de problemas

No se preocupe, la mayoría de los problemas de instalación se deben a la configuración del DNS, el firewall o un token incorrecto. Aquí tiene algunas soluciones rápidas.

Falla la autenticación en GHCR

Si al hacer docker login ghcr.io recibe un error de unauthorized, es probable que el token de acceso personal (PAT) sea incorrecto o haya caducado. Vuelva a generarlo desde el enlace en su correo de bienvenida y reintente el login. También puede verificar el token guardado en ~/.docker/config.json.
docker login ghcr.io
cat ~/.docker/config.json | grep ghcr.io

Tiempo de espera en activación de licencia

Si los logs del backend muestran activation failed o timeouts, puede deberse a un desfase del reloj del servidor o a que no tiene salida a internet (egress). Sincronice la hora con sudo timedatectl set-ntp true y asegúrese de que su firewall permite conexiones salientes a *.workers.dev en el puerto 443.
sudo timedatectl set-ntp true
sudo timedatectl status
curl -I https://abs-license-activation.automatiaabs.workers.dev

Caddy no puede emitir certificado TLS

Un error de TLS o la falta de certificado HTTPS suele significar que el DNS aún no se ha propagado o que los puertos 80/443 están bloqueados. Verifique que dig +short su-hostname devuelve la IP de su VPS. Confirme que el firewall está abierto con sudo ufw status. A veces, solo necesita esperar 5-10 minutos.
dig +short your.hostname.com
sudo ufw status
docker compose logs caddy | tail -50

Backend sin memoria

Si el contenedor del backend se reinicia constantemente (puede verlo con docker ps) o los logs muestran errores OOM (Out of Memory), significa que los 4 GB de RAM son insuficientes. Considere actualizar a un plan superior como el CX31 de Hetzner (8 GB RAM, ~€5,83/mes) o configure claves de proveedor para delegar la generación de embeddings.
docker stats --no-stream
docker compose logs backend | grep -i 'oom\|memory'
# free -h to check host memory

No se puede acceder al panel de admin

Si ve un error 502 Bad Gateway pero Caddy parece estar funcionando, es probable que el contenedor landing no esté pasando su healthcheck. Revise sus logs con docker compose logs landing. Un error común es no haber configurado la variable ABS_PUBLIC_URL=https://su-hostname en el archivo .env. Ajústela y reinicie el servicio con docker compose restart landing.
docker compose logs landing | tail -50
# In .env, ensure:
# ABS_PUBLIC_URL=https://your.hostname.com
docker compose restart landing

¿Necesita una mano?

Si sigue atascado, estamos aquí para ayudar. Simplemente responda a su correo de bienvenida o escriba directamente a founder@automatiabcn.com. Por favor, incluya la salida de docker compose logs para que podamos diagnosticar el problema rápidamente. Normalmente, lo resolvemos en una sola conversación.

ABS
Guía de instalación de ABS | Automatia BCN