diff --git a/.gitignore b/.gitignore index 4d67604d..502c3673 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,7 @@ *.code-workspace + +# Environment Variables +.env + +# mounted volume +sites diff --git a/installation/docker-compose-common.yml b/installation/docker-compose-common.yml new file mode 100644 index 00000000..ede3abe1 --- /dev/null +++ b/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/installation/docker-compose-erpnext.yml b/installation/docker-compose-erpnext.yml new file mode 100644 index 00000000..a62b0f33 --- /dev/null +++ b/installation/docker-compose-erpnext.yml @@ -0,0 +1,111 @@ +version: '3' + +services: + erpnext-assets: + image: frappe/erpnext-assets:${VERSION} + restart: on-failure + environment: + - FRAPPE_PY=erpnext-python + - FRAPPE_PY_PORT=8000 + - FRAPPE_SOCKETIO=frappe-socketio + - FRAPPE_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:/var/www/html/sites:rw + - assets-vol:/assets:rw + + erpnext-python: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + environment: + - MARIADB_HOST=mariadb + - REDIS_CACHE=redis-cache:6379 + - REDIS_QUEUE=redis-queue:6379 + - REDIS_SOCKETIO=redis-socketio:6379 + - SOCKETIO_PORT=9000 + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + - assets-vol:/home/frappe/frappe-bench/sites/assets:rw + + frappe-socketio: + image: frappe/frappe-socketio:${VERSION} + restart: on-failure + depends_on: + - redis-socketio + links: + - redis-socketio + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-default: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-short: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=short + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-long: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=long + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-schedule: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + +volumes: + assets-vol: diff --git a/installation/docker-compose-frappe.yml b/installation/docker-compose-frappe.yml new file mode 100644 index 00000000..a41f3770 --- /dev/null +++ b/installation/docker-compose-frappe.yml @@ -0,0 +1,111 @@ +version: '3' + +services: + frappe-assets: + image: frappe/frappe-assets:${VERSION} + restart: on-failure + environment: + - FRAPPE_PY=frappe-python + - FRAPPE_PY_PORT=8000 + - FRAPPE_SOCKETIO=frappe-socketio + - FRAPPE_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:/var/www/html/sites:rw + - assets-vol:/assets:rw + + frappe-python: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + environment: + - MARIADB_HOST=mariadb + - REDIS_CACHE=redis-cache:6379 + - REDIS_QUEUE=redis-queue:6379 + - REDIS_SOCKETIO=redis-socketio:6379 + - SOCKETIO_PORT=9000 + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + - assets-vol:/home/frappe/frappe-bench/sites/assets:rw + + frappe-socketio: + image: frappe/frappe-socketio:${VERSION} + restart: on-failure + depends_on: + - redis-socketio + links: + - redis-socketio + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-default: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-short: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=short + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-worker-long: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: worker + environment: + - WORKER_TYPE=long + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + + frappe-schedule: + image: frappe/frappe-worker:${VERSION} + restart: on-failure + command: schedule + depends_on: + - redis-queue + - redis-cache + links: + - redis-queue + - redis-cache + volumes: + - ./sites:/home/frappe/frappe-bench/sites:rw + +volumes: + assets-vol: diff --git a/installation/docker-compose-networks.yml b/installation/docker-compose-networks.yml new file mode 100644 index 00000000..377f01d2 --- /dev/null +++ b/installation/docker-compose-networks.yml @@ -0,0 +1,6 @@ +version: '3' + +networks: + default: + external: + name: webproxy diff --git a/installation/env-example b/installation/env-example new file mode 100644 index 00000000..66d9dedf --- /dev/null +++ b/installation/env-example @@ -0,0 +1,4 @@ +VERSION=edge +MYSQL_ROOT_PASSWORD=admin +SITES=your.domain.com +LETSENCRYPT_EMAIL=your.email@your.domain.com diff --git a/installation/frappe-mariadb.cnf b/installation/frappe-mariadb.cnf new file mode 100644 index 00000000..83b2c703 --- /dev/null +++ b/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