description: Learn how to configure environment variables for AiMicromind
Environment Variables
aimicromind support different environment variables to configure your instance. You can specify the following variables in the .env file inside packages/server folder. Refer to .env.example file.
| Variable | Description | Type | Default |
|---|---|---|---|
| PORT | The HTTP port aimicromind runs on | Number | 3000 |
| AIMICROMIND_USERNAME | Username to login | String | |
| AIMICROMIND_PASSWORD | Password to login | String | |
| AIMICROMIND_FILE_SIZE_LIMIT | Maximum file size when uploading | String | 50mb |
| NUMBER_OF_PROXIES | Rate Limit Proxy | Number | |
| CORS_ORIGINS | The allowed origins for all cross-origin HTTP calls | String | |
| IFRAME_ORIGINS | The allowed origins for iframe src embedding | String | |
| SHOW_COMMUNITY_NODES | Display nodes that are created by community | Boolean: true or false | |
| DISABLED_NODES | Comma separated list of node names to disable | String |
For Database
| Variable | Description | Type | Default |
|---|---|---|---|
| DATABASE_TYPE | Type of database to store the aimicromind data | Enum String: sqlite, mysql, postgres | sqlite |
| DATABASE_PATH | Location where database is saved (When DATABASE_TYPE is sqlite) | String | your-home-dir/.aimicromind |
| DATABASE_HOST | Host URL or IP address (When DATABASE_TYPE is not sqlite) | String | |
| DATABASE_PORT | Database port (When DATABASE_TYPE is not sqlite) | String | |
| DATABASE_USER | Database username (When DATABASE_TYPE is not sqlite) | String | |
| DATABASE_PASSWORD | Database password (When DATABASE_TYPE is not sqlite) | String | |
| DATABASE_NAME | Database name (When DATABASE_TYPE is not sqlite) | String | |
| DATABASE_SSL | Database SSL is required (When DATABASE_TYPE is not sqlite) | Boolean: true or false | false |
For Storage
aimicromind store the following files under a local path folder by default.
- Files uploaded on Document Loaders/Document Store
- Image/Audio uploads from chat
- Images/Files from Assistant
- Files from Vector Upsert API
User can specify STORAGE_TYPE to use AWS S3, Google Cloud Storage or local path
| Variable | Description | Type | Default |
|---|---|---|---|
| STORAGE_TYPE | Type of storage for uploaded files. default is local | Enum String: s3, gcs, local | local |
| BLOB_STORAGE_PATH | Local folder path where uploaded files are stored when STORAGE_TYPE is local | String | your-home-dir/.aimicromind/storage |
| S3_STORAGE_BUCKET_NAME | Bucket name to hold the uploaded files when STORAGE_TYPE is s3 | String | |
| S3_STORAGE_ACCESS_KEY_ID | AWS Access Key | String | |
| S3_STORAGE_SECRET_ACCESS_KEY | AWS Secret Key | String | |
| S3_STORAGE_REGION | Region for S3 bucket | String | |
| S3_ENDPOINT_URL | Custom S3 endpoint (optional) | String | |
| S3_FORCE_PATH_STYLE | Force S3 path style (optional) | Boolean | false |
| GOOGLE_CLOUD_STORAGE_CREDENTIAL | Google Cloud Service Account Key | String | |
| GOOGLE_CLOUD_STORAGE_PROJ_ID | Google Cloud Project ID | String | |
| GOOGLE_CLOUD_STORAGE_BUCKET_NAME | Google Cloud Storage Bucket Name | String | |
| GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS | Type of Access | Boolean | true |
For Debugging and Logs
| Variable | Description | Type | |
|---|---|---|---|
| DEBUG | Print logs from components | Boolean | |
| LOG_PATH | Location where log files are stored | String | AiMicromind/packages/server/logs |
| LOG_LEVEL | Different levels of logs | Enum String: error, info, verbose, debug | info |
DEBUG: if set to true, will print logs to terminal/console:
 (3).png)
LOG_LEVEL: Different log levels for loggers to be saved. Can be error, info, verbose, or debug. By default it is set to info, only logger.info will be saved to the log files. If you want to have complete details, set to debug.
 (4).png)
server-requests.log.jsonl - logs every request sent to AiMicromind
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)
server.log - logs general actions on AiMicromind
 (4).png)
server-error.log - logs error with stack trace
Logs Streaming S3
When STORAGE_TYPE env variable is set to s3 , logs will be automatically streamed and stored to S3. New log file will be created hourly, enabling easier debugging.
Logs Streaming GCS
When STORAGE_TYPE env variable is set to gcs , logs will be automatically streamed to Google Cloud Logging.
For Credentials
AiMicromind store your third party API keys as encrypted credentials using an encryption key.
By default, a random encryption key will be generated when starting up the application and stored under a file path. This encryption key is then retrieved everytime to decrypt the credentials used within a chatflow. For example, your OpenAI API key, Pinecone API key, etc.
You can configure to use AWS Secret Manager to store the encryption key instead.
| Variable | Description | Type | Default |
|---|---|---|---|
| SECRETKEY_STORAGE_TYPE | How to store the encryption key | Enum String: local, aws | local |
| SECRETKEY_PATH | Local file path where encryption key is saved | String | AiMicromind/packages/server |
| AIMICROMIND_SECRETKEY_OVERWRITE | Encryption key to be used instead of the existing key | String | |
| SECRETKEY_AWS_ACCESS_KEY | String | ||
| SECRETKEY_AWS_SECRET_KEY | String | ||
| SECRETKEY_AWS_REGION | String |
For some reasons, sometimes encryption key might be re-generated or the stored path was changed, this will cause errors like - Credentials could not be decrypted.
To avoid this, you can set your own encryption key as AIMICROMIND_SECRETKEY_OVERWRITE, so that the same encryption key will be used everytime. There is no restriction on the format, you can set it as any text that you want, or the same as your AIMICROMIND_PASSWORD.
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png)
{% hint style="info" %} Credential API Key returned from the UI is not the same length as your original Api Key that you have set. This is a fake prefix string that prevents network spoofing, that's why we are not returning the Api Key back to UI. However, the correct Api Key will be retrieved and used during your interaction with the chatflow. {% endhint %}
For Models
In some cases, you might want to use custom model on the existing Chat Model and LLM nodes, or restrict access to only certain models.
By default, aimicromindpulls the model list from here. However user can create their own models.json file and specify the file path:
| Variable | Description | Type | Default |
|---|---|---|---|
| MODEL_LIST_CONFIG_JSON | Link to load list of models from your models.json config file | String | https://github.com/operativestech/AiMicroMind_Platform_2025/main/packages/components/models.json |
For API Keys
Users can create multiple API keys within aimicromind in order to authenticate with the APIs. By default, keys get stored as a JSON file to your local file path. User can change the behavior by using the below env variable.
| Variable | Description | Type | Default |
|---|---|---|---|
| APIKEY_STORAGE_TYPE | Method to store API keys | Enum string: json, db | json |
| APIKEY_PATH | Location where the API keys are stored when APIKEY_STORAGE_TYPE is unspecified or json | String | AiMicromind/packages/server |
Using db as storage type will store the API keys to database instead of a local JSON file.
.png)
aimicromind API Keys
For Built-In and External Dependencies
There are certain nodes/features within aimicromind that allow user to run Javascript code. For security reasons, by default it only allow certain dependencies. It's possible to lift that restriction for built-in and external modules by setting the following environment variables:
| Variable | Description | |
|---|---|---|
| TOOL_FUNCTION_BUILTIN_DEP | NodeJS built-in modules to be used for Tool Function | String |
| TOOL_FUNCTION_EXTERNAL_DEP | External modules to be used for Tool Function | String |
{% code title=".env" %}
# Allows usage of all builtin modules
TOOL_FUNCTION_BUILTIN_DEP=*
# Allows usage of only fs
TOOL_FUNCTION_BUILTIN_DEP=fs
# Allows usage of only crypto and fs
TOOL_FUNCTION_BUILTIN_DEP=crypto,fs
# Allow usage of external npm modules.
TOOL_FUNCTION_EXTERNAL_DEP=axios,moment
{% endcode %}
Examples of how to set environment variables
NPM
You can set all these variables when running aimicromind using npx. For example:
npx aimicromind start --PORT=3000 --DEBUG=true
Docker
docker run -d -p 5678:5678 aimicromind\
-e DATABASE_TYPE=postgresdb \
-e DATABASE_PORT=<POSTGRES_PORT> \
-e DATABASE_HOST=<POSTGRES_HOST> \
-e DATABASE_NAME=<POSTGRES_DATABASE_NAME> \
-e DATABASE_USER=<POSTGRES_USER> \
-e DATABASE_PASSWORD=<POSTGRES_PASSWORD> \
Docker Compose
You can set all these variables in the .env file inside docker folder. Refer to .env.example file.