nm2k
August 8, 2021, 9:12pm
1
There are a few topics with similar issues already, however, I couldn’t find my case:
frappe_docker runs well: 13 containers online
site-creator logs end with:
my network topology:
domain points to a public peer, which redirects traffic (proxy_pass) through VPN to a server running a frappe_docker instance
domain pings from all machines.
DNS for LAN and VPN is resolved through a single router
What might be my problem?
Is the domain name and the name of the site created under bench same?
Is 404 from traefik or from served frappe site?
nm2k
August 9, 2021, 8:15am
3
Yes, domain=site name.
You’ll need to help me with your second question. What’s the difference between the two?
Console returns strange stuff:
Get request to the domain;
Get request to a vpn address.
Obviously, get request to the vpn address fails outside the vpn network while inside returns “unsafe to proceed” message and 404.
I bet the problem is routing.
Following error means bench is accessible but it is not able to serve the site.
Not Found
site.domain.tld does not exist
Following page means traefik is not serving erpnext
404 page not found
Then try not using traefik and directly expose the erpnext-nginx container with port “80:80” ?
Follow this issue, Help wanted for making docker easy to run · Issue #353 · frappe/frappe_docker · GitHub
Give me access to server, I generally setup such sites as community help every week.
If you wish to pay for setup, contact me at castlecraft.in
nm2k
August 11, 2021, 8:13pm
7
Thank you for your kind proposal. Personally I like to understand how things work and also it might be beneficial for broader community to find a solution for a setup similar to mine, since it is not uncommon.
Thus, I would appreciate if you look at modified docker-compse.yml and provide me with your comments if I missed smth. Probably, I did))
version : " 3 " services : # traefik: # image: "traefik:v2.2" # command: # - "--log.level=DEBUG" # - "--providers.docker=true" # - "--providers.docker.exposedbydefault=false" # - "--entrypoints.web.address=:80" # - "--entrypoints.websecure.address=:443" # - "--certificatesresolvers.myresolver.acme.httpchallenge=true" # - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" # - "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}" # - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt / acme.json" # labels: # # enable traefik # - "traefik.enable=true" # # global redirect to https for production only # - "${HTTPS_REDIRECT_RULE_LABEL}" # - "${HTTPS_REDIRECT_ENTRYPOINT_LABEL}" # - "${HTTPS_REDIRECT_MIDDLEWARE_LABEL}" # middleware redirect for production only # - "${HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL}" # ports: # - "80:80" # - "443:443" # volumes: # - cert-vol:/letsencrypt # - / var / run / docker.sock:/var / run / docker.sock:ro # userns_mode: "host" erpnext-nginx : image : frappe/erpnext-nginx:${ERPNEXT_VERSION} restart : on-failure environment : - FRAPPE_PY=erpnext-python - FRAPPE_PY_PORT=8000 - FRAPPE_SOCKETIO=frappe-socketio - SOCKETIO_PORT=9000 - SKIP_NGINX_TEMPLATE_GENERATION=${SKIP_NGINX_TEMPLATE_GENERATION} labels : # - "traefik.enable=true" # - "traefik.http.routers.erpnext-nginx.rule=Host(${SITES})" - " ${ENTRYPOINT_LABEL} " - " ${CERT_RESOLVER_LABEL} " # - "traefik.http.services.erpnext-nginx.loadbalancer.server.port=80" volumes : - sites-vol:/var/www/html/sites:rw - assets-vol:/assets:rw ports : - " 80:80 " erpnext-python : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure environment : - MARIADB_HOST=${MARIADB_HOST} - REDIS_CACHE=redis-cache:6379 - REDIS_QUEUE=redis-queue:6379 - REDIS_SOCKETIO=redis-socketio:6379 - SOCKETIO_PORT=9000 - AUTO_MIGRATE=1 - WORKER_CLASS=${WORKER_CLASS} volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - assets-vol:/home/frappe/frappe-bench/sites/assets:rw frappe-socketio : image : frappe/frappe-socketio:${FRAPPE_VERSION} restart : on-failure depends_on : - redis-socketio volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-default : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-short : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker environment : - WORKER_TYPE=short depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-long : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker environment : - WORKER_TYPE=long depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw erpnext-schedule : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : schedule depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw redis-cache : image : redis:latest restart : on-failure volumes : - redis-cache-vol:/data redis-queue : image : redis:latest restart : on-failure volumes : - redis-queue-vol:/data redis-socketio : image : redis:latest restart : on-failure volumes : - redis-socketio-vol:/data mariadb : image : mariadb:10.3 restart : on-failure environment : - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes : - ./installation/frappe-mariadb.cnf:/etc/mysql/conf.d/frappe.cnf - mariadb-vol:/var/lib/mysql site-creator : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : " no " command : new depends_on : - erpnext-python environment : - SITE_NAME=${SITE_NAME} - DB_ROOT_USER=${DB_ROOT_USER} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - ADMIN_PASSWORD=${ADMIN_PASSWORD} - INSTALL_APPS=${INSTALL_APPS} volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rwvolumes : mariadb-vol : redis-cache-vol : redis-queue-vol : redis-socketio-vol : assets-vol : sites-vol : cert-vol : logs-vol :
Please format the code block. If someone has similar network setup and are using docker they will be able to help.
nm2k
August 14, 2021, 4:15pm
9
nginx config for reverse proxy:
location / {
proxy_pass http://localhost:8060;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_request_headers on;
}
docker-compose.yml:
version : " 3 " services : erpnext-nginx : image : frappe/erpnext-nginx:${ERPNEXT_VERSION} restart : on-failure environment : - FRAPPE_PY=erpnext-python - FRAPPE_PY_PORT=8000 - FRAPPE_SOCKETIO=frappe-socketio - SOCKETIO_PORT=9000 - LETSENCRYPT_HOST=${SITES} - VIRTUAL_HOST=${SITES} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} - SKIP_NGINX_TEMPLATE_GENERATION=${SKIP_NGINX_TEMPLATE_GENERATION} depends_on : - erpnext-python - frappe-socketio - erpnext-worker-default - erpnext-worker-long - erpnext-worker-short volumes : - sites-vol:/var/www/html/sites:rw - assets-vol:/assets:rw ports : - " 80:80 " erpnext-python : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure environment : - MARIADB_HOST=${MARIADB_HOST} - REDIS_CACHE=redis-cache:6379 - REDIS_QUEUE=redis-queue:6379 - REDIS_SOCKETIO=redis-socketio:6379 - SOCKETIO_PORT=9000 - AUTO_MIGRATE=1 - WORKER_CLASS=${WORKER_CLASS} volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - assets-vol:/home/frappe/frappe-bench/sites/assets:rw frappe-socketio : image : frappe/frappe-socketio:${FRAPPE_VERSION} restart : on-failure depends_on : - redis-socketio volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-default : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-short : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker environment : - WORKER_TYPE=short depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw erpnext-worker-long : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : worker environment : - WORKER_TYPE=long depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw erpnext-schedule : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : on-failure command : schedule depends_on : - redis-queue - redis-cache volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rw redis-cache : image : redis:latest restart : on-failure volumes : - redis-cache-vol:/data redis-queue : image : redis:latest restart : on-failure volumes : - redis-queue-vol:/data redis-socketio : image : redis:latest restart : on-failure volumes : - redis-socketio-vol:/data mariadb : image : mariadb:10.3 restart : on-failure environment : - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes : - ./installation/frappe-mariadb.cnf:/etc/mysql/conf.d/frappe.cnf - mariadb-vol:/var/lib/mysql site-creator : image : frappe/erpnext-worker:${ERPNEXT_VERSION} restart : " no " command : new depends_on : - erpnext-python environment : - SITE_NAME=${SITE_NAME} - DB_ROOT_USER=${DB_ROOT_USER} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - ADMIN_PASSWORD=${ADMIN_PASSWORD} - INSTALL_APPS=${INSTALL_APPS} volumes : - sites-vol:/home/frappe/frappe-bench/sites:rw - logs-vol:/home/frappe/frappe-bench/logs:rwvolumes : mariadb-vol : redis-cache-vol : redis-queue-vol : redis-socketio-vol : assets-vol : sites-vol : cert-vol : logs-vol :
1 Like