Guía de requisitos previos, instalación y configuración de App Builder On-Premises
Requisitos previos
Esta sección enumera los requisitos previos para instalar la versión On-premises de App Builder y está dirigida a administradores de sistemas que configuran parámetros operacionales que mantienen y respaldan Linux/Mac OS/Windows.
Gestión de bases de datos
Según sus requisitos, puede decidir utilizar sistemas de gestión de bases de datos MySQL, MSSQL Server o PostgreSQL.
Instalación de MySQL
1 - Instale MySQL community edition (enlace directo para windows)
Seleccione:
- Developer default, Next y Execute.
Nota: si recibe un mensaje que dice "one or more products requirements have not been satisfied. Do you want to continue?" Solo seleccione Sí)
Después de que finalice la instalación:
- Seleccione siguiente para configurar el servidor, cuando se le solicite, ingrese la contraseña raíz que desee, luego Execute.
- Después de que finalice la configuración del servidor, seleccione Cancel para salir del instalador, ya que el resto de la configuración no es necesaria.
2 - Permita la conexión del contenedor a MySQL.
Conéctese a MySQL con el usuario raíz y la contraseña del paso 1 y ejecute el siguiente script sql (el nombre de usuario y la contraseña serán los utilizados en AppBuilder).
Nota: puede usar la herramienta MySQL Workbench para ejecutar scripts sql.
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
Instalación de MSSQL Server
1 - Instale Sql Server (enlace directo)
Instalación de On-Premises Sql Express
Nota: Un servidor On-premises debe tener un Sql Server real, no un Sql Server Express incrustado de VS
2 - Habilite tcp/ip - explicación detallada aquí.
SqlServer Config Manager
3 - Agregue un nuevo usuario App_Builder como parte de Sql Express. Puede instalar Sql Server Management Studio y utilizarlo para ese propósito.
Diálogo de parámetros de inicio de sesión
Nota: Se pueden denegar los permisos de crear base de datos para el usuario recién agregado. Debería considerar otorgarles un rol de servidor que les otorgue credenciales para crear base de datos como
dbcreator.
Nota: Según la decisión del administrador, un cambio del modo de autenticación con SSMS podría ser necesario. El motor de base de datos de SQL Server está configurado en modo de autenticación de Windows o modo de autenticación de SQL Server y Windows.
Instalar Docker
Guía de Windows -> guía de docs.microsoft.com
Instalación
Esta sección supone que ya tiene Docker y una base de datos (MySQL, MSSQL Server o PostgreSQL) instalados.
Instalación por primera vez
1 - Descargue el appbuilder.zip que forma parte de su sección de Descargas en el Portal del cliente de Infragistics.
2 - Extraiga el appbuilder.tar contenido en el archivo appbuilder.zip.
3 - Abra una ventana de terminal o símbolo del sistema en la ubicación extraída.
4 - Cargue y verifique la imagen.
Ejecute:
docker load --input appbuilder.tar
Para verificar que la imagen se cargó correctamente, consulte el ejemplo con la tabla a continuación:
docker images
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| appbuilder | 1.0 | 2a05977e039b | 12 days ago | 854MB |
5 - Ejecute el contenedor:
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
- Ejemplo de MySQL - Este sería el comando suponiendo que su instancia de MySql está ejecutando un esquema llamado IndigoAppBuilderOnPrem en 192.168.2.5 con username=appbuilder y password=appbuilder y que ha seleccionado C:/AppBuilder como la carpeta externa para almacenar los registros y almacenamiento.
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
- Ejemplo de MSSQL Server - Este sería el comando suponiendo que su instancia de Sql Server está ejecutando un esquema llamado IndigoAppBuilderOnPrem con servidor SQLEXPRESS, con USER ID=APP_BUILDER y password=Appbuilder2023! y que ha seleccionado C:/AppBuilder como la carpeta externa para almacenar los registros y almacenamiento.
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 su navegador y escriba http://localhost/
Nota: Si está utilizando Docker Desktop, vaya a Containers/Apps, busque su contenedor y haga clic en
Open in browser
Docker Containers/Apps
Autenticación con OpenID Connect (OAuth 2.0)
Siga el tema On-Prem Authentication with OpenID Connect (OAuth 2.0) para obtener más información.
Actualizaciones
1 - Siga los primeros 4 pasos de la instalación por primera vez con el archivo zip recién publicado
2 - Verifique que la imagen nueva se haya cargado correctamente (la imagen anterior debe etiquetarse como
docker images
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| appbuilder | 1.0 | 27ff4c1079ac | 43 hours ago | 932MB |
| 2a05977e039b | 12 days ago | 854MB |
3 - Detenga el contenedor
docker stop appbuilder
4 - Elimine el contenedor
docker rm appbuilder
5 - Ejecute el contenedor con el mismo comando utilizado en el paso 5 de la instalación por primera vez
Activación
Esta sección supone que ya ha instalado la instancia On-premises y ahora está activa y en ejecución.
Cuando el servidor se inicia por primera vez, un diálogo de solicitud le proporcionará el Installation ID y se solicitará una clave de autenticación. Envíe este Installation ID a nuestro departamento de ventas según su región y le proporcionaremos la clave de autenticación para activar el servidor.
Activar App Builder
Nota: Recibirá un mensaje de advertencia directamente a través de la interfaz de usuario treinta días antes de que expire su clave.
Descripción general de configuración
Configuración predeterminada
Cuando inicia la imagen Docker de AppBuilder sin configuración personalizada, las siguientes características están deshabilitadas de forma predeterminada:
- Conexión de base de datos - No se proporcionan credenciales de base de datos (debe configurarse mediante variables de entorno o archivo de configuración)
- Características de IA - Toda la funcionalidad de IA deshabilitada
- Panel de chat de IA - Interfaz de chat oculta
- Notificaciones de Teams - Sin integraciones de registro externas
- Limitación de velocidad - Sin limitación de solicitudes
- Integración de GitHub/Azure DevOps - Funciones de publicación deshabilitadas
Métodos de configuración
Tiene dos opciones para configurar AppBuilder:
Opción 1: Variables de entorno (Inicio rápido)
Pase la configuración directamente como variables de entorno al iniciar el contenedor:
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
Estructura de directorio requerida:
/appbuilder/config/
├── appsettings.json # Main configuration overrides
└── ai/ # AI configuration (optional)
├── ai.appsettings.json # AI provider and model settings
├── ai.providers.appsettings.json # Provider endpoint configuration
└── ai.credentials.appsettings.json # API keys and credentials
└── ai.models.appsettings.json # API models available
Referencia de archivo de configuración
| File | Purpose | Required | |
|---|---|---|---|
appsettings.json |
Configuración principal del backend - controla base de datos, autenticación, registro, almacenamiento e integraciones | ||
configs/ai/ai.appsettings.json |
Configuración de características de IA - define qué proveedor de IA y modelos usar | Solo si IA habilitada | |
configs/ai/ai.credentials.appsettings.json |
Claves API del proveedor de IA - almacena credenciales de autenticación para servicios de IA | Solo si IA habilitada | |
configs/ai/ai.providers.appsettings.json |
Puntos finales del proveedor de IA - configura URLs base de API (rara vez necesita cambios) | Solo si IA habilitada | |
configs/ai/ai.models.appsettings.json |
Modelos del proveedor de IA | Solo si IA habilitada |
Nota: Si no planea habilitar funciones de IA, puede omitir completamente los archivos de configuración de IA.
Configuración principal (appsettings.json)
Conexión de base de datos
La configuración de conexión de base de datos determina dónde AppBuilder almacena todos los datos de aplicación, incluidos proyectos de usuario, componentes, activos y metadatos.
{
"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>"
}
}
| Option | Type | Description |
|---|---|---|
| Provider | string | Determina qué motor de base de datos usar. Valores válidos: "MySql", "SqlServer", "PostgreSql". La aplicación solo utilizará la cadena de conexión que coincida con este valor del proveedor. |
| AppBuilderMySqlConnection | string | Cadena de conexión de MySQL/MariaDB. Se utiliza cuando Provider es "MySql". El parámetro oldguids=false es necesario para un manejo correcto de GUID. Use host.docker.internal para conectarse a una base de datos en la máquina host de Docker, o server=mysql para conectarse a una base de datos alojada en un contenedor de Docker. Importante: Cuando use una base de datos en contenedor, inicie el contenedor de AppBuilder con la opción --network (por ejemplo, docker run --restart always -p 8080:5000 --network appbuilder-network) |
| AppBuilderSqlServerConnection | string | Cadena de conexión de SQL Server. Se utiliza cuando Provider es "SqlServer". MultipleActiveResultSets=True es necesario para que Entity Framework Core funcione correctamente con SQL Server. |
| AppBuilderPostgreSqlConnection | string | Cadena de conexión de PostgreSQL. Se utiliza cuando Provider es "PostgreSql". Formato estándar de cadena de conexión Npgsql. |
Configuración de registro
Controla cómo se escriben y se administran los registros de aplicación.
{
"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": ""
}
}
}
}
Notificaciones de Teams
| Option | Description |
|---|---|
Teams.AIError.Enabled |
Cuando es true, los errores de IA se envían a un canal de Microsoft Teams a través del webhook de Logic App. |
Teams.AIError.LogicAppUrl |
URL de la aplicación lógica de Azure que publica en Teams. |
Teams.DataProtection.Enabled |
Cuando es true, las alertas de protección de datos se envían por correo electrónico. |
Teams.DataProtection.Email |
Dirección de correo electrónico para alertas de protección de datos. |
Opciones de limitación de velocidad
Controla la limitación de velocidad de solicitudes para prevenir abusos.
{
"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"
}
}
| Option | Type | Description |
|---|---|---|
Enabled |
boolean | Si la limitación de velocidad está activa. Establezca en true para habilitar. Para redes internas/confiables, puede permanecer false. |
PermitLimit |
integer | Máximo de solicitudes permitidas por ventana. El limitador IP usa de forma predeterminada 500, el limitador de usuario 1000. |
SegmentsPerWindow |
integer | Número de segmentos en los que se divide la ventana de tiempo. Se utiliza para el algoritmo de ventana deslizante. Valores más altos = limitación más suave. |
WindowSeconds |
integer | Tamaño de la ventana de tiempo en segundos. Las solicitudes se cuentan dentro de esta ventana móvil. |
QueueLimit |
integer | Número de solicitudes que se van a poner en cola cuando se exceda el límite. 0 significa rechazar inmediatamente. Los valores más altos ponen en cola las solicitudes para su procesamiento posterior. |
QueueProcessingOrder |
string | Orden para procesar solicitudes en cola. "OldestFirst" (FIFO) o "NewestFirst" (LIFO). |
Limitador de velocidad de IP: Limita las solicitudes por dirección IP. Protege contra malos actores individuales.
Limitador de velocidad de usuario: Limita las solicitudes por usuario autenticado. Protege contra abusos por parte de usuarios autenticados.
Integración de GitHub
Habilita la publicación de proyectos en repositorios de GitHub.
Establezca disablePublishToGithub: false en
{
"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": ""
}
}
| Option | Type | Description |
|---|---|---|
BaseUrl |
string | URL base de GitHub. Use "https://github.com/" para github.com o su URL de GitHub Enterprise. |
AuthorizeClientEndpoint |
string | Ruta del punto final de autorización OAuth. Valor estándar, no cambie a menos que use GitHub Enterprise personalizado. |
AccessTokenEndpoint |
string | Ruta del punto final del token OAuth. Valor estándar, no cambie. |
Scope |
string | Alcances de OAuth para solicitar. "user repo workflow" permite leer información del usuario, acceder a repositorios e activar flujos de trabajo. |
RedirectUri |
string | Ruta de devolución de llamada de OAuth. Esto debe coincidir con lo configurado en la configuración de su aplicación OAuth de GitHub. |
ClientId |
string | ID de cliente de aplicación OAuth de GitHub. Cree una aplicación OAuth en GitHub > Settings > Developer settings > OAuth Apps. |
ClientSecret |
string | Secreto de cliente de aplicación OAuth de GitHub. ¡Manténgalo en secreto! |
Pasos de configuración:
- Vaya a GitHub > Settings > Developer settings > OAuth Apps > New OAuth App
- Establezca Homepage URL en su URL de AppBuilder
- Establezca Authorization callback URL en
https://your-appbuilder-url/oauth/github/auth-callback - Copie Client ID y Client Secret a la configuración
- Reinicie el contenedor para incluir los cambios
docker run --restart always -p 8080:5000 --network appbuilder-network -v C:/appbuilder/config:/appbuilder/config --name appbuilder -d appbuilder:2.0
Integración de Azure DevOps
Habilita la publicación de proyectos en repositorios de Azure DevOps.
Establezca disablePublishToDevOps: false en
{
"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": []
}
}
| Option | Type | Description |
|---|---|---|
TokenEncryptionKeyBase64 |
string | Clave para cifrar los tokens OAuth almacenados. Genere con openssl rand -base64 16. |
BaseUrl |
string | URL de inicio de sesión de Azure AD. Valor estándar para la plataforma de identidad de Microsoft. |
TenantId |
string | Inquilino de Azure AD. Use "common" para permitir cualquier cuenta de Microsoft, o especifique su ID de inquilino para un inquilino único. |
Scopes |
string | Alcances de OAuth para Azure DevOps. El GUID es el ID de recurso de Azure DevOps. No modifique a menos que sepa lo que está haciendo. |
ClientId |
string | ID de cliente del registro de aplicación de Azure AD. |
ClientSecret |
string | Secreto de cliente del registro de aplicación de Azure AD. |
RestApiVersion |
string | Versión de API REST de Azure DevOps. "7.1" es la versión estable actual. |
ExcludedOrganizations |
array | Lista de organizaciones de Azure DevOps que se deben ocultar. Los usuarios no verán estas organizaciones al publicar. |
Reinicie el contenedor para incluir los cambios docker run --restart always -p 8080:5000 --network appbuilder-network -v C:/appbuilder/config:/appbuilder/config --name appbuilder -d appbuilder:2.0
Configuración de correo electrónico
Habilita notificaciones por correo electrónico (opcional).
{
"EmailOptions": {
"Smtp": {
"Server": "smtp.your-server.com",
"Port": "587",
"User": "your-smtp-user",
"Password": "your-smtp-password"
}
}
}
| Option | Type | Description |
|---|---|---|
Server |
string | Nombre de host del servidor SMTP. |
Port |
string | Puerto del servidor SMTP. Valores comunes: "587" (TLS), "465" (SSL), "25" (sin cifrar - no recomendado). |
User |
string | Nombre de usuario de autenticación SMTP. |
Password |
string | Contraseña de autenticación SMTP. |
Configuración de IA
Las características de IA son opcionales. Para habilitarlas, configure los archivos en configs/ai/.
ai.appsettings.json
Controla qué proveedor de IA y modelos se utilizan.
{
"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"
}
}
| Option | Type | Description |
|---|---|---|
AIOptions.Provider |
string | Proveedor de generación de texto. Valores: "OPENAI", "ANTHROPIC", "GOOGLECLOUD", "GROQ" |
AIOptions.Model |
string | ID del modelo de generación de texto. Debe ser un modelo válido para el proveedor seleccionado (consulte la tabla a continuación). |
AIOptions.SupportsVision |
boolean | Si el modelo puede analizar imágenes. Habilite para modelos con capacidades de visión. |
ImageGeneration.Provider |
string | Proveedor de generación de imágenes. Valores: "OPENAI", "GOOGLECLOUD", "RUNWARE" |
ImageGeneration.Model |
string | ID del modelo de generación de imágenes. |
GoogleCloudTranscribe.Enabled |
boolean | Habilitar conversión de voz a texto. Requiere credenciales de Google Cloud. |
GoogleCloudTranscribe.DefaultLanguageCode |
string | Idioma predeterminado para el reconocimiento de voz. Por ejemplo, "en-US", "de-DE", "fr-FR". |
Modelos disponibles:
| Provider | Text Models | Image Models |
|---|---|---|
| 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
Almacena claves API para proveedores 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"
}
}
}
}
Solo configure los proveedores que planea usar. Obtenga claves 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: Cree una cuenta de servicio en Google Cloud Console
Configuración del entorno de frontend
Estos parámetros se pasan a la aplicación frontend y controlan funciones y comportamiento de la interfaz de usuario.
{
"FrontendOptions": {
"Extras": "{ disableSurvey: true, disableAnalytics: true, disableFeedback: true, requiresActivation: true, disableAI: false, enableAIChat: true }"
}
}
El campo Extras es una cadena JSON que contiene banderas de configuración de frontend:
| Setting | Default (On-Prem) | Description |
|---|---|---|
disableAI |
true |
Interruptor maestro para funciones de IA. Cuando es true, toda la interfaz de usuario relacionada con IA está oculta y no se llaman las API de IA. |
enableAIChat |
false |
Muestra el panel de chat de IA en la caja de herramientas. El panel permite a los usuarios interactuar con IA para generar componentes y diseños. |
enableSpeechToText |
false |
Muestra el botón del micrófono para entrada de voz en el chat de IA. Requiere que Google Cloud Speech-to-Text esté configurado. |
Cómo funciona: Estos valores se inyectan en el frontend en tiempo de ejecución a través de la API del backend. El frontend lee estas banderas en la inicialización y habilita/deshabilita funciones en consecuencia.
Para que la funcionalidad de IA funcione, debe proporcionar las credenciales, modelos y parámetros requeridos en estos archivos ai.appsettings.json, ai.credentials.appsettings.json, ai.providers.appsettings.json, ai.models.appsettings.json.
Instalación de imagen de Docker y ejecución del contenedor
Montajes de volumen
| Container Path | Purpose | Required |
|---|---|---|
/app/appsettings.json |
Configuración principal | Sí |
/app/configs/ai/ |
Archivos de configuración de IA | Solo si IA habilitada |
/app/storage/ |
Almacenamiento de archivos (cargas, exportaciones) | Sí (para persistencia) |
/app/logs/ |
Archivos de registro | Recomendado |
Comandos de ejecución de Docker
Cargar la imagen
docker load -i appbuilder.tar
Ejecutar el contenedor proporcionando solo una variable de entorno para conexión de BD
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
Ejecutar el contenedor cuando se monta configuración personalizada -v C:/appbuilder/config:/appbuilder/config \
Si desea conectarse a la base de datos que se ejecuta en un contenedor de docker separado:
La configuración del archivo appsettings es : AppBuilderMySqlConnection": "Server=mysql;Port=3306;Database=AppBuilder;User=user;Password=password;,
Cree una red de docker e incluya mysql.
Proporcione la red en el comando de inicio.
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
Si desea conectarse a la base de datos que se ejecuta en la PC host para el servidor use host.docker.internal:
La configuración del archivo appsettings es : 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 verificación de inicio rápido
Configuración mínima
- Actualice
ConnectionStringsen appsettings.json o use la opción de anulación de entorno (bandera)
Con autenticación
- Complete la configuración mínima
- Establezca
SkipAuthenfalse - Configure el proveedor de OAuth (Azure AD, Okta, Keycloak, etc.)
- Establezca
Authority,ClientIden AuthSettings
Con características de IA
- Complete la configuración mínima
- Obtenga una clave API de su proveedor de IA elegido
- Configure
ai.appsettings.jsoncon el proveedor y modelo - Agregue una clave API a
ai.credentials.appsettings.json - Establezca
disableAI: falseyenableAIChat: trueen el archivoappsetting.jsonenFrontendOptions
Con integración de GitHub/DevOps
- Cree una aplicación OAuth (GitHub) o registro de aplicación (Azure AD)
- Configure las URL de devolución de llamada en el proveedor
- Agregue Client ID y Secret a la configuración
Solución de problemas
Ubicaciones de registro
| Log File | Contents |
|---|---|
./logs/appbuilder.log |
Solicitudes de API, autenticación, errores generales relacionados |
./logs/codegen.log |
Solicitudes de API, autenticación, errores generales relacionados |
./logs/ai.log |
Solicitudes y respuestas del proveedor de IA |
Problemas comunes
Error de conexión a base de datos
- Verifique que el formato de la cadena de conexión coincida con su proveedor
- Compruebe que el servidor de base de datos sea accesible desde el contenedor
- Para Docker Desktop en Windows/Mac, use
host.docker.internalen lugar delocalhost - Asegúrese de que el usuario de la base de datos tenga permisos para crear tablas
Errores de CORS en el navegador
- Agregue su origen exacto (incluido protocolo y puerto) a
CorsPolicy.Origins - Compruebe la consola del navegador para ver el origen real que se bloquea
Características de IA que no funcionan
- Verifique que
disableAI: falseen el entorno de frontend - Compruebe que la clave API es válida y tiene créditos
- Revise
ai.logpara mensajes de error específicos - Asegúrese de que el nombre del modelo coincida exactamente con los modelos disponibles
Las cargas de archivos fallan
- Verifique que el directorio de almacenamiento existe y es escribible
- Compruebe
MaxImageSizeMbsi carga imágenes grandes - Asegúrese de que el volumen esté montado correctamente en Docker
Autenticación que no funciona
- Verifique que
SkipAuthseafalse - Compruebe que la URL de
Authoritysea accesible - Verifique que las URL de devolución de llamada coincidan tanto en la configuración como en el proveedor de OAuth
- Compruebe la consola del navegador para errores de OAuth
Docker Desktop en Windows
Docker Desktop en Windows no se inicia automáticamente sin iniciar sesión en la máquina Windows Docker Desktop en Windows - El equipo de Docker no recomienda Docker Desktop para cargas de trabajo de producción. Debe usar Docker en una caja Linux o Docker para Windows Server si desea contenedores de Windows.
Recursos adicionales
- On-Prem Authentication with OpenID Connect
- App Builder Deployment Configuration Flags
- External Resources Whitelisting
- App Builder Interface Overview
- Single Page And Navigation
- App Builder Components
- Flex Layouts
- Running Desktop App
- Generate app
- Indigo.Design Getting Started
