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.
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.
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.
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.
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.
A continuación, haga clic en el botón "Nueva consulta" para agregar una consulta que muestre información del almacén de datos.
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.
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.
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.
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.