diff --git a/docker-compose.yml b/docker-compose.yml index eed231c..3ba38c8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -123,7 +123,7 @@ services: environment: - MYSQL_ROOT_PASSWORD=${DB_MARIADB_PASSWORD} volumes: - - ./installation/frappe-mariadb.cnf:/etc/mysql/conf.d/frappe.cnf + - ./src/installation/frappe-mariadb.cnf:/etc/mysql/conf.d/frappe.cnf - ${VOLUMES_PATH_PREFIX}/mariadb-vol:/var/lib/mysql site-creator: diff --git a/src/docker-compose.yml b/src/docker-compose.yml new file mode 100644 index 0000000..5ca8569 --- /dev/null +++ b/src/docker-compose.yml @@ -0,0 +1,174 @@ +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 + + 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:rw + +volumes: + mariadb-vol: + redis-cache-vol: + redis-queue-vol: + redis-socketio-vol: + assets-vol: + sites-vol: + cert-vol: + logs-vol: diff --git a/src/filelist b/src/filelist index 341240a..088e0d8 100644 --- a/src/filelist +++ b/src/filelist @@ -1,3 +1,2 @@ docker-compose.yml -script/test.sh -docker \ No newline at end of file +installation \ No newline at end of file diff --git a/src/installation/docker-compose-common.yml b/src/installation/docker-compose-common.yml new file mode 100644 index 0000000..ede3abe --- /dev/null +++ b/src/installation/docker-compose-common.yml @@ -0,0 +1,35 @@ +version: '3' + +services: + 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: + - ./frappe-mariadb.cnf:/etc/mysql/conf.d/frappe.cnf + - mariadb-vol:/var/lib/mysql + +volumes: + mariadb-vol: + redis-cache-vol: + redis-queue-vol: + redis-socketio-vol: diff --git a/src/installation/docker-compose-custom.yml b/src/installation/docker-compose-custom.yml new file mode 100644 index 0000000..9dacfd9 --- /dev/null +++ b/src/installation/docker-compose-custom.yml @@ -0,0 +1,123 @@ +version: '3' + +services: + [app]-assets: + image: [app]-assets + build: + context: ../build/[app]-nginx + restart: on-failure + environment: + - FRAPPE_PY=[app]-python + - FRAPPE_PY_PORT=8000 + - FRAPPE_SOCKETIO=frappe-socketio + - SOCKETIO_PORT=9000 + - LETSENCRYPT_HOST=${SITES} + - VIRTUAL_HOST=${SITES} + - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} + depends_on: + - [app]-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + links: + - [app]-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + volumes: + - sites-vol:/var/www/html/sites:rw + - assets-vol:/assets:rw + + [app]-python: + image: [app]-worker + build: + context: ../build/[app]-worker + 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 + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs: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 + links: + - redis-socketio + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-default: + image: [app]-worker + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-short: + image: [app]-worker + restart: on-failure + command: worker + environment: + - WORKER_TYPE=short + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-long: + image: [app]-worker + restart: on-failure + command: worker + environment: + - WORKER_TYPE=long + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-schedule: + image: [app]-worker + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + +volumes: + assets-vol: + sites-vol: + logs-vol: diff --git a/src/installation/docker-compose-erpnext.yml b/src/installation/docker-compose-erpnext.yml new file mode 100644 index 0000000..1f769dd --- /dev/null +++ b/src/installation/docker-compose-erpnext.yml @@ -0,0 +1,120 @@ +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} + depends_on: + - erpnext-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + links: + - erpnext-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + volumes: + - sites-vol:/var/www/html/sites:rw + - assets-vol:/assets:rw + + 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 + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - assets-vol:/home/frappe/frappe-bench/sites/assets:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-socketio: + image: frappe/frappe-socketio:${FRAPPE_VERSION} + restart: on-failure + depends_on: + - redis-socketio + links: + - redis-socketio + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-default: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-short: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=short + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-long: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=long + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-schedule: + image: frappe/erpnext-worker:${ERPNEXT_VERSION} + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + +volumes: + assets-vol: + sites-vol: + logs-vol: diff --git a/src/installation/docker-compose-frappe.yml b/src/installation/docker-compose-frappe.yml new file mode 100644 index 0000000..afd661b --- /dev/null +++ b/src/installation/docker-compose-frappe.yml @@ -0,0 +1,120 @@ +version: '3' + +services: + frappe-nginx: + image: frappe/frappe-nginx:${FRAPPE_VERSION} + restart: on-failure + environment: + - FRAPPE_PY=frappe-python + - FRAPPE_PY_PORT=8000 + - FRAPPE_SOCKETIO=frappe-socketio + - SOCKETIO_PORT=9000 + - LETSENCRYPT_HOST=${SITES} + - VIRTUAL_HOST=${SITES} + - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} + depends_on: + - frappe-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + links: + - frappe-python + - frappe-socketio + - frappe-worker-default + - frappe-worker-long + - frappe-worker-short + volumes: + - sites-vol:/var/www/html/sites:rw + - assets-vol:/assets:rw + + frappe-python: + image: frappe/frappe-worker:${FRAPPE_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 + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs: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 + links: + - redis-socketio + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-default: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-short: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=short + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-worker-long: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=long + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + + frappe-schedule: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + - logs-vol:/home/frappe/frappe-bench/logs:rw + +volumes: + assets-vol: + sites-vol: + logs-vol: \ No newline at end of file diff --git a/src/installation/docker-compose-networks.yml b/src/installation/docker-compose-networks.yml new file mode 100644 index 0000000..377f01d --- /dev/null +++ b/src/installation/docker-compose-networks.yml @@ -0,0 +1,6 @@ +version: '3' + +networks: + default: + external: + name: webproxy diff --git a/src/installation/erpnext-publish.yml b/src/installation/erpnext-publish.yml new file mode 100644 index 0000000..6975442 --- /dev/null +++ b/src/installation/erpnext-publish.yml @@ -0,0 +1,6 @@ +version: "3" + +services: + erpnext-nginx: + ports: + - "80:80" diff --git a/src/installation/frappe-mariadb.cnf b/src/installation/frappe-mariadb.cnf new file mode 100644 index 0000000..83b2c70 --- /dev/null +++ b/src/installation/frappe-mariadb.cnf @@ -0,0 +1,7 @@ +[mysqld] +character-set-client-handshake = FALSE +character-set-server = utf8mb4 +collation-server = utf8mb4_unicode_ci + +[mysql] +default-character-set = utf8mb4 diff --git a/src/installation/frappe-postgresql/docker-compose.yml b/src/installation/frappe-postgresql/docker-compose.yml new file mode 100644 index 0000000..8f479aa --- /dev/null +++ b/src/installation/frappe-postgresql/docker-compose.yml @@ -0,0 +1,166 @@ +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 + + frappe-nginx: + image: frappe/frappe-nginx:${FRAPPE_VERSION} + restart: on-failure + environment: + - FRAPPE_PY=frappe-python + - FRAPPE_PY_PORT=8000 + - FRAPPE_SOCKETIO=frappe-socketio + - SOCKETIO_PORT=9000 + labels: + - "traefik.enable=true" + - "traefik.http.routers.frappe-nginx.rule=Host(${SITES})" + - "${ENTRYPOINT_LABEL}" + - "${CERT_RESOLVER_LABEL}" + - "traefik.http.services.frappe-nginx.loadbalancer.server.port=80" + volumes: + - sites-vol:/var/www/html/sites:rw + - assets-vol:/assets:rw + + frappe-python: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + environment: + - POSTGRES_HOST=${POSTGRES_HOST} + - DB_PORT=5432 + - REDIS_CACHE=redis-cache:6379 + - REDIS_QUEUE=redis-queue:6379 + - REDIS_SOCKETIO=redis-socketio:6379 + - SOCKETIO_PORT=9000 + - AUTO_MIGRATE=1 + 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 + + frappe-worker-default: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + + frappe-worker-short: + image: frappe/frappe-worker:${FRAPPE_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 + + frappe-worker-long: + image: frappe/frappe-worker:${FRAPPE_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 + + frappe-schedule: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + volumes: + - sites-vol:/home/frappe/frappe-bench/sites: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 + + postgresql: + image: postgres:11.8 + restart: on-failure + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + volumes: + - postgresql-vol:/var/lib/postgresql/data + + site-creator: + image: frappe/frappe-worker:${FRAPPE_VERSION} + restart: "no" + command: new + depends_on: + - frappe-python + environment: + - POSTGRES_HOST=${POSTGRES_HOST} + - SITE_NAME=${SITE_NAME} + - DB_ROOT_USER=${DB_ROOT_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - ADMIN_PASSWORD=${ADMIN_PASSWORD} + - INSTALL_APPS=${INSTALL_APPS} + volumes: + - sites-vol:/home/frappe/frappe-bench/sites:rw + +volumes: + postgresql-vol: + redis-cache-vol: + redis-queue-vol: + redis-socketio-vol: + assets-vol: + sites-vol: + cert-vol: diff --git a/src/installation/frappe-postgresql/env-local b/src/installation/frappe-postgresql/env-local new file mode 100644 index 0000000..14a0d12 --- /dev/null +++ b/src/installation/frappe-postgresql/env-local @@ -0,0 +1,14 @@ +LETSENCRYPT_EMAIL=email@example.com +FRAPPE_VERSION=edge +POSTGRES_HOST=postgresql +POSTGRES_PASSWORD=admin +SITE_NAME=mysite.localhost +SITES=`mysite.localhost` +DB_ROOT_USER=postgres +ADMIN_PASSWORD=admin +ENTRYPOINT_LABEL=traefik.http.routers.erpnext-nginx.entrypoints=web +CERT_RESOLVER_LABEL=erpnext.local.no-cert-resolver +HTTPS_REDIRECT_RULE_LABEL=erpnext.local.no-redirect-rule +HTTPS_REDIRECT_ENTRYPOINT_LABEL=erpnext.local.no-entrypoint +HTTPS_REDIRECT_MIDDLEWARE_LABEL=erpnext.local.no-middleware +HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL=erpnext.local-no-redirect-middleware diff --git a/src/installation/frappe-postgresql/env-production b/src/installation/frappe-postgresql/env-production new file mode 100644 index 0000000..689f033 --- /dev/null +++ b/src/installation/frappe-postgresql/env-production @@ -0,0 +1,14 @@ +LETSENCRYPT_EMAIL=email@example.com +FRAPPE_VERSION=edge +POSTGRES_HOST=postgresql +POSTGRES_PASSWORD=admin +SITE_NAME=erp.example.com +SITES=`erp.example.com` +DB_ROOT_USER=postgres +ADMIN_PASSWORD=admin +ENTRYPOINT_LABEL=traefik.http.routers.erpnext-nginx.entrypoints=websecure +CERT_RESOLVER_LABEL=traefik.http.routers.erpnext-nginx.tls.certresolver=myresolver +HTTPS_REDIRECT_RULE_LABEL=traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`) +HTTPS_REDIRECT_ENTRYPOINT_LABEL=traefik.http.routers.http-catchall.entrypoints=web +HTTPS_REDIRECT_MIDDLEWARE_LABEL=traefik.http.routers.http-catchall.middlewares=redirect-to-https +HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL=traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https diff --git a/src/installation/frappe-publish.yml b/src/installation/frappe-publish.yml new file mode 100644 index 0000000..a3f4caa --- /dev/null +++ b/src/installation/frappe-publish.yml @@ -0,0 +1,6 @@ +version: "3" + +services: + frappe-nginx: + ports: + - "80:80"