zeekay abad9d336b track the name agents read, so a clone documents itself
LLM.md is the source and stays the source; CLAUDE.md is a symlink to it, so there is
one file and it cannot drift from itself. What changes is that the link is committed
rather than left for each checkout to recreate.

Left untracked, the doc was conditional on a step outside the repo: a fresh clone had
no CLAUDE.md, nothing loaded LLM.md, and an agent worked here having never read what
this repo already explains. Most of the estate already tracks theirs; this is the rest
agreeing with them.
2026-08-20 16:25:37 -07:00
2025-05-22 20:18:00 -05:00
2024-08-28 21:00:09 +02:00
2024-03-10 19:45:18 +05:30
2022-03-30 12:36:09 +05:30
2022-04-18 16:45:01 +05:30
2018-07-19 17:47:04 +05:30
2017-07-01 21:35:10 +05:30
2024-11-19 14:12:36 +05:30
2024-03-10 19:45:40 +05:30
2025-05-22 20:18:00 -05:00
2025-05-22 20:18:00 -05:00
2026-02-13 22:15:36 -08:00
2026-03-03 06:45:46 -08:00
2026-06-28 20:19:25 -07:00
2021-03-17 20:06:35 +05:30

erp

ERPNext Docker Deployment for Hanzo

Self-initializing Docker configurations for deploying ERPNext on Hanzo. No manual setup required - just deploy and go!

🌐 Environments

πŸ“ Files

  • compose.prod.yml - Production Docker Compose (self-initializing)
  • compose.dev.yml - Development Docker Compose (self-initializing)
  • ENVIRONMENT_VARIABLES.md - Environment variables reference
  • ROUTING_ARCHITECTURE.md - How routing and services work
  • HANZO_DEPLOYMENT.md - Detailed deployment guide

πŸš€ Quick Start

1. Set Environment Variables in Hanzo

In your Hanzo/Dokploy UI, set these two variables:

DB_PASSWORD=<generate_secure_password>
ADMIN_PASSWORD=<your_admin_password>

Generate a secure DB_PASSWORD:

openssl rand -base64 32

2. Deploy

  1. Create new app in Hanzo
  2. Choose "Docker Compose" deployment type
  3. Upload the appropriate compose file:
    • Production: compose.prod.yml
    • Development: compose.dev.yml
  4. Click Deploy

That's it! The system will automatically:

  • Configure all services
  • Create the database
  • Initialize the ERPNext site
  • Set up the scheduler
  • Configure production/development settings

3. Access Your Instance

Once deployment is complete (3-5 minutes):

Login with:

  • Username: Administrator
  • Password: The ADMIN_PASSWORD you set in Hanzo

πŸ”§ Architecture

Each environment includes:

  • MariaDB - Database server
  • Redis (2 instances) - Cache and queue management
  • Backend - Frappe/ERPNext application server
  • Frontend - Nginx web server (only service exposed via Traefik)
  • WebSocket - Real-time communication
  • Workers - Background job processors (short & long queues)
  • Scheduler - Scheduled task runner
  • Configurator - One-time setup service (auto-creates site)

Note: All traffic routes through the Frontend service. No additional domains or ports needed!

πŸ” Security Features

  • External hanzo-network for isolation
  • Traefik SSL/TLS termination
  • Content Security Policy headers
  • HTTPS redirect middleware
  • tmpfs for temporary files

πŸ“Š Resource Allocation

Production

  • MariaDB: 1GB buffer pool, 200 max connections
  • Redis Cache: 512MB max memory
  • Production mode enabled

Development

  • MariaDB: 512MB buffer pool, 100 max connections
  • Redis Cache: 256MB max memory
  • Developer mode enabled

πŸ› οΈ Maintenance

Backup

# Find your backend container
docker ps | grep backend

# Run backup
docker exec <backend-container> bench --site <domain> backup --with-files

Clear Cache

docker exec <backend-container> bench --site <domain> clear-cache

View Logs

# All services
docker-compose -f compose.prod.yml logs

# Specific service
docker logs <container-name> -f

Update ERPNext Version

  1. Update the image tag in compose file (all services use same version)
  2. Redeploy in Hanzo
  3. System will automatically run migrations

πŸ› Troubleshooting

Check Service Health

docker ps

Database Issues

Check the configurator logs - it handles all initialization:

docker logs <configurator-container>

Frontend Not Accessible

  • Verify Traefik labels in compose file
  • Check domain configuration in Hanzo
  • Ensure hanzo-network exists

πŸ“š Resources

S
Description
Free and Open Source Enterprise Resource Planning (ERP)
Readme GPL-3.0
1.3 GiB
Languages
Python 79.9%
JavaScript 17.5%
HTML 2%
SCSS 0.4%