Cómo implementar la plataforma de código bajo de Appsmith con Docker

Appsmith es una plataforma de código bajo para ensamblar software de línea de negocio complejo a partir de componentes de interfaz de usuario prediseñados. Se conecta a sus fuentes de datos existentes, como bases de datos SQL, hojas de cálculo, API REST y puntos finales de GraphQL. Puede conectar estos depósitos de información a widgets enriquecidos que incluyen tablas, listas y gráficos.

Appsmith Community Edition es de código abierto y puede ser totalmente autohospedado. En esta guía, le mostraremos cómo implementar su propia instancia de Appsmith como un contenedor de Docker. Este es el método recomendado que simplifica la instalación inicial y el mantenimiento continuo. Asumiremos que ya tiene Docker y Docker Compose instalados en su sistema.

→ Índice de contenidos

Un primer despliegue

Puede iniciar un servidor básico de Appsmith para experimentar usando docker run aureola:

$ docker run -d --name appsmith -p 8080:80 -p 9001:9001 
    -v $PWD/appsmith-stacks:/appsmith-stacks
    appsmith/appsmith-ce

Esto inicia un nuevo contenedor usando el appsmith/appsmith-ce imagen y une la appsmith-stacks directorio en su directorio de trabajo para /appsmith-stacks dentro del contenedor. Siempre debe montar un volumen en esta ubicación para evitar la pérdida de datos después de actualizar o reiniciar el contenedor de Appsmith.

La primera inicialización de Appsmith puede tardar un poco en completarse. El contenedor generará archivos de configuración, creará su base de datos MongoDB y habilitará el conjunto inicial de complementos de la aplicación. Puede verificar cuándo su instancia está lista para las conexiones siguiendo los registros del contenedor:

$ docker logs appsmith --follow

Espera a ver un Appsmith is Running! mensaje en la salida del registro.

Configuración de Appsmith

Ahora visita localhost:8080 en tu navegador. Este puerto estaba ligado al puerto 80 del contenedor en el docker run comando de arriba. Sustituya su propio valor si cambió el número de puerto en el comando.

imagen de la página de inicio de Appsmith después de una instalación nueva

Debería ver la página de destino de la interfaz de usuario web de Appsmith. Haga clic en "Comenzar" y complete el formulario para configurar su instancia de Appsmith. Luego será llevado directamente a una nueva aplicación que está lista para conectarse a sus fuentes de datos.

Uso de Supervisor

La imagen Docker de Appsmith utiliza supervisord para ejecutar múltiples procesos dentro de un solo contenedor. La interfaz de usuario web de Supervisor está expuesta en el puerto 9001; en el docker run comando anterior, el puerto de host 9001 estaba vinculado al contenedor, por lo que puede ver la lista de procesos de su contenedor visitando localhost:9001 en tu navegador.

imagen de la interfaz web supervisada de Appsmith

Visiting Supervisor puede ayudarlo a depurar problemas cuando uno de los componentes de Appsmith deja de funcionar. Puede reiniciar procesos, ver sus registros y apagarlos sin eliminar el contenedor de Docker. Sin embargo, mantener a Supervisor expuesto de esta manera es un riesgo de seguridad: no vincule el puerto 9001 a un contenedor Appsmith de producción a menos que configure la autenticación primero.

Uso de composición de Docker

Se recomienda utilizar Docker Compose para implementaciones de Appsmith a largo plazo. Appsmith mantiene su propio docker-compose.yml que configura automáticamente un contenedor con un appsmith-stack enlace de montaje y enlaces de puerto HTTP, HTTPS y Supervisor.

Esta pila oficial de Docker Compose viene con la integración de Watchtower. Watchtower reemplazará automáticamente su contenedor de Appsmith cada vez que se actualice la imagen, lo que garantiza que esté utilizando la última versión disponible.

Descargue el archivo Docker Compose en su host Docker:

$ curl -L https://bit.ly/32jBNin -o $PWD/docker-compose.yml

Ahora use Docker Compose para abrir la pila de Appsmith:

$ docker-compose up -d

Esperar Appsmith is Running! para aparecer en los registros antes de su visita localhost en tu navegador.

Escribir su propio archivo de composición

El archivo Compose de Appsmith no proporciona variables de entorno para personalizar los enlaces del puerto o la versión de la imagen. Esta pila alternativa le permite usar diferentes puertos y anclar a una versión específica de la imagen de Appsmith.

version: "3"

services:
  appsmith:
    image: appsmith/appsmith-ce:${IMAGE_TAG:-latest}
    ports:
      - ${HTTP_PORT:-80}:80
      - ${HTTPS_PORT:-443}:443
    volumes:
      - stacks:/appsmith_stacks
    restart: unless-stopped

volumes:
  stacks:

Ahora puedes correr docker-compose up -d para iniciar una versión específica de Appsmith en un puerto en particular.

$ IMAGE_TAG=v1.6.19 HTTP_PORT=8080 docker-compose up -d

Este archivo Compose también usa un volumen de Docker con nombre en lugar del montaje de enlace de host directo.

Actualización de su instalación

Puede actualizar a las nuevas versiones de Appsmith extrayendo la imagen más reciente y reiniciando su pila:

$ docker-compose pull && docker-compose up -d --force-recreate appsmith

Esto es seguro ya que todos sus datos persistentes se almacenan dentro del stacks volumen.

No necesita actualizar manualmente cuando usa la integración de Watchtower incluida con el archivo oficial de Compose. Puede agregar Watchtower a su propia pila incluyéndolo como un servicio adicional:

version: "3"

services:
  appsmith:
    image: appsmith/appsmith-ce:${IMAGE_TAG:-latest}
    ports:
      - ${HTTP_PORT:-80}:80
      - ${HTTPS_PORT:-443}:443
    volumes:
      - stacks:/appsmith_stacks
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    restart: unless-stopped
  watchtower:
    image: containrrr/watchtower:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600 --label-enable --cleanup
    restart: unless-stopped

volumes:
  stacks:

Esto ejecuta Appsmith con un contenedor Watchtower que busca actualizaciones de imágenes cada hora (3600 segundos). Sólo contenedores con la com.centurylinklabs.watchtower.enable etiqueta están marcados por lo que esto se añade a la appsmith Servicio. Watchtower necesita acceso al socket Docker de su host para que pueda extraer nuevas imágenes y reemplazar los contenedores en ejecución.

Configuración de su instancia

El archivo de configuración de Appsmith está disponible en /appsmith-stacks/configuration/docker.env dentro del contenedor. Si ha enlazado un directorio local montado en esta ruta, puede editar el archivo en su host en lugar de conectarse directamente al contenedor.

# If you're bind mounting "stacks" to /appsmith-stacks
$ nano stacks/configuration/docker.env

# If you're using a Docker volume
$ docker cp appsmith:/appsmith-stacks/configuration/docker.env docker.env
$ nano docker.env
$ docker cp docker.env appsmith:/appsmith-stacks/configuration/docker.env

El archivo de configuración configura las variables de entorno que estarán disponibles para su instalación de Appsmith. Las configuraciones posibles incluyen credenciales para diferentes fuentes de datos, claves API para integraciones de terceros y detalles de conexión para su servidor de correo y base de datos MongoDB. Los valores requeridos se completan automáticamente durante la primera rutina de ejecución de Appsmith.

Para cambiar una configuración, primero actualice su valor en el archivo de configuración:

APPSMITH_MAIL_ENABLED=true
APPSMITH_MAIL_HOST=mail.example.com
APPSMITH_MAIL_PORT=465
APPSMITH_MAIL_USERNAME=appsmith
APPSMITH_MAIL_PASSWORD=$3cureP@ss
[email protected]

A continuación, reinicie su contenedor de Appsmith para aplicar los cambios:

$ docker-compose restart appsmith

Appsmith utilizará la nueva configuración automáticamente la próxima vez que se inicie.

Exportando sus datos

Una vez que comience a usar Appsmith, ensamblará rápidamente aplicaciones que podrían ser difíciles de replicar en el futuro. Debe hacer una copia de seguridad de su instalación con frecuencia para protegerse contra la pérdida de datos.

La imagen de Docker incluye un comando que puede producir un archivo completo bajo demanda:

$ docker-compose exec appsmith appsmithctl export_db

La copia de seguridad se almacenará en /appsmith-stacks/data/backup/appsmith-data.archive dentro del contenedor. Usar docker cp para mover el archivo a su host Docker:

$ docker cp appsmith:/appsmith-stacks/data/backup/appsmith-data.archive appsmith-backup-$(date +%Y-%m-%d).archive

A continuación copia el /appsmith-stacks/configuration directorio fuera del contenedor. Incluir estos archivos en su copia de seguridad final evitará tener que reconstruir su archivo de configuración después de la restauración de una copia de seguridad. Ahora puede cargar su copia de seguridad en el almacenamiento en la nube o en un servidor dedicado para proteger sus datos si su host Docker sufre una falla.

Para restaurar un archivo de copia de seguridad en el futuro, cópielo en /appsmith-stacks/data/restore en un nuevo contenedor de Appsmith y ejecute el import_db dominio:

$ docker cp appsmith-backup-2022-04-13.archive appsmith:/appsmith-stacks/data/restore
$ docker-compose exec appsmith appsmithctl import_db

Reinicie Appsmith para completar la restauración:

$ docker-compose restart appsmith

Usando Appsmith

Las aplicaciones de Appsmith tienen cuatro componentes fundamentales:

  • Paginas - Las pantallas de tu aplicación.
  • Widgets - Los componentes de la interfaz de usuario en esas pantallas.
  • Consultas / JavaScript - Fragmentos de JavaScript personalizados que agregan funcionalidad avanzada.
  • Fuentes de datos - Conexiones a sus bases de datos externas.

imagen de una aplicación Appsmith vacía

Inicie una nueva aplicación haciendo clic en el botón "Agregar una fuente de datos" en su página de destino. Puede montar rápidamente una aplicación de ejemplo utilizando una de las bases de datos de ejemplo integradas. Haga clic en la opción "usuarios" para agregar una base de datos PostgreSQL con algunos datos de usuario.

imagen de la creación de una fuente de datos en Appsmith

A continuación, haga clic en el botón "Nueva consulta" para agregar una consulta que muestre información del almacén de datos.

imagen de la creación de una fuente de datos en Appsmith

imagen de la creación de una fuente de datos en Appsmith

Regrese a la página de su aplicación haciendo clic en "Página 1" en la barra lateral izquierda. Presione "Agregar un widget" y arrastre uno de los widgets desde la barra lateral al lienzo. Estamos usando una Lista.

imagen de una página vacía con un botón "Agregar un widget" en Appsmith

En el panel de propiedades de la derecha, borre los datos de muestra y reemplácelos con {{Query1.data}}. Esto ejecuta la consulta creada anteriormente para mostrar datos de la base de datos de usuarios. La vista previa en vivo se actualizará y mostrará la lista de usuarios.

imagen de la configuración de un widget de Appsmith para que funcione con una fuente de datos

Puede seguir agregando widgets para desarrollar las capacidades de su aplicación. Una vez que haya terminado, haga clic en el botón "Implementar" en la parte superior derecha para publicar su aplicación e iniciarla en el modo de visualización de Appsmith.

imagen de una aplicación de Appsmith que muestra la lista de usuarios predeterminada en el modo de visualización

Resumen

Appsmith es una plataforma de código bajo de código abierto para desarrollar rápidamente nuevas aplicaciones comerciales. La imagen oficial de Docker le permite iniciar rápidamente su propia instancia de Appsmith con una configuración mínima.

Una vez que su contenedor esté operativo, puede usar el conjunto de conectores incluido para consultar, editar y visualizar los almacenes de datos de su organización. Luego, puede compartir su aplicación con otros miembros del equipo o habilitar el acceso público para que los contratistas, proveedores y clientes externos puedan unirse.

Una instancia de Dockerized Appsmith debería requerir poco mantenimiento a largo plazo más allá de las actualizaciones y copias de seguridad periódicas. El uso de Docker para la implementación también facilita la eliminación de Appsmith de su sistema si decide que no es para usted. Correr docker-compose down --volumes para derribar completamente su pila, incluidos los datos almacenados dentro de su appsmith-stacks volumen.

Subir Change privacy settings