Skip to content

Docker Installation & Deployment

🎯 Prerequisites

ResourceMinimumRecommended
CPU4 cores8 cores
RAM8 GiB16 GiB
Disk40 GiB100 GiB
Architecturex86_64 / ARM64
SoftwareDocker & Docker Compose installedDocker 24+, Docker Compose v2+

💡 Note: The recommended configuration of 8 cores and 16 GiB RAM provides good performance for production workloads.

🚀 Quick Start

1. Download and Setup

bash
git clone https://github.com/ModelEngine-Group/nexent.git
cd nexent/docker
cp .env.example .env # Configure environment variables

💡 Tip: If there are no special requirements, you can directly use .env.example for deployment without making any changes. If you need to configure voice models (STT/TTS), you will need to set the relevant parameters in .env. We will work on making this configuration available through the frontend soon—stay tuned.

2. Deployment Options

Run the following command to start deployment:

bash
bash deploy.sh

After executing this command, the system will provide two different versions for you to choose from:

Version Selection:

  • Speed version (Lightweight & Fast Deployment, Default): Quick startup of core features, suitable for individual users and small teams
  • Full version (Complete Feature Edition): Provides enterprise-level tenant management and resource isolation features, but takes longer to install, suitable for enterprise users

Deployment Modes:

  • Development mode (default): Exposes all service ports for debugging
  • Infrastructure mode: Only starts infrastructure services
  • Production mode: Only exposes port 3000 for security

Optional Components:

  • Terminal Tool: Enables openssh-server for AI agent shell command execution
  • Regional optimization: Mainland China users can use optimized image sources

⚠️ Important Notes

1️⃣ When deploying v1.8.0 or later for the first time, please pay special attention to the suadmin super administrator account information output in the Docker logs. This account has the highest system privileges, and the password is only displayed upon first generation. It cannot be viewed again later, so please be sure to save it securely.

This account is used for permission management only and cannot develop agents or create knowledge bases. Log in with this account and complete: Access tenant resources → Create tenant → Create tenant administrator, then log in with the tenant administrator account to use all features. For role permissions, see User Management.

2️⃣ Forgot to note the suadmin account password? Follow these steps:

bash
# Step 1: Delete su account record in supabase container
docker exec -it supabase-db-mini bash
psql -U postgres
select id, email from auth.users;
# Get the user_id of suadmin@nexent.com account
delete from auth.users where id = 'your_user_id';
delete from auth.identities where user_id = 'your_user_id';

# Step 2: Delete su account record in nexent database
docker exec -it nexent-postgresql bash
psql -U root -d nexent
delete from nexent.user_tenant_t where user_id = 'your_user_id';

# Step 3: Redeploy and record the su account password

3. Access Your Installation

When deployment completes successfully:

  1. Open http://localhost:3000 in your browser
  2. Log in with the super administrator account
  3. Access tenant resources → Create tenant and tenant administrator
  4. Log in with the tenant administrator account
  5. Refer to the User Guide to develop agents

🏗️ Service Architecture

Nexent uses a microservices architecture deployed via Docker Compose.

Application Services:

ServiceDescriptionDefault Port
nexentBackend service5010
nexent-webWeb frontend3000
nexent-data-processData processing service5012
nexent-northboundNorthbound API service5013

Infrastructure Services:

ServiceDescription
nexent-postgresqlRelational database
nexent-elasticsearchSearch and indexing engine
nexent-minioS3-compatible object storage
redisCaching layer

Supabase Services (Full Version Only):

ServiceDescription
supabase-kongAPI Gateway
supabase-authAuthentication service
supabase-db-miniDatabase service

Optional Services:

ServiceDescription
nexent-openssh-serverSSH terminal for AI agents

Internal services communicate using the Docker internal network.

💾 Data Persistence

Nexent uses Docker volumes for data persistence:

Data TypeVolume NameDefault Host Path
PostgreSQLnexent-postgresql-data{dataDir}/postgresql
Elasticsearchnexent-elasticsearch-data{dataDir}/elasticsearch
Redisnexent-redis-data{dataDir}/redis
MinIOnexent-minio-data{dataDir}/minio
Supabase DB (Full)nexent-supabase-db-data{dataDir}/supabase-db

Default dataDir is ./volumes (configurable via ROOT_DIR in .env).

🔌 Port Mapping

ServiceInternal PortExternal PortDescription
Web Interface30003000Main application access
Backend API50105010Backend service
Data Processing50125012Data processing API
Northbound API50135013Northbound interface service (A2A/MCP integration)
PostgreSQL54325434Database connection
Elasticsearch92009210Search engine API
MinIO API90009010Object storage API
MinIO Console90019011Storage management UI
Redis63796379Cache service
SSH Server222222Terminal tool access

For complete port mapping details, see our Dev Container Guide.

🔧 Advanced Configuration

Northbound Interface Configuration (NORTHBOUND_EXTERNAL_URL)

If you need to use any of the following features, configure the NORTHBOUND_EXTERNAL_URL environment variable:

  1. A2A Protocol Integration - Third-party systems calling Nexent agents via A2A protocol
  2. MCP Tool Access - Using MCP protocol to access Nexent resources like documents

Configuration:

Set the publicly accessible URL in your .env file:

bash
# Format: protocol://host:port/api
# Local development (default):
NORTHBOUND_EXTERNAL_URL=http://localhost:5013/api

# Production - use your public IP or domain:
NORTHBOUND_EXTERNAL_URL=http://your-public-ip:5013/api
# or
NORTHBOUND_EXTERNAL_URL=https://api.yourdomain.com/api

Important: The URL must include the /api suffix because the Northbound service uses FastAPI's root_path="/api" configuration.

💡 Need Help

🔧 Build from Source

Want to build from source or add new features? Check the Docker Build Guide for step-by-step instructions.

For detailed setup instructions and customization options, see our Developer Guide.