Skip to content

Docker Compose Deployment

This guide introduces how to use Docker Compose for one-click deployment of the complete Hagicode system. This is the recommended deployment method, suitable for most users, especially for development, testing, and production environments.

To help you better understand the Docker Compose deployment process, we provide a detailed video tutorial:

Watch the video tutorial on Bilibili

Video Content Includes:

  • Complete demonstration of Docker Compose deployment process
  • Configuration file generation and modification instructions
  • Service startup and verification steps
  • Common issues and solutions

Video duration: approximately 15 minutes

Before starting, ensure your system has Docker and Docker Compose installed.

Download and install Docker Desktop for Windows

After installation, ensure Docker Desktop is running.

Download and install Docker Desktop for Mac

After installation, ensure Docker Desktop is running.

Install Docker using your package manager:

Install Docker on Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker.io docker-compose-plugin

After installation, start Docker service:

Terminal window
sudo systemctl start docker
sudo systemctl enable docker

After installation, run the following commands to verify Docker and Docker Compose are installed correctly:

Terminal window
docker --version
docker compose version

1. Generate Docker Compose Configuration File

Section titled “1. Generate Docker Compose Configuration File”
  1. Open Docker Compose Builder (standalone site)
  2. Fill in the configuration according to your needs:
    • Select API provider (Zhipu AI, Anthropic Official, or Custom API)
    • Configure ports, database, working directory, and other options
    • Select Image Source: Choose the appropriate image source based on your network environment
  3. Click the generate button to get the docker-compose.yml configuration
  4. Save the generated configuration as a docker-compose.yml file
  5. If needed, create a .env file to configure sensitive information

The generator supports three image source options:

Docker Hub

  • Image Address: newbe36524/hagicode:{tag}
  • Applicable Scenarios: Suitable for users with Docker Hub mirror acceleration
  • Advantages: Official image source, timely updates, stable access
  • Notes: Mirror acceleration may need to be configured in some regions

Azure Container Registry (ACR)

  • Image Address: hagicode.azurecr.io/hagicode:{tag}
  • Applicable Scenarios: Suitable for users unable to access Docker Hub locally
  • Advantages: Provides alternative image source, resolves network access issues
  • Notes: Images stay synchronized with Docker Hub, but may have brief delays

Alibaba Cloud Container Registry (ACR)

  • Image Address: registry.cn-hangzhou.aliyuncs.com/hagicode/hagicode:{tag}
  • Applicable Scenarios: Suitable for domestic users, stable and fast network access
  • Advantages: Alibaba Cloud domestic nodes, fast access speed, high stability
  • Notes: Alibaba ACR images stay synchronized with Docker Hub, usually within 30 minutes

Execute the following command in the directory where your docker-compose.yml is located:

Terminal window
docker compose up -d

This command will:

  • Download and start the PostgreSQL container
  • Download and start the Hagicode application container
  • Create and configure the network
  • Initialize the database connection

Check if containers are running:

Terminal window
docker compose ps

You should see both containers in “running” status.

To view all service logs:

Terminal window
# View all service logs
docker compose logs
# View Hagicode service logs
docker compose logs hagicode
# Real-time log following
docker compose logs -f hagicode

If you need to modify the configuration (such as changing ports, switching API provider, etc.), you can:

  1. Regenerate new configuration using Docker Compose Builder (standalone site)
  2. Manually edit docker-compose.yml and .env files
  3. Restart services to make configuration take effect:
Terminal window
docker compose restart

After successful service startup, access through your browser:

http://localhost:45000

If you need to connect directly to the PostgreSQL database, you can use the docker exec command to enter the container:

Terminal window
# Enter PostgreSQL container and connect to database
docker exec -it hagicode-postgres psql -U postgres -d hagicode

Container Connection Information:

  • Host: localhost or 127.0.0.1 (inside container)
  • Port: 5432 (PostgreSQL default port)
  • Username: postgres
  • Password: postgres
  • Database: hagicode

Now you have successfully deployed Hagicode, please continue Create Your First Project to start using.

If you prefer the desktop application deployment method, please refer to Desktop Installation Guide.