A modern AI chat application with advanced tool orchestration and OpenAI-compatible API proxy
10K+
A full-stack AI chat application with advanced tool orchestration and OpenAI-compatible API proxy
ChatForge is a production-ready AI chat application featuring a Next.js 15 frontend and Node.js backend. It acts as an OpenAI-compatible API proxy with enhanced capabilities including conversation persistence, server-side tool orchestration, and multi-provider support (OpenAI, Anthropic, Gemini).
# Download the compose file
curl -O https://raw.githubusercontent.com/qduc/chat/main/docker-compose.yml
# (Optional) Provide infrastructure secrets
echo "JWT_SECRET=change-me" > .env
# Start the stack
docker compose up -d
Visit http://localhost:3000, register your first user, then open Settings → Providers & Tools to enter your API key.
# Create a volume for data persistence
docker volume create chatforge-data
# Run the container
docker run -d \
--name chatforge \
-p 3000:3000 \
-v chatforge-data:/data \
-e JWT_SECRET=your-secret-here \
qduc/chatforge:latest
| Variable | Description | Default |
|---|---|---|
JWT_SECRET | Secret for JWT token signing (auto-generated if not set) | Random |
PORT | Port the application listens on | 3000 |
NODE_ENV | Node environment | production |
/data - SQLite database and uploaded files (persistent storage required)/app/logs - Application logs (optional)3000 - HTTP server (both API and UI)The production image uses a multi-stage build that:
The Express backend serves:
/api/* - REST API endpoints/* - Static frontend assetsFrontend:
Backend:
The container includes a built-in health check that monitors the /health endpoint:
# Check container health
docker inspect --format='{{.State.Health.Status}}' chatforge
Important: Always mount a volume to /data to persist:
chat.db)Without a volume, all data will be lost when the container is removed.
JWT_SECRET in production# Backup the database
docker cp chatforge:/data/chat.db ./backup-$(date +%Y%m%d).db
# Stop the container
docker stop chatforge
# Restore the database
docker cp ./backup-20250126.db chatforge:/data/chat.db
# Start the container
docker start chatforge
# Pull the latest image
docker pull qduc/chatforge:latest
# Stop and remove the old container
docker stop chatforge && docker rm chatforge
# Start a new container with the same configuration
docker run -d \
--name chatforge \
-p 3000:3000 \
-v chatforge-data:/data \
-e JWT_SECRET=your-secret-here \
qduc/chatforge:latest
linux/amd64linux/arm64This project is licensed under the MIT License - see the LICENSE file for details.
Note: This is a self-hosted application. You need to provide your own API keys for OpenAI, Anthropic, or Gemini through the Settings interface after deployment.
Content type
Image
Digest
sha256:9e71b326e…
Size
657.3 MB
Last updated
4 months ago
docker pull qduc/chat