Como implementar a plataforma low-code do Appsmith com o Docker

0
22


Appsmith é uma plataforma low-code para montar softwares de linha de negócios complexos a partir de componentes de interface de usuário pré-criados. Ele se conecta às suas fontes de dados existentes, como bancos de dados SQL, planilhas, APIs REST e terminais GraphQL. Você pode conectar esses repositórios de informações a widgets avançados que incluem tabelas, listas e gráficos.

O Appsmith Community Edition é de código aberto e pode ser totalmente auto-hospedado. Neste guia, mostraremos como implantar sua própria instância do Appsmith como um contêiner do Docker. Este é o método recomendado que simplifica a instalação inicial e a manutenção contínua. Vamos supor que você já tenha o Docker e o Docker Compose instalados em seu sistema.

Uma primeira implantação

Você pode iniciar um servidor básico do Appsmith para experimentar usando docker run aura:

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

Isso inicia um novo contêiner usando o appsmith/appsmith-ce imagem e junte-se a appsmith-stacks diretório em seu diretório de trabalho para /appsmith-stacks dentro do recipiente. Você deve sempre montar um volume nesse local para evitar a perda de dados após atualizar ou reiniciar o contêiner do Appsmith.

A primeira inicialização do Appsmith pode levar algum tempo para ser concluída. O contêiner gerará arquivos de configuração, criará seu banco de dados MongoDB e ativará o conjunto inicial de plug-ins do aplicativo. Você pode verificar quando sua instância está pronta para conexões seguindo os registros do contêiner:

$ docker logs appsmith --follow

espere até ver um Appsmith is Running! mensagem na saída do log.

Configurações do Appsmith

agora visite localhost:8080 no seu navegador. Este porto estava ligado ao porto 80 do contentor no docker run comando de cima. Substitua seu próprio valor se você alterou o número da porta no comando.

Imagem da página inicial do Appsmith após uma nova instalação

Você deve ver a página de destino da IU da Web do Appsmith. Clique em “Começar” e preencha o formulário para configurar sua instância do Appsmith. Você será levado diretamente para um novo aplicativo que está pronto para se conectar às suas fontes de dados.

Uso do Supervisor

A imagem do Docker do Appsmith usa supervisord para executar vários processos em um único contêiner. A interface do usuário da web do Supervisor é exposta na porta 9001; no docker run comando acima, a porta do host 9001 foi vinculada ao contêiner, então você pode ver a lista de processos em seu contêiner visitando localhost:9001 no seu navegador.

imagem da interface da Web supervisionada do Appsmith

O Supervisor Visitante pode ajudá-lo a depurar problemas quando um dos componentes do Appsmith parar de funcionar. Você pode reiniciar processos, visualizar seus logs e desligá-los sem remover o contêiner do Docker. No entanto, manter o Supervisor exposto dessa maneira é um risco de segurança: não vincule a porta 9001 a um contêiner do Appsmith de produção, a menos que você configure a autenticação primeiro.

Usando a composição do Docker

O Docker Compose é recomendado para implantações de Appsmith de longo prazo. Appsmith mantém seu próprio docker-compose.yml que configura automaticamente um container com um appsmith-stack ligação de montagem e ligações de porta HTTP, HTTPS e Supervisor.

Esta pilha oficial do Docker Compose vem com integração com a Torre de Vigia. A Torre de Vigia substituirá automaticamente seu contêiner do Appsmith toda vez que a imagem for atualizada, garantindo que você esteja usando a versão mais recente disponível.

Baixe o arquivo do Docker Compose para o host do Docker:

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

Agora use o Docker Compose para abrir a pilha do Appsmith:

$ docker-compose up -d

Espero Appsmith is Running! para aparecer nos registos antes da sua visita localhost no seu navegador.

Escreva seu próprio arquivo de composição

O arquivo Compose do Appsmith não fornece variáveis ​​de ambiente para personalizar a versão da imagem ou as ligações de porta. Essa pilha alternativa permite que você use portas diferentes e fixe em uma versão específica da imagem do 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:

agora você pode correr docker-compose up -d para iniciar uma versão específica do Appsmith em uma determinada porta.

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

Esse arquivo Compose também usa um volume Docker nomeado em vez da montagem de ligação direta do host.

Atualize sua instalação

Você pode atualizar para novas versões do Appsmith extraindo a imagem mais recente e redefinindo sua pilha:

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

Isso é seguro, pois todos os seus dados persistentes são armazenados no stacks volume.

Você não precisa atualizar manualmente ao usar a integração da Torre de Vigia incluída no Compose oficial. Você pode adicionar a Torre de Vigia à sua própria pilha incluindo-a como um serviço 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:

Isso executa o Appsmith com um contêiner Watchtower que verifica atualizações de imagem a cada hora (3600 segundos). Apenas recipientes com com.centurylinklabs.watchtower.enable são marcadas para que sejam adicionadas ao appsmith Serviço. A Torre de Vigia precisa de acesso ao soquete do Docker do seu host para poder extrair novas imagens e substituir os contêineres em execução.

Configurando sua instância

O arquivo de configuração do Appsmith está disponível em /appsmith-stacks/configuration/docker.env dentro do recipiente. Se você vinculou um diretório montado local a esse caminho, poderá editar o arquivo em seu host em vez de se conectar diretamente ao contêiner.

# 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

O arquivo de configuração configura as variáveis ​​de ambiente que estarão disponíveis para a instalação do Appsmith. As configurações possíveis incluem credenciais para diferentes fontes de dados, chaves de API para integrações de terceiros e detalhes de conexão para seu banco de dados MongoDB e servidor de e-mail. Os valores necessários são preenchidos automaticamente durante a primeira execução do Appsmith.

Para alterar uma configuração, primeiro atualize seu valor no arquivo de configuração:

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

Em seguida, reinicie o contêiner do Appsmith para aplicar as alterações:

$ docker-compose restart appsmith

O Appsmith usará as novas configurações automaticamente na próxima vez que for iniciado.

Exportando seus dados

Depois de começar a usar o Appsmith, você montará rapidamente aplicativos que podem ser difíceis de replicar no futuro. Você deve fazer backup de sua instalação com frequência para se proteger contra perda de dados.

A imagem do Docker inclui um comando que pode produzir um arquivo completo sob demanda:

$ docker-compose exec appsmith appsmithctl export_db

O backup será armazenado em /appsmith-stacks/data/backup/appsmith-data.archive dentro do recipiente. Usar docker cp para mover o arquivo para o host do docker:

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

Em seguida, copie o /appsmith-stacks/configuration diretório fora do contêiner. Incluir esses arquivos em seu backup final evitará a necessidade de reconstruir seu arquivo de configuração após uma restauração de backup. Agora você pode carregar seu backup para armazenamento em nuvem ou um servidor dedicado para proteger seus dados se o seu host Docker falhar.

Para restaurar um arquivo de backup no futuro, copie-o para /appsmith-stacks/data/restore em um novo contêiner do Appsmith e execute o import_db domínio:

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

Reinicie o Appsmith para concluir a restauração:

$ docker-compose restart appsmith

Usando o Appsmith

Os aplicativos Appsmith têm quatro componentes fundamentais:

  • Páginas – As telas do seu aplicativo.
  • widgets – Os componentes de interface do usuário nessas telas.
  • Consultas / JavaScript – Snippets JavaScript personalizados que adicionam funcionalidades avançadas.
  • fontes de dados – Conexões com seus bancos de dados externos.

imagem de um aplicativo Appsmith vazio

Inicie um novo aplicativo clicando no botão “Adicionar uma fonte de dados” na sua página de destino. Você pode criar rapidamente um aplicativo de amostra usando um dos bancos de dados de amostra integrados. Clique na opção “usuários” para adicionar um banco de dados PostgreSQL com alguns dados do usuário.

imagem da criação de uma fonte de dados no Appsmith

Em seguida, clique no botão “Nova consulta” para adicionar uma consulta que exiba informações do armazenamento de dados.

imagem da criação de uma fonte de dados no Appsmith

imagem da criação de uma fonte de dados no Appsmith

Volte para a página do seu aplicativo clicando em “Página 1” na barra lateral esquerda. Pressione “Adicionar um widget” e arraste um dos widgets da barra lateral para a tela. Estamos usando uma lista.

imagem de uma página vazia com um botão

No painel de propriedades à direita, exclua os dados de amostra e substitua-os por {{Query1.data}}. Isso executa a consulta criada anteriormente para exibir dados do banco de dados do usuário. A visualização ao vivo será atualizada e exibirá a lista de usuários.

imagem da configuração de um widget Appsmith para trabalhar com uma fonte de dados

Você pode continuar adicionando widgets para desenvolver os recursos do seu aplicativo. Quando terminar, clique no botão “Implantar” no canto superior direito para publicar seu aplicativo e iniciá-lo no modo de visualização do Appsmith.

imagem de um aplicativo do Appsmith mostrando a lista de usuários padrão no modo de visualização

Resumo

Appsmith é uma plataforma low-code de código aberto para o desenvolvimento rápido de novos aplicativos de negócios. A imagem oficial do Docker permite que você inicie rapidamente sua própria instância do Appsmith com configuração mínima.

Depois que seu contêiner estiver funcionando, você poderá usar o conjunto de conectores incluído para consultar, editar e exibir os armazenamentos de dados da sua organização. Você pode compartilhar seu aplicativo com outros membros da equipe ou habilitar o acesso público para que contratados, fornecedores e clientes externos possam participar.

Uma instância Dockerized Appsmith deve exigir pouca manutenção de longo prazo além de atualizações e backups regulares. Usar o Docker para implantação também facilita a remoção do Appsmith do seu sistema se você decidir que não é para você. Corre docker-compose down --volumes para derrubar completamente sua pilha, incluindo os dados armazenados em seu appsmith-stacks volume.