Guia de Pré-requisitos, Instalação e Configuração do App Builder On-Premises
Pré-requisitos
Esta seção lista os pré-requisitos para instalar a versão On-premises do App Builder e é destinada a Administradores de Sistema que configuram parâmetros operacionais que mantêm e suportam Linux/Mac OS/Windows.
Gerenciamento de Banco de Dados
Com base em seus requisitos, você pode decidir usar MySQL, MSSQL Server ou PostgreSQL como sistemas de gerenciamento de banco de dados.
Instalação MySQL
1 - Instale a edição community do MySQL (link direto para windows)
Selecione:
- Developer default, Next e Execute.
Nota: se você receber um prompt dizendo "um ou mais requisitos de produtos não foram satisfeitos. Você quer continuar?" Apenas selecione Sim)
Após a instalação terminar:
- Selecione next para configurar o servidor, quando solicitado, digite a senha raiz que desejar, então Execute.
- Após a configuração do servidor terminar, selecione Cancel para sair do instalador, pois o resto da configuração não é necessário.
2 - Permita a conexão do container ao MySQL.
Conecte-se ao MySQL com o usuário raiz e a senha da etapa 1 e execute o seguinte script sql (nome de usuário e senha serão os usados pelo AppBuilder).
Nota: você pode usar a ferramenta MySQL Workbench para executar scripts sql.
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
Instalação do MSSQL Server
1 - Instale o Sql Server (link direto)
Instalação do Sql Express On-Premises
Nota: um servidor On-premises deve ter um Sql Server real, não um Sql Server Express incorporado do VS
2 - Habilite tcp/ip - explicação detalhada aqui.
Gerenciador de Configuração do SqlServer
3 - Adicione um novo usuário App_Builder parte do Sql Express. Você pode instalar Sql Server Management Studio e usá-lo para esse propósito.
Diálogo de Parâmetros de Login
Nota: Permissões de criar banco de dados podem ser negadas para o usuário recém-adicionado. Você deve considerar dar a ele um Server Roles que lhe dará credenciais para criar banco de dados como
dbcreator.
Nota: Com base na decisão do administrador, uma mudança de modo de autenticação com SSMS pode ser necessária. O SQL Server Database Engine está definido como modo de Autenticação do Windows ou modo de Autenticação do SQL Server e do Windows.
Instalar Docker
Guia do Windows -> guia docs.microsoft.com
Instalação
Esta seção assume que você já tem Docker e um banco de dados (MySQL, MSSQL Server ou PostgreSQL) instalados.
Instalação pela Primeira Vez
1 - Baixe o appbuilder.zip que faz parte de sua seção de Download no Portal de Clientes Infragistics.
2 - Extraia o appbuilder.tar contido no arquivo appbuilder.zip.
3 - Abra uma janela de terminal ou prompt de comando no local extraído.
4 - Carregue e verifique a imagem.
Execute:
docker load --input appbuilder.tar
Para verificar se a imagem foi carregada corretamente, veja o exemplo com a tabela abaixo:
docker images
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| appbuilder | 1.0 | 2a05977e039b | 12 days ago | 854MB |
5 - Execute o container:
docker run --restart always -p 80:5000 -e "ConnectionStrings:AppBuilderMySqlConnection=server=<your-mysql-database-ip>;database=<your-mysql-schema>;user=<your-mysql-database-user>;password=<your-mysql-database-password>;oldguids=false" -v <external-folder-for-logs>:/appbuilder/logs -v <external-folder-for-storage>:/appbuilder/storage --name appbuilder appbuilder:1.0
- Exemplo de MySQL - Este seria o comando assumindo que sua instância MySql está executando um schema chamado IndigoAppBuilderOnPrem em 192.168.2.5 com username=appbuilder e password=appbuilder e que você selecionou C:/AppBuilder como a pasta externa para armazenar os logs e armazenamento.
docker run --restart always -p 80:5000 -e "ConnectionStrings:AppBuilderMySqlConnection=server=192.168.2.5;database=IndigoAppBuilderOnPrem;user=appbuilder;password=appbuilder;oldguids=false" -v C:/AppBuilder/logs:/appbuilder/logs -v C:/AppBuilder/storage:/appbuilder/storage --name appbuilder appbuilder:1.0
- Exemplo de MSSQL Server - Este seria o comando assumindo que sua instância Sql Server está executando um schema chamado IndigoAppBuilderOnPrem com servidor SQLEXPRESS, com USER ID=APP_BUILDER e password=Appbuilder2023! e que você selecionou C:/AppBuilder como a pasta externa para armazenar os logs e armazenamento.
docker run --restart always -p 80:5000 -e "ConnectionStrings:Provider=SqlServer" -e "ConnectionStrings:AppBuilderSqlServerConnection=Data Source=DEV-ZKOLEV\SQLEXPRESS,1433;Database=IndigoAppBuilderOnPrem;User ID=APP_BUILDER;Password=Appbuilder2023!;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" -v C:/AppBuilder/logs:/appbuilder/logs -v C:/AppBuilder/storage:/appbuilder/storage --name appbuilder appbuilder:1.0
6 - Abra seu navegador e digite http://localhost/
Nota: Se você estiver usando Docker Desktop, vá para Containers/Apps, encontre seu container e clique em
Open in browser
Docker Containers/Apps
Autenticação com OpenID Connect (OAuth 2.0)
Siga o tópico Autenticação On-Prem com OpenID Connect (OAuth 2.0) para mais informações.
Atualizações
1 - Siga os primeiros 4 passos da instalação pela primeira vez com o arquivo zip recém-publicado
2 - Verifique que a nova imagem foi carregada corretamente (a imagem antiga deve ser marcada como
docker images
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| appbuilder | 1.0 | 27ff4c1079ac | 43 hours ago | 932MB |
| 2a05977e039b | 12 days ago | 854MB |
3 - Pare o container
docker stop appbuilder
4 - Remova o container
docker rm appbuilder
5 - Execute o container com o mesmo comando usado na etapa 5 da instalação pela primeira vez
Ativação
Esta seção assume que você já instalou a instância On-premises e que ela agora está funcionando.
Quando o servidor é iniciado pela primeira vez, um diálogo de prompt fornecerá a você ID de Instalação e uma chave de Autenticação será solicitada. Envie este ID de Instalação ao nosso departamento de Vendas com base em sua região e forneceremos a você a chave de Autenticação para ativar o servidor.
Ativar App Builder
Nota: Você receberá uma mensagem de aviso diretamente através da interface do usuário trinta dias antes da sua chave expirar.
Visão Geral da Configuração
Configuração Padrão
Quando você inicia a imagem Docker do AppBuilder sem configuração personalizada, os seguintes recursos estão desabilitados por padrão:
- Conexão do banco de dados - Nenhuma credencial de banco de dados fornecida (deve ser configurada via variáveis de ambiente ou arquivo de configuração)
- Recursos de IA - Toda funcionalidade de IA desabilitada
- Painel de Chat de IA - Interface de chat oculta
- Notificações do Teams - Nenhuma integração de registro externo
- Limitação de taxa - Nenhuma limitação de solicitações
- Integração GitHub/Azure DevOps - Recursos de publicação desabilitados
Métodos de Configuração
Você tem duas opções para configurar o AppBuilder:
Opção 1: Variáveis de Ambiente (Quick Start)
Passe a configuração diretamente como variáveis de ambiente ao iniciar o container:
docker run --restart always -p 80:5000 \
-v C:/appbuilder/config:/appbuilder/config \
-v C:/appbuilder/logs:/appbuilder/logs \
-v C:/appbuilder/storage:/appbuilder/storage \
--name appbuilder \
appbuilder:1.0
Estrutura de diretório necessária:
/appbuilder/config/
├── appsettings.json # Sobrescritas de configuração principal
└── ai/ # Configuração de IA (opcional)
├── ai.appsettings.json # Configurações de provedor e modelo de IA
├── ai.providers.appsettings.json # Configuração de endpoint do provedor
└── ai.credentials.appsettings.json # Chaves de API e credenciais
└── ai.models.appsettings.json # Modelos de API disponíveis
Referência do Arquivo de Configuração
| Arquivo | Propósito | Obrigatório | |
|---|---|---|---|
appsettings.json |
Configuração backend principal - controla banco de dados, autenticação, registro, armazenamento e integrações | ||
configs/ai/ai.appsettings.json |
Configurações de recursos de IA - define qual provedor e modelos de IA usar | Apenas se IA habilitada | |
configs/ai/ai.credentials.appsettings.json |
Chaves de API do provedor de IA - armazena credenciais de autenticação para serviços de IA | Apenas se IA habilitada | |
configs/ai/ai.providers.appsettings.json |
Endpoints do provedor de IA - configura URLs base da API (raramente precisa de mudanças) | Apenas se IA habilitada | |
configs/ai/ai.models.appsettings.json |
Modelos do provedor de IA | Apenas se IA habilitada |
Nota: Se você não planeja habilitar recursos de IA, pode ignorar completamente os arquivos de configuração de IA.
Configuração Principal (appsettings.json)
Conexão de Banco de Dados
As configurações de conexão do banco de dados determinam onde o AppBuilder armazena todos os dados da aplicação, incluindo projetos do usuário, componentes, ativos e metadados.
{
"ConnectionStrings": {
"Provider": "MySql",
"AppBuilderMySqlConnection": "server=host.docker.internal;port=3306;database=IndigoAppBuilder;user=root;password=yourpassword;oldguids=false",
"AppBuilderSqlServerConnection": "Data Source=<server>;Database=<database>;User Id=<username>;Password=<password>;Encrypt=False;TrustServerCertificate=True;MultipleActiveResultSets=True",
"AppBuilderPostgreSqlConnection": "Host=<hostname>;Port=5432;Database=<database>;Username=<username>;Password=<password>"
}
}
| Opção | Tipo | Descrição |
|---|---|---|
| Provider | string | Determina qual mecanismo de banco de dados usar. Valores válidos: "MySql", "SqlServer", "PostgreSql". A aplicação só usará a string de conexão que corresponde a este valor de provedor. |
| AppBuilderMySqlConnection | string | String de conexão do MySQL/MariaDB. Usada quando Provider é "MySql". O parâmetro oldguids=false é necessário para o tratamento correto de GUID. Use host.docker.internal para conectar a um banco de dados na máquina host do Docker, ou server=mysql para conectar a um banco de dados hospedado em um container Docker. Importante: Ao usar um banco de dados em container, inicie o container do AppBuilder com a opção --network (por exemplo, docker run --restart always -p 8080:5000 --network appbuilder-network) |
| AppBuilderSqlServerConnection | string | String de conexão do SQL Server. Usada quando Provider é "SqlServer". MultipleActiveResultSets=True é obrigatório para que o Entity Framework Core funcione corretamente com o SQL Server. |
| AppBuilderPostgreSqlConnection | string | String de conexão do PostgreSQL. Usada quando Provider é "PostgreSql". Formato padrão de string de conexão Npgsql. |
Configuração de Registro
Controla como os registros da aplicação são gravados e gerenciados.
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Warning",
"Microsoft": "Warning"
}
},
"CustomLogging": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Microsoft.EntityFrameworkCore": "Error"
}
},
"Files": {
"Paths": {
"AI": "./logs/ai.log",
"Backend": "./logs/backend.log",
"DataProtection": "./logs/data-protection.log"
},
"RollingInterval": "Infinite",
"FileSizeLimitBytes": 52428800,
"RollOnFileSizeLimit": true,
"FlushToDiskInterval": "00:00:01",
"Retention": 90
},
"Teams": {
"AIError": {
"Enabled": false,
"LogicAppUrl": "",
"Period": "00:00:01",
"TeamId": "",
"ChannelId": ""
},
"DataProtection": {
"Enabled": false,
"Email": ""
}
}
}
}
Notificações do Teams
| Opção | Descrição |
|---|---|
Teams.AIError.Enabled |
Quando true, erros de IA são enviados a um canal do Microsoft Teams via webhook de Logic App. |
Teams.AIError.LogicAppUrl |
URL do Azure Logic App que publica no Teams. |
Teams.DataProtection.Enabled |
Quando true, alertas de proteção de dados são enviados por email. |
Teams.DataProtection.Email |
Endereço de email para alertas de proteção de dados. |
Opções de Limitação de Taxa
Controla a limitação de taxa de solicitação para prevenir abuso.
{
"IPRateLimiterOptions": {
"Enabled": false,
"PermitLimit": 500,
"SegmentsPerWindow": 10,
"WindowSeconds": 60,
"QueueLimit": 0,
"QueueProcessingOrder": "OldestFirst"
},
"UserRateLimiterOptions": {
"Enabled": false,
"PermitLimit": 1000,
"SegmentsPerWindow": 6,
"WindowSeconds": 60,
"QueueLimit": 0,
"QueueProcessingOrder": "OldestFirst"
}
}
| Opção | Tipo | Descrição |
|---|---|---|
Enabled |
boolean | Se a limitação de taxa está ativa. Defina como true para habilitar. Para redes internas/confiáveis, pode permanecer false. |
PermitLimit |
integer | Número máximo de solicitações permitidas por janela. O limitador de IP padroniza para 500, o limitador de usuário para 1000. |
SegmentsPerWindow |
integer | Número de segmentos em que a janela de tempo é dividida. Usado para algoritmo de janela deslizante. Valores mais altos = limitação mais suave. |
WindowSeconds |
integer | Tamanho da janela de tempo em segundos. As solicitações são contadas dentro desta janela contínua. |
QueueLimit |
integer | Número de solicitações a enfileirar quando o limite é excedido. 0 significa rejeitar imediatamente. Valores mais altos enfileiram solicitações para processamento posterior. |
QueueProcessingOrder |
string | Ordem de processar solicitações enfileiradas. "OldestFirst" (FIFO) ou "NewestFirst" (LIFO). |
Limitador de Taxa IP: Limita solicitações por endereço IP. Protege contra atores ruins individuais.
Limitador de Taxa de Usuário: Limita solicitações por usuário autenticado. Protege contra abuso de usuários autenticados.
Integração GitHub
Habilita a publicação de projetos em repositórios GitHub.
Defina disablePublishToGithub: false em
{
"FrontendOptions": {
"Extras": "{ disablePublishToGithub: false, disableSurvey: true, disableAnalytics: true, disableFeedback: true, requiresActivation: true }"
}
}
{
"GithubOptions": {
"Enabled": true,
"BaseUrl": "https://github.com/",
"AuthorizeClientEndpoint": "/login/oauth/authorize",
"AccessTokenEndpoint": "/login/oauth/access_token",
"Scope": "user repo workflow",
"RedirectUri": "/oauth/github/auth-callback",
"ClientId": "<your-github-oauth-app-client-id>",
"ClientSecret": "<your-github-oauth-app-client-secret>",
"PackageAccessTokenSuffix": ""
}
}
| Opção | Tipo | Descrição |
|---|---|---|
BaseUrl |
string | URL base do GitHub. Use "https://github.com/" para github.com ou sua URL do GitHub Enterprise. |
AuthorizeClientEndpoint |
string | Caminho do endpoint de autorização OAuth. Valor padrão, não altere a menos que esteja usando GitHub Enterprise personalizado. |
AccessTokenEndpoint |
string | Caminho do endpoint de token OAuth. Valor padrão, não altere. |
Scope |
string | Escopos OAuth a solicitar. "user repo workflow" permite ler informações do usuário, acessar repositórios e acionadores de fluxos de trabalho. |
RedirectUri |
string | Caminho de callback OAuth. Isso deve corresponder ao que está configurado nas configurações do seu aplicativo OAuth do GitHub. |
ClientId |
string | ID do Cliente do Aplicativo OAuth do GitHub. Crie um aplicativo OAuth em GitHub > Settings > Developer settings > OAuth Apps. |
ClientSecret |
string | Segredo do Cliente do Aplicativo OAuth do GitHub. Mantenha este segredo! |
Etapas de Configuração:
- Vá para GitHub > Settings > Developer settings > OAuth Apps > New OAuth App
- Defina Homepage URL para sua URL do AppBuilder
- Defina Authorization callback URL para
https://your-appbuilder-url/oauth/github/auth-callback - Copie Client ID e Client Secret para configuração
- Reinicie o container para incluir as mudanças
docker run --restart always -p 8080:5000 --network appbuilder-network -v C:/appbuilder/config:/appbuilder/config --name appbuilder -d appbuilder:2.0
Integração Azure DevOps
Habilita a publicação de projetos em repositórios Azure DevOps.
Defina disablePublishToDevOps: false em
{
"FrontendOptions": {
"Extras": "{ disablePublishToDevOps: false, disableSurvey: true, disableAnalytics: true, disableFeedback: true, requiresActivation: true }"
}
}
{
"DevOpsOptions": {
"Enabled": true,
"TokenEncryptionKeyBase64": "<generate-a-random-16-byte-base64-key>",
"BaseUrl": "https://login.microsoftonline.com/",
"TenantId": "common",
"AuthorizeClientEndpoint": "oauth2/v2.0/authorize",
"RedirectUri": "/oauth/devops/auth-callback",
"AccessTokenEndpoint": "oauth2/v2.0/token",
"RevokeTokenEndpoint": "https://graph.microsoft.com/v1.0/users/{userObjectId}/revokeSignInSessions",
"Scopes": "499b84ac-1321-427f-aa17-267ca6975798/user_impersonation offline_access openid profile user.read",
"ClientId": "<your-azure-ad-app-client-id>",
"ClientSecret": "<your-azure-ad-app-client-secret>",
"RestApiVersion": "7.1",
"ExcludedOrganizations": []
}
}
| Opção | Tipo | Descrição |
|---|---|---|
TokenEncryptionKeyBase64 |
string | Chave para criptografar tokens OAuth armazenados. Gere com openssl rand -base64 16. |
BaseUrl |
string | URL de login do Azure AD. Valor padrão para plataforma de identidade Microsoft. |
TenantId |
string | Tenant do Azure AD. Use "common" para permitir qualquer conta Microsoft, ou especifique seu ID de tenant para um único tenant. |
Scopes |
string | Escopos OAuth para Azure DevOps. O GUID é o ID de recurso do Azure DevOps. Não modifique a menos que saiba o que está fazendo. |
ClientId |
string | ID do Cliente do Registro do Aplicativo do Azure AD. |
ClientSecret |
string | Segredo do Cliente do Registro do Aplicativo do Azure AD. |
RestApiVersion |
string | Versão da API REST do Azure DevOps. "7.1" é versão estável atual. |
ExcludedOrganizations |
array | Lista de organizações Azure DevOps a ocultar. Os usuários não verão estas orgs ao publicar. |
Reinicie o container para incluir as mudanças docker run --restart always -p 8080:5000 --network appbuilder-network -v C:/appbuilder/config:/appbuilder/config --name appbuilder -d appbuilder:2.0
Configuração de Email
Habilita notificações por email (opcional).
{
"EmailOptions": {
"Smtp": {
"Server": "smtp.your-server.com",
"Port": "587",
"User": "your-smtp-user",
"Password": "your-smtp-password"
}
}
}
| Opção | Tipo | Descrição |
|---|---|---|
Server |
string | Nome de host do servidor SMTP. |
Port |
string | Porta do servidor SMTP. Valores comuns: "587" (TLS), "465" (SSL), "25" (não criptografado - não recomendado). |
User |
string | Nome de usuário de autenticação SMTP. |
Password |
string | Senha de autenticação SMTP. |
Configuração de IA
Os recursos de IA são opcionais. Para habilitá-los, configure os arquivos em configs/ai/.
ai.appsettings.json
Controla qual provedor de IA e modelos são usados.
{
"AIOptions": {
"Provider": "OPENAI",
"Model": "gpt-4.1-mini",
"SupportsVision": true
},
"ImageGeneration": {
"Provider": "OPENAI",
"Model": "gpt-image-1"
},
"GoogleCloudTranscribe": {
"Enabled": false,
"Credentials": "GoogleCloud",
"Model": "latest_long",
"DefaultLanguageCode": "en-US"
}
}
| Opção | Tipo | Descrição |
|---|---|---|
AIOptions.Provider |
string | Provedor de geração de texto. Valores: "OPENAI", "ANTHROPIC", "GOOGLECLOUD", "GROQ" |
AIOptions.Model |
string | ID do modelo de geração de texto. Deve ser um modelo válido para o provedor selecionado (veja tabela abaixo). |
AIOptions.SupportsVision |
boolean | Se o modelo pode analisar imagens. Habilite para modelos com capacidades de visão. |
ImageGeneration.Provider |
string | Provedor de geração de imagem. Valores: "OPENAI", "GOOGLECLOUD", "RUNWARE" |
ImageGeneration.Model |
string | ID do modelo de geração de imagem. |
GoogleCloudTranscribe.Enabled |
boolean | Habilitar fala-para-texto. Requer credenciais do Google Cloud. |
GoogleCloudTranscribe.DefaultLanguageCode |
string | Idioma padrão para reconhecimento de fala. Por exemplo, "en-US", "de-DE", "fr-FR". |
Modelos Disponíveis:
| Provedor | Modelos de Texto | Modelos de Imagem |
|---|---|---|
| OpenAI | gpt-5.2, gpt-5.1, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano |
gpt-image-1 |
| Anthropic | claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001 |
- |
| Google Cloud | gemini-2.5-pro, gemini-2.5-flash, gemini-3-pro-preview |
imagen-4.0-generate-001, imagen-4.0-ultra-generate-001, imagen-4.0-fast-generate-001 |
| Groq | llama-3.3-70b-versatile, llama-3.1-8b-instant |
- |
| Runware | - | runware:100@1, runware:101@1 |
ai.credentials.appsettings.json
Armazena chaves de API para provedores de IA.
{
"AICredentialsOptions": {
"OpenAI": {
"ApiKey": "<your-openai-api-key>"
},
"Anthropic": {
"ApiKey": "<your-anthropic-api-key>"
},
"Groq": {
"ApiKey": "<your-groq-api-key>"
},
"Runware": {
"ApiKey": "<your-runware-api-key>"
},
"GoogleCloud": {
"JsonCredentials": {
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "...",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
}
}
Configure apenas os provedores que você planeja usar. Obtenha chaves de API de:
- OpenAI: https://platform.openai.com/api-keys
- Anthropic: https://console.anthropic.com/
- Groq: https://console.groq.com/
- Runware: https://runware.ai/
- Google Cloud: Crie uma conta de serviço no Google Cloud Console
Configurações de Ambiente Frontend
Essas configurações são passadas para a aplicação frontend e controlam recursos e comportamento da interface do usuário.
{
"FrontendOptions": {
"Extras": "{ disableSurvey: true, disableAnalytics: true, disableFeedback: true, requiresActivation: true, disableAI: false, enableAIChat: true }"
}
}
O campo Extras é uma string JSON contendo sinalizadores de configuração frontend:
| Configuração | Padrão (On-Prem) | Descrição |
|---|---|---|
disableAI |
true |
Interruptor mestre para recursos de IA. Quando true, toda interface do usuário relacionada a IA fica oculta e APIs de IA não são chamadas. |
enableAIChat |
false |
Mostra painel de chat de IA na caixa de ferramentas. O painel permite aos usuários interagir com IA para gerar componentes e layouts. |
enableSpeechToText |
false |
Mostra botão de microfone para entrada de voz no chat de IA. Requer que fala-para-texto do Google Cloud esteja configurado. |
Como funciona: Esses valores são injetados no frontend em tempo de execução via API backend. O frontend lê esses sinalizadores na inicialização e habilita/desabilita recursos de acordo.
Para que a funcionalidade de IA funcione, você deve fornecer as credenciais, modelos e configurações necessários nestes arquivos ai.appsettings.json, ai.credentials.appsettings.json, ai.providers.appsettings.json, ai.models.appsettings.json.
Instalação da Imagem Docker e Execução do Container
Montagens de Volume
| Caminho do Container | Propósito | Obrigatório |
|---|---|---|
/app/appsettings.json |
Configuração principal | Sim |
/app/configs/ai/ |
Arquivos de configuração de IA | Apenas se IA habilitada |
/app/storage/ |
Armazenamento de arquivo (uploads, exportações) | Sim (para persistência) |
/app/logs/ |
Arquivos de log | Recomendado |
Comandos de Execução Docker
Carregue a imagem
docker load -i appbuilder.tar
Execute o container fornecendo apenas uma variável de ambiente para conexão DB
docker run --restart always -p 80:5000 \
-e "ConnectionStrings:AppBuilderSqlServerConnection=Data Source=<server>,<port>;Database=<db-name>;User ID=<user>;Password=<password>;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True" \
-v C:/appbuilder/logs:/appbuilder/logs \
-v C:/appbuilder/storage:/appbuilder/storage \
--name appbuilder \
appbuilder:1.0
Execute o container quando configuração personalizada está montada -v C:/appbuilder/config:/appbuilder/config \
Se você quiser conectar a banco de dados executando em container docker separado:
O arquivo appsettings define a string de conexão para : AppBuilderMySqlConnection": "Server=mysql;Port=3306;Database=AppBuilder;User=user;Password=password;,
Crie rede docker e inclua o mysql.
Forneça a rede no comando de inicialização.
docker run --restart always -p 80:5000 \
--network appbuilder-network \
-v C:/appbuilder/config:/appbuilder/config \
-v C:/appbuilder/logs:/appbuilder/logs \
-v C:/appbuilder/storage:/appbuilder/storage \
--name appbuilder \
appbuilder:1.0
Se você quiser conectar a banco de dados executando na PC do host para servidor use host.docker.internal:
O arquivo appsettings define a string de conexão para : AppBuilderMySqlConnection": "server=host.docker.internal;Port=3306;Database=AppBuilder;User=user;Password=password;,
docker run --restart always -p 80:5000 \
-v C:/appbuilder/config:/appbuilder/config \
-v C:/appbuilder/logs:/appbuilder/logs \
-v C:/appbuilder/storage:/appbuilder/storage \
--name appbuilder \
appbuilder:1.0
Lista de Verificação de Quick Start
Configuração Mínima
- Atualize
ConnectionStringsem appsettings.json ou use a opção de sobrescrita de ambiente (sinalizador)
Com Autenticação
- Conclua configuração mínima
- Defina
SkipAuthcomofalse - Configure provedor OAuth (Azure AD, Okta, Keycloak, etc.)
- Defina
Authority,ClientIdem AuthSettings
Com Recursos de IA
- Conclua configuração mínima
- Obtenha chave de API do seu provedor de IA escolhido
- Configure
ai.appsettings.jsoncom provedor e modelo - Adicione chave de API a
ai.credentials.appsettings.json - Defina
disableAI: falseeenableAIChat: trueno arquivoappsetting.jsonemFrontendOptions
Com Integração GitHub/DevOps
- Crie aplicativo OAuth (GitHub) ou Registro de Aplicativo (Azure AD)
- Configure URLs de callback no provedor
- Adicione ID do Cliente e Segredo à configuração
Solução de Problemas
Locais de Log
| Arquivo de Log | Conteúdo |
|---|---|
./logs/appbuilder.log |
Solicitações de API, autenticação, erros gerais relacionados |
./logs/codegen.log |
Solicitações de API, autenticação, erros gerais relacionados |
./logs/ai.log |
Solicitações e respostas do provedor de IA |
Problemas Comuns
Falha de conexão do banco de dados
- Verifique se o formato da string de conexão corresponde ao seu provedor
- Verifique se servidor de banco de dados está acessível do container
- Para Docker Desktop em Windows/Mac, use
host.docker.internalem vez delocalhost - Garanta que o usuário do banco de dados tem permissões para criar tabelas
Erros CORS no navegador
- Adicione sua origem exata (incluindo protocolo e porta) a
CorsPolicy.Origins - Verifique console do navegador para a origem real sendo bloqueada
Recursos de IA não funcionando
- Verifique se
disableAI: falseno ambiente frontend - Verifique se chave de API é válida e tem créditos
- Revise
ai.logpara mensagens de erro específicas - Garanta que nome do modelo corresponda exatamente aos modelos disponíveis
Uploads de arquivo falham
- Verifique se diretório de armazenamento existe e é gravável
- Verifique
MaxImageSizeMbse carregando imagens grandes - Garanta que volume está montado corretamente no Docker
Autenticação não funciona
- Verifique se
SkipAuthéfalse - Verifique se URL
Authorityestá acessível - Verifique se URLs de callback correspondem tanto em configuração como em provedor OAuth
- Verifique console do navegador para erros OAuth
Docker Desktop em Windows
Docker Desktop em Windows não está iniciando automaticamente sem Login na máquina Windows Docker Desktop em Windows - O time Docker não recomenda Docker Desktop para cargas de trabalho de produção. Você deve usar Docker em uma caixa Linux ou Docker para Windows Server se quiser containers Windows.
Recursos Adicionais
- Autenticação On-Prem com OpenID Connect
- Sinalizadores de Configuração de Implantação do App Builder
- Whitelist de Recursos Externos
- Visão Geral da Interface do App Builder
- Página Única e Navegação
- Componentes do App Builder
- Layouts Flex
- Executando Aplicativo Desktop
- Gerar aplicativo
- Indigo.Design Getting Started
