ERPNext
ERPNext is a free, open-source ERP suite built on the Frappe framework. It covers accounting,
inventory, manufacturing, CRM, HR, projects, and more in a single web application. The easiest way
to run it is with the official frappe_docker images via Docker Compose.
Software included
Section titled “Software included”| Component | Version |
|---|---|
| ERPNext | 16.28.0 |
| MariaDB | 11.8 |
| Redis | 6.2 |
| Ubuntu | 24.04 LTS |
Environment variables
Section titled “Environment variables”Set these optionally when you deploy from the marketplace. Leave a field blank to have a secure value generated.
| Variable | Description |
|---|---|
SITE_NAME | ERPNext site name |
ADMIN_PASSWORD | ERPNext admin password |
Getting started
Section titled “Getting started”1. Connect to your VM
Section titled “1. Connect to your VM”ssh ubuntu@<your-vm-ip>2. Wait for first-boot configuration
Section titled “2. Wait for first-boot configuration”On the first boot, a setup script generates unique ERPNext and MariaDB passwords, starts the Docker Compose stack, and creates the initial site. This can take several minutes. Track progress:
journalctl -u erpnext-first-boot.service -fThe login message (MOTD) confirms when ERPNext is ready.
3. Verify ERPNext is running
Section titled “3. Verify ERPNext is running”cd /opt/erpnextdocker compose pscurl -fsS http://127.0.0.1:8080/login > /dev/null4. Access the ERPNext UI
Section titled “4. Access the ERPNext UI”Open a browser and navigate to:
http://<your-vm-ip>:8080Retrieve the generated credentials:
sudo cat /etc/erpnext/credentials.txt| Field | Value |
|---|---|
| Username | Administrator |
| Password | From /etc/erpnext/credentials.txt |
Complete the setup wizard after you sign in.
Managing ERPNext
Section titled “Managing ERPNext”# Check container statuscd /opt/erpnext && docker compose ps
# Restartcd /opt/erpnext && docker compose restart
# View logscd /opt/erpnext && docker compose logs -f| Path | Purpose |
|---|---|
/opt/erpnext/docker-compose.yml | Docker Compose configuration |
/opt/erpnext/.env | Stack version, ports, and passwords |
/etc/erpnext/credentials.txt | Generated login credentials |
Database, site, log, and Redis data persist in the db-data, sites, logs, and
redis-queue-data Docker volumes.
Security
Section titled “Security”Port 8080 is accessible on the VM’s network interface. UFW is enabled and allows SSH (port 22) and ERPNext (port 8080) by default.
To restrict the UI to a specific IP:
sudo ufw delete allow 8080/tcpsudo ufw allow from <trusted-ip> to any port 8080To access ERPNext without exposing port 8080, use an SSH tunnel:
First close the public port on the VM, since it is open by default:
sudo ufw delete allow 8080/tcp# Run this on your local machinessh -L 8080:localhost:8080 ubuntu@<your-vm-ip>
# Then open in your browserhttp://localhost:8080For production use, place ERPNext behind a reverse proxy so you can serve it on port 443 with a TLS certificate, then restrict direct access to port 8080.