Saltar al contenido principal
Header
Docker containers are for production hosting or self-hosting, for the contribution please check the Local Setup.

Resumen

Esta guía proporciona instrucciones paso a paso para instalar y configurar la aplicación Twenty utilizando Docker Compose. El objetivo es simplificar el proceso y prevenir errores comunes que podrían arruinar tu configuración. Importante: Solo modifica configuraciones explícitamente mencionadas en esta guía. Alterar otras configuraciones puede causar problemas. Consulta los documentos Configurar Variables de Entorno para configuraciones avanzadas. Todas las variables de entorno deben ser declaradas en el archivo docker-compose.yml en el nivel del servidor y/o trabajador dependiendo de la variable.

Requisitos del sistema

  • RAM: Asegúrate de que tu entorno tenga al menos 2GB de RAM. La memoria insuficiente puede causar que los procesos se bloqueen.
  • Docker & Docker Compose: Asegúrate de que ambos estén instalados y actualizados.

Opción 1: Script de una línea

Instala la última versión estable de Twenty con un solo comando:
bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
Para instalar una versión o rama específica:
VERSION=vx.y.z BRANCH=branch-name bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
  • Reemplace x.y.z con el número de versión deseado.
  • Reemplace branch-name con el nombre de la rama que desea instalar.

Opción 2: Pasos manuales

Sigue estos pasos para una configuración manual.

Paso 1: Configurar el archivo de entorno

  1. Create the .env File Copia el archivo de entorno de ejemplo a tu directorio de trabajo a un nuevo archivo .env:
    curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/.env.example
    
  2. Generar tokens secretos Ejecuta el siguiente comando para generar una cadena única aleatoria:
    openssl rand -base64 32
    
    Importante: Mantén este valor en secreto / no lo compartas.
  3. Actualiza el .env Reemplaza el valor de marcador de posición en tu archivo .env con el token generado:
    APP_SECRET=first_random_string
    
  4. Establecer la contraseña de Postgres Actualiza el valor de PG_DATABASE_PASSWORD en el archivo .env con una contraseña fuerte sin caracteres especiales.
    PG_DATABASE_PASSWORD=my_strong_password
    

Paso 2: Obtener el archivo Docker Compose

Descarga el archivo docker-compose.yml en tu directorio de trabajo:
curl -o docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/docker-compose.yml

Paso 3: Lanza la aplicación

Inicia los contenedores Docker:
docker compose up -d

Paso 4: Acceder a la aplicación

Si alojas twentyCRM en tu propia computadora, abre tu navegador y navega a http://localhost:3000. Si lo alojas en un servidor, verifica que el servidor esté en funcionamiento y que todo esté bien con
curl http://localhost:3000

Configuración

Exponer Twenty para acceso externo

Por defecto, Twenty se ejecuta en localhost en el puerto 3000. Para acceder a él mediante un dominio externo o dirección IP, necesitas configurar SERVER_URL en tu archivo .env.

Entendiendo SERVER_URL

  • Protocolo: Usa http o https dependiendo de tu configuración.
    • Usa http si no has configurado SSL.
    • Usa https si tienes SSL configurado.
  • Dominio/IP: Este es el nombre de dominio o dirección IP donde tu aplicación es accesible.
  • Puerto: Incluye el número de puerto si no estás usando los puertos predeterminados (80 para http, 443 para https).

Requisitos de SSL

SSL (HTTPS) es requerido para que ciertas características del navegador funcionen correctamente. Aunque estas características podrían funcionar durante el desarrollo local (ya que los navegadores tratan localhost de manera diferente), se requiere una configuración SSL adecuada al alojar Twenty en un dominio regular. Por ejemplo, es posible que la API del portapapeles requiera un contexto seguro: algunas características como los botones de copia en toda la aplicación pueden no funcionar sin HTTPS habilitado. Recomendamos encarecidamente configurar Twenty detrás de un proxy inverso con terminación SSL para una seguridad y funcionalidad óptimas.

Configurando SERVER_URL

  1. Determine su URL de acceso
    • Sin proxy inverso (Acceso directo): Si estás accediendo a la aplicación directamente sin un proxy inverso:
      SERVER_URL=http://your-domain-or-ip:3000
      
    • Con proxy inverso (Puertos estándar): Si estás usando un proxy inverso como Nginx o Traefik y tienes SSL configurado:
      SERVER_URL=https://your-domain-or-ip
      
    • Con proxy inverso (Puertos personalizados): Si estás usando puertos no estándar:
      SERVER_URL=https://your-domain-or-ip:custom-port
      
  2. Actualiza el archivo .env Abre tu archivo .env y actualiza el SERVER_URL:
    SERVER_URL=http(s)://your-domain-or-ip:your-port
    
    Ejemplos:
    • Acceso directo sin SSL:
      SERVER_URL=http://123.45.67.89:3000
      
    • Acceso vía dominio con SSL:
      SERVER_URL=https://mytwentyapp.com
      
  3. Reiniciar la aplicación Para que los cambios surtan efecto, reinicia los contenedores Docker:
    docker compose down
    docker compose up -d
    

Consideraciones

  • Configuración del Proxy Inverso: Asegúrese de que su proxy inverso envíe las solicitudes al puerto interno correcto (3000 por defecto). Configure la terminación SSL y cualquier cabecera necesaria.
  • Configuración del Cortafuegos: Abra los puertos necesarios en su cortafuegos para permitir el acceso externo.
  • Consistencia: La SERVER_URL debe coincidir con cómo los usuarios acceden a su aplicación en sus navegadores.

Persistencia

  • Volúmenes de Datos: La configuración de Docker Compose utiliza volúmenes para persistir datos para la base de datos y el almacenamiento del servidor.
  • Entornos Sin Estado: Si se despliega en un entorno sin estado (por ejemplo, ciertos servicios en la nube), configure un almacenamiento externo para persistir los datos.

Solución de Problemas

Si encuentra algún problema, consulte Solución de Problemas para soluciones.