Harness MaxxingDocumentación
📚 Todas las páginas

🚀 Primeros pasos · 12 min de lectura

🚀Instalación

Requisitos

  • Un servidor con Ubuntu 24.04 (probado: Ubuntu 22.04, 24.04 y 26.04, Debian 12; otros sistemas basados en apt suelen funcionar) con systemd, en x86_64 o arm64. Se recomiendan 2 vCPU, 4 GB de RAM y 40 GB de disco (las herramientas para vídeos y scraping ocupan ~1,5 GB). Con menos de 4 GB de RAM y sin swap, el instalador añade un archivo swap de 2 GB; con menos de 3 GB, la transcripción de voz local queda desactivada salvo que la pidas.
  • Acceso root (sudo -i).
  • Una suscripción a Claude (Pro/Max) o una clave de API de Anthropic.
  • Para el acceso por HTTPS: un nombre de dominio cuyo registro DNS A/AAAA apunte al servidor, y los puertos 80/443 abiertos. Como alternativa, Tailscale o un túnel SSH.

Te recomendamos un servidor dedicado a Harness Maxxing: por defecto Claude funciona con todos los permisos (consulta Seguridad). Un servidor que ya ejecuta otras cosas también sirve: consulta Instalar en un servidor que ya está en uso.

Instalar

Como root en el servidor (antes sudo -i si has iniciado sesión con otro usuario):

curl -fsSL https://get.harness-maxxing.com | bash

Te hace tres preguntas (modo de acceso, dominio, restaurar una copia de seguridad) y luego clona el repositorio git público (github.com/makushingu/harness-maxxing, rama stable = las versiones publicadas): sin clave y sin cuenta. Después, las actualizaciones vienen de esa rama (maxxing update). Instalación desatendida: curl -fsSL https://get.harness-maxxing.com | ACCESS=domain DOMAIN=ui.example.com ASSUME_YES=1 bash. Harness Maxxing es gratuito bajo una licencia fair source: consulta Licencia.

No se pide ninguna clave de licencia. Una empresa que necesite una clave Enterprise la introduce después de la instalación, en Ajustes → Licencia (o en el paso de onboarding Sobre ti); consulta Licencia.

Después de las preguntas, el instalador se ejecuta de forma desatendida con una visualización del progreso en directo. Los mensajes de voz se activan con el motor local (en servidores con al menos 3 GB de RAM) y la zona horaria se elige en el onboarding web:

  1. comprueba el servidor (root, apt, systemd, arquitectura) y si ya está en uso (ver más abajo);
  2. instala todos los paquetes del sistema que necesita de una sola vez (git, curl, python3, gnupg, openssh-client, cron, ffmpeg, jq, ripgrep, ImageMagick, las bibliotecas del navegador, unattended-upgrades, fail2ban...), activando el componente universe de Ubuntu si la imagen venía sin él; en un servidor pequeño sin swap añade un archivo swap de 2 GB;
  3. clona el código en /opt/claude-maxxing; tus personalizaciones se colocan encima, consulta Personalización;
  4. instala uv (la herramienta de Python) en /usr/local/bin, el Python del servidor en /var/lib/claude-maxxing/tools/python, y la CLI de Claude Code: cada uno en una versión fijada cuyo checksum figura en la lista de componentes de la versión, deps.toml; nada de lo descargado se ejecuta antes de comprobarlo (consulta Seguridad, "Descargas");
  5. crea el entorno de Python y el comando maxxing, y después ejecuta maxxing init: configuración, espacio de trabajo, skills, tareas por defecto;
  6. opcionalmente, restaura tu memoria desde una copia de seguridad;
  7. configura el acceso (Caddy para un dominio, Tailscale o solo local);
  8. protege el servidor: actualizaciones de seguridad automáticas, inicio de sesión SSH solo con clave (solo cuando se ha comprobado que es seguro, consulta Seguridad), fail2ban para SSH y un cortafuegos (ufw) que solo deja pasar SSH, 80/443 (dominio) o Tailscale; consulta Seguridad (en un servidor que ya está en uso, el cortafuegos se gestiona con cuidado: ver más abajo);
  9. instala e inicia el servicio claude-maxxing y comprueba que responde;
  10. muestra un enlace de configuración de un solo uso (válido durante una hora);
  11. mientras tanto, en segundo plano, instala las herramientas que Claude usa a diario: Node.js 22, Remotion (vídeos de motion design), Scrapling (web scraping) y un Chromium que comparten, también para la impresión de PDF, además del modelo de voz; consulta Vídeos, PDF e imágenes. maxxing deps list muestra dónde están.

Alrededor de un minuto hasta el enlace de configuración en un servidor pequeño, y uno o dos minutos más para las herramientas. Si lo vuelves a ejecutar, solo rehace lo que ha cambiado (unos 10 segundos). Para volver a ejecutar solo una parte en un servidor existente: bash /opt/claude-maxxing/install.sh --tools (= maxxing deps update) o --secure. Los nombres técnicos mantienen la ortografía original: el servicio es claude-maxxing, el código /opt/claude-maxxing, el estado /var/lib/claude-maxxing.

Instalar desde una copia local

Sin descargar nada: descomprime un archivo de Harness Maxxing (con su web/dist ya compilado) en el servidor y ejecuta su instalador, bash /path/to/harness-maxxing/install.sh (o SOURCE_DIR=/path/to/harness-maxxing bash install.sh). El código se copia en /opt/claude-maxxing; una instalación así no tiene fuente de actualización, por lo que "Buscar actualizaciones" está desactivado y maxxing update dice "updates unavailable". Para actualizarla, descomprime la copia más reciente y vuelve a ejecutar su instalador.

Componentes externos

Todo lo que el instalador añade además de los paquetes del sistema aparece en una lista, con su versión y su checksum, en server/maxxing/deps.toml y se gestiona con maxxing deps:

maxxing deps list      # installed and expected versions
maxxing deps verify    # checksums, and files another user could replace
maxxing deps update    # move to the versions of this release (each update does it on its own)
maxxing deps clean     # old versions, leftovers, oversized logs (also every Sunday); --caches: root's uv/npm/pip caches too
maxxing deps check     # known vulnerabilities (osv.dev; also every Monday, with a notification)

En una instalación hecha antes de 2.0.0-alpha.70, las dos tareas semanales se crean desactivadas (página Crons: actívalas si quieres), y maxxing update deja donde están un Python del servidor que funcione y un uv que no instaló él (maxxing deps update python / uv los mueve). Node.js nunca se enlaza en /usr/local/bin cuando el servidor ya tiene su propio node: Harness Maxxing usa su copia y tus programas mantienen la suya.

Cada maxxing update los lleva a las versiones de la nueva versión (se instalan junto a las antiguas y se cambia a ellas cuando funcionan). Claude Code sigue actualizándose por sí mismo (Ajustes -> Claude). Los paquetes del sistema (Caddy, ffmpeg, git...) reciben sus actualizaciones de seguridad de unattended-upgrades.

Abre el enlace: el onboarding se encarga del resto.

Instalar en un servidor que ya está en uso

Antes de cambiar nada, el instalador examina el servidor y muestra una comprobación del servidor: otros servicios accesibles desde el exterior, un servidor web en los puertos 80/443, un cortafuegos activo, Docker, otras tareas programadas, un Node.js más antiguo, una configuración de Claude Code existente, otros puentes de Telegram. Para ver solo ese informe (no se cambia nada):

curl -fsSL https://get.harness-maxxing.com | bash -s -- --check

Cuando el servidor ya está en uso, el instalador pide confirmación y después:

Lo que encuentra Lo que hace
otros servicios accesibles desde el exterior, o Docker no activa el cortafuegos (podría dejarlos sin conexión). Se puede forzar con FIREWALL=1 bash /opt/claude-maxxing/install.sh --secure
un cortafuegos ufw activo mantiene tus reglas y solo añade SSH (+ 80/443 para un dominio, + Tailscale)
nginx, Apache u otro servidor web en 80/443 no instala Caddy; con un dominio, guarda el bloque de proxy inverso para añadirlo a tu servidor web en /var/lib/claude-maxxing/reverse-proxy.conf
un Caddy que ya usas añade su propio sitio con una línea import, tus sitios se quedan como están
otras tareas programadas nunca cambia el reloj del servidor: tus tareas conservan sus horarios, y las tareas de Harness Maxxing se ejecutan a las horas que elijas en tu propia zona
un Node.js propio lo mantiene; Harness Maxxing obtiene su Node.js 22 en /var/lib/claude-maxxing/tools/nodejs, usado solo por sus sesiones y herramientas
puerto 8787 ocupado usa el siguiente puerto libre
Claude Code con sesión iniciada, con skills o un ~/.claude/CLAUDE.md lo conserva todo y pregunta: darle a Harness Maxxing su propia carpeta de Claude Code (~/.claude-harness, la opción por defecto: tu ~/.claude no se toca, vuelves a iniciar sesión en la configuración web y traes skills cuando las necesites) o compartir ~/.claude (sus instrucciones globales y skills se aplican entonces también a las sesiones de Harness Maxxing; una skill con el mismo nombre que una skill del producto se mueve antes a la papelera). Sin terminal: carpeta propia. Al volver a ejecutar el instalador se mantiene la elección hecha la primera vez
otro puente o agente de Telegram te avisa: dale a Harness Maxxing un bot nuevo (un token de bot solo puede ser leído por un programa)
inicio de sesión SSH con contraseña activado se desactiva solo cuando se ha comprobado que la sesión que ejecuta el instalador usa una clave (se pregunta antes cuando respondes preguntas); si no, se deja activado, con una advertencia
tu crontab, la jail SSH de fail2ban, los ajustes de actualización automática se conservan (Harness Maxxing solo edita su propio bloque del crontab)

maxxing uninstall muestra lo que el instalador cambió en el servidor (cortafuegos activado, SSH solo con clave, zona horaria) y cómo deshacerlo.

Modos de acceso

Modo URL Cómo
domain (recomendado) https://ui.example.com Caddy se instala desde su repositorio oficial, obtiene un certificado de Let's Encrypt en la primera visita y reenvía a 127.0.0.1:8787. Archivo del sitio: /etc/caddy/claude-maxxing.caddy.
tailscale http://100.x.y.z:8787 El servidor escucha solo en la IP de Tailscale: accesible desde tus dispositivos de Tailscale.
local http://127.0.0.1:8787 Escucha solo en localhost. Desde tu ordenador: ssh -N -L 8787:127.0.0.1:8787 root@<server> y después abre la URL.

El servidor nunca escucha en 0.0.0.0 ni en una dirección pública.

Instalación desatendida

Responde a todas las preguntas con variables y añade ASSUME_YES=1:

curl -fsSL https://get.harness-maxxing.com | ACCESS=domain DOMAIN=ui.example.com ASSUME_YES=1 bash
Variable Valor por defecto Significado
REPO, BRANCH makushingu/harness-maxxing, stable el repositorio git y la rama de donde vienen el código y las actualizaciones (stable = versiones publicadas, main = trabajo en curso)
GH_TOKEN – un token de lectura, solo para un fork o espejo privado (REPO=owner/name)
LICENSE – opcional: una clave Enterprise, que se registra al final (equivale a Ajustes → Licencia, consulta Licencia)
LICENSE_API https://api.harness-maxxing.com servidor de licencias (comprueba una clave Enterprise)
INSTALL_DIR /opt/claude-maxxing código + entorno de Python
WORKSPACE /root/maxxing tu espacio de trabajo
STATE_DIR /var/lib/claude-maxxing configuración y estado
PORT 8787 puerto HTTP
ACCESS se pregunta (local si es desatendida) domain, tailscale o local
DOMAIN – obligatorio para domain
TIMEZONE zona del sistema nombre IANA, p. ej. Europe/Paris. Normalmente se elige en el onboarding web. En un servidor nuevo se cambia la zona del sistema (timedatectl set-timezone) para que las tareas programadas se ejecuten a las horas que se muestran en la interfaz
SYSTEM_CLOCK auto follow = la zona del sistema sigue la tuya (por defecto en un servidor nuevo), keep = no tocarla nunca (por defecto en un servidor que ya está en uso; las tareas se ejecutan igualmente a tus horas)
CLAUDE_DIR ~/.claude (~/.claude-harness cuando ya se usa Claude Code y mantienes la respuesta por defecto) carpeta de Claude Code que usa Harness Maxxing; defínela para saltarte la pregunta. Otra carpeta (p. ej. /root/.claude-harness) la mantiene separada de un Claude Code que ya uses en este servidor: sus propias skills, CLAUDE.md global, conversaciones e inicio de sesión; tu ~/.claude no se toca. Trae skills una a una cuando las necesites
RESTORE_FROM, RESTORE_TOKEN – restaurar una copia de seguridad de memoria existente (ver más abajo)
CLAUDE_TOKEN / ANTHROPIC_API_KEY – opcional: credenciales de Claude guardadas de inmediato
FIREWALL auto auto = ufw solo en un servidor sin nada más expuesto (un ufw activo se mantiene y se añaden reglas), 1 = siempre, 0 = nunca (las actualizaciones de seguridad y fail2ban se configuran igualmente)
SSH_HARDEN auto auto = desactivar el inicio de sesión SSH con contraseña solo cuando se ha comprobado que esta sesión usa una clave, 1 = también cuando hay una clave instalada pero no se puede comprobar la sesión (consola, terminal web), 0 = no tocar nunca SSH
VOICE local (off con menos de 3 GB de RAM) mensajes de voz: local (Whisper en el servidor, modelo descargado en segundo plano), groq, openai u off; consulta Mensajes de voz. VOICE=local en un servidor más pequeño se pregunta, y se rechaza en modo desatendido
TOOLS background background = Node.js, Chromium, Remotion, Scrapling y el modelo de voz se instalan una vez que el servicio está en marcha, foreground = esperar a que terminen, 0 = omitir (maxxing deps update más tarde)
SWAP auto auto = un /swapfile de 2 GB con menos de 4 GB de RAM cuando no hay swap, solo en un servidor nuevo (no en contenedores, ni en un servidor que ya está en uso, ni en una nueva ejecución), 1 = lo mismo en cualquier servidor, 0 = nunca
SOURCE_DIR – instalar esta copia local del código (consulta "Instalar desde una copia local")
ASSUME_YES 0 1 = no preguntar nunca, usar los valores por defecto

Restaurar en un servidor nuevo

¿Te mudas a un servidor nuevo? Instala con tu repositorio de copia de seguridad (con una clave Enterprise, libérala primero en el servidor antiguo: Ajustes → Licencia → Quitar la clave, consulta Licencia):

curl -fsSL https://get.harness-maxxing.com | RESTORE_FROM=owner/memory-backup RESTORE_TOKEN=<token> bash

El instalador ejecuta maxxing backup restore --from owner/memory-backup después de crear el espacio de trabajo. Consulta Copia de seguridad.

Volver a ejecutar, actualizar, desinstalar

  • Vuelve a ejecutar el instalador en cualquier momento: cada paso conserva lo que ya existe (útil para cambiar el modo de acceso o reparar una instalación).
  • Actualizar: maxxing update (o ... | bash -s -- --update). Descarga la nueva versión, vuelve a aplicar tus personalizaciones encima, sincroniza las dependencias, actualiza las skills y las plantillas (nunca tus archivos), reinicia el servicio, comprueba que responde (si no, vuelve atrás) y muestra lo que ha cambiado. También está disponible en Ajustes -> Sistema y en el topic system/harness (system/update en servidores más antiguos).
  • Desinstalar: maxxing uninstall (o ... | bash -s -- --uninstall) elimina el servicio, el sitio de Caddy, el bloque del crontab, las skills del producto y el comando maxxing. Añade --purge para borrar también el código, el directorio de estado y todos los componentes externos que añadió el instalador (deps.toml: uv, Node.js, las herramientas, Claude Code y Caddy cuando los instaló el instalador, el archivo swap que creó), y --purge-workspace para borrar también el espacio de trabajo (irreversible).

Comprobar la instalación

maxxing doctor

Cada línea es ✔ (bien), ! (advertencia) o ✘ (problema), con una pista para solucionarlo. Consulta Solución de problemas.

💡 ¿Atascado? Abre una sesión en el topic system › help y pregunta con tus palabras: Claude lee esta documentación en tu servidor y te responde.✏️ Mejorar esta página