Hello,
I am using synology to install erpnext using docker-compose as following:
.env files with following
docker-compose as following:
version: "3.9"
services:
redis-queue:
image: redis
container_name: ERPNext-REDIS-QUEUE
hostname: redis-queue
mem_limit: 256m
mem_reservation: 50m
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/erpnext/redis-queue:/data:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
redis-cache:
image: redis
container_name: ERPNext-REDIS-CACHE
hostname: redis-cache
mem_limit: 256m
mem_reservation: 50m
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/erpnext/redis-cache:/data:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
redis-socketio:
image: redis
container_name: ERPNext-REDIS-SOCKETIO
hostname: redis-socketio
mem_limit: 256m
mem_reservation: 50m
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/erpnext/redis-socketio:/data:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
db:
image: mariadb:10.8-jammy
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
container_name: ERPNext-DB
hostname: erpnext-db
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -u root -pmysqlrootpassword | grep 'mysqld is alive' || exit 1"]
interval: 10s
timeout: 5s
retries: 30
start_period: 30s
volumes:
- /volume1/docker/erpnext/db:/var/lib/mysql:rw
- /etc/localtime:/etc/localtime:ro
environment:
MYSQL_ROOT_PASSWORD: mysqlrootpassword
restart: on-failure:5
configurator:
image: knimer/erpnext:${ERPNEXT_VERSION}
entrypoint:
- bash
- -c
command:
- >
ls -1 apps > sites/apps.txt;
bench set-config -g db_host erpnext-db;
bench set-config -gp db_port 3306;
bench set-config -g redis_cache "redis://redis-cache";
bench set-config -g redis_queue "redis://redis-queue";
bench set-config -g redis_socketio "redis://redis-socketio";
bench set-config -gp socketio_port 9000;
container_name: ERPNext-CONFIGURATOR
hostname: configurator
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
environment:
DB_HOST: erpnext-db
DB_PORT: 3306
REDIS_CACHE: redis-cache
REDIS_QUEUE: redis-queue
REDIS_SOCKETIO: redis-socketio
SOCKETIO_PORT: 9000
restart: "no"
depends_on:
redis-queue:
condition: service_healthy
redis-cache:
condition: service_healthy
redis-socketio:
condition: service_healthy
db:
condition: service_healthy
backend:
image: knimer/erpnext:${ERPNEXT_VERSION}
container_name: ERPNext-BACKEND
hostname: backend
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
websocket:
image: knimer/erpnext:${ERPNEXT_VERSION}
command:
- node
- /home/frappe/frappe-bench/apps/frappe/socketio.js
container_name: ERPNext-WEBOSCKET
hostname: websocket
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
create-site:
image: knimer/erpnext:${ERPNEXT_VERSION}
entrypoint:
- bash
- -c
command:
- >
wait-for-it -t 480 erpnext-db:3306;
wait-for-it -t 480 redis-cache:6379;
wait-for-it -t 480 redis-queue:6379;
wait-for-it -t 480 redis-socketio:6379;
export start=`date +%s`;
until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \
[[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \
[[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]];
do
echo "Waiting for sites/common_site_config.json to be created";
sleep 5;
if (( `date +%s`-start > 120 )); then
echo "could not find sites/common_site_config.json with required keys";
exit 1
fi
done;
echo "sites/common_site_config.json found";
bench set-config -g developer_mode 1;
bench new-site ebcaccount \
--no-mariadb-socket \
--mariadb-root-password=mysqlrootpassword \
--admin-password=admin \
--install-app=erpnext \
--install-app=hrms \
--install-app=print_designer \
--set-default;
container_name: ERPNext-CREATE-SITE
hostname: create-site
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: "no"
depends_on:
configurator:
condition: service_completed_successfully
queue-default:
image: knimer/erpnext:${ERPNEXT_VERSION}
command: bench worker --queue default
container_name: ERPNext-QUEUE-DEFAULT
hostname: queue-default
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
queue-long:
image: knimer/erpnext:${ERPNEXT_VERSION}
command: bench worker --queue long
container_name: ERPNext-QUEUE-LONG
hostname: queue-long
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
queue-short:
image: knimer/erpnext:${ERPNEXT_VERSION}
command: bench worker --queue short
container_name: ERPNext-QUEUE-SHORT
hostname: queue-short
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
scheduler:
image: knimer/erpnext:${ERPNEXT_VERSION}
command: bench schedule
container_name: ERPNext-SCHEDULER
hostname: scheduler
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /etc/localtime:/etc/localtime:ro
restart: on-failure:5
depends_on:
configurator:
condition: service_completed_successfully
frontend:
image: knimer/erpnext:${ERPNEXT_VERSION}
command:
- nginx-entrypoint.sh
container_name: ERPNext-FRONTEND
hostname: frontend
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
ports:
- 8345:8080
volumes:
- /volume1/docker/erpnext/sites:/home/frappe/frappe-bench/sites:rw
- /volume1/docker/erpnext/logs:/home/frappe/frappe-bench/logs:rw
- /volume1/docker/erpnext/empty-default/default:/etc/nginx/sites-enabled/default:ro
- /etc/localtime:/etc/localtime:ro
environment:
BACKEND: backend:8000
FRAPPE_SITE_NAME_HEADER: elaccount
SOCKETIO: websocket:9000
UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1
UPSTREAM_REAL_IP_HEADER: X-Forwarded-For
UPSTREAM_REAL_IP_RECURSIVE: "off"
PROXY_READ_TIMOUT: 120
CLIENT_MAX_BODY_SIZE: 50m
restart: on-failure:5
depends_on:
backend:
condition: service_started
websocket:
condition: service_started
I am able to login and create company based on the above setup.
when i create backup, it create backup successfully too.
docker exec -it ERPNext-BACKEND bash
bench --site Frappe backup --with-files
it created 4 backup files.
however, i have difficulties restoring the data.
bench --site ebcaccount restore \
/home/frappe/frappe-bench/sites/ebcaccount/private/backups/20250619_015623-ebcaccount-database.sql.gz \
--with-public-files /home/frappe/frappe-bench/sites/ebcaccount/private/backups/20250619_015623-ebcaccount-files.tar \
--with-private-files /home/frappe/frappe-bench/sites/Frappe/private/backups/20250619_015623-ebcaccount-private-files.tar \
--db-root-password mysqlrootpassword
whenever i try to restore data, it is stuck and does nothing. i try to restore back to my existing ebcaccount data, it is stuck.
Thus, i create another site called “elaccount” and after it is setup, i try to restore backup to the newly created site, it is stuck too . as shown in my screenshot below.
may i know where can i check the log of backup / or to check if it is even running the restore?
it has been stuck at this status for more than 30 minutes. I have check youtube that an progress bar should appear to show the progress of restore, but it is not appearing in my case.
Please assist to advice if there is anythigng i have done wrongly.