diff --git a/README.md b/README.md index 39f843eb..7088a599 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,13 @@ Everything about [Frappe](https://github.com/frappe/frappe) and [ERPNext](https://github.com/frappe/erpnext) in containers. +# First things first +I recommend adding the following to bashrc, profile or whatever loads on login, ssh etc..: + +```sh +export APPS_JSON_BASE64=$(base64 -w 0 /home/frappe/frappe_docker/apps.json) +``` + # Getting Started To get started you need [Docker](https://docs.docker.com/get-docker/), [docker-compose](https://docs.docker.com/compose/), and [git](https://docs.github.com/en/get-started/getting-started-with-git/set-up-git) setup on your machine. For Docker basics and best practices refer to Docker's [documentation](http://docs.docker.com). diff --git a/apps.json b/apps.json new file mode 100644 index 00000000..54e12739 --- /dev/null +++ b/apps.json @@ -0,0 +1,14 @@ +[ + { + "url": "https://github.com/frappe/erpnext", + "branch": "version-15" + }, + { + "url": "https://github.com/frappe/builder", + "branch": "master" + }, + { + "url": "https://github.com/digikwal/fieldmate", + "branch": "main" + } +] diff --git a/overrides/compose.traefik-ssl.yaml b/overrides/compose.traefik-ssl.yaml index b83cb8e4..bca47fee 100644 --- a/overrides/compose.traefik-ssl.yaml +++ b/overrides/compose.traefik-ssl.yaml @@ -31,14 +31,19 @@ services: - --certificatesresolvers.le.acme.email=${EMAIL:?No EMAIL set} # Store the Let's Encrypt certificates in the mounted volume - --certificatesresolvers.le.acme.storage=/certificates/acme.json - # Use the TLS Challenge for Let's Encrypt - - --certificatesresolvers.le.acme.tlschallenge=true + # Use the DNS Challenge for Let's Encrypt + - --certificatesresolvers.le.acme.dnschallenge=true + - --certificatesresolvers.le.acme.dnschallenge.provider=cloudflare + - --certificatesresolvers.le.acme.dnschallenge.resolvers=1.1.1.1:53 # Enable the access log, with HTTP requests - --accesslog # Enable the Traefik log, for configurations and errors - --log # Enable the Dashboard and API - --api + environment: + - CF_API_EMAIL=${CF_API_EMAIL} + - CF_DNS_API_TOKEN=${CF_API_KEY} ports: - ${HTTPS_PUBLISH_PORT:-443}:443 volumes: diff --git a/stack.sh b/stack.sh new file mode 100755 index 00000000..05c438a8 --- /dev/null +++ b/stack.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +# Usage: ./stack.sh up -d or ./stack.sh down --remove-orphans + +set -e + +ACTION="$1" +shift +ARGS="$@" + +if [ "$ACTION" != "up" ] && [ "$ACTION" != "down" ]; then + echo "Usage: $0 up|down [extra docker compose flags]" + exit 1 +fi + +cd /home/frappe/frappe_docker || { + echo "Cannot find directory /home/frappe/frappe_docker" + exit 1 +} + +# Uncomment this block when using traefik container by frappe +# echo "==> Traefik $ACTION $ARGS" +# docker compose \ +# --project-name traefik \ +# --env-file /home/frappe/gitops/traefik.env \ +# -f overrides/compose.traefik.yaml \ +# -f overrides/compose.traefik-ssl.yaml \ +# "$ACTION" $ARGS + +# Uncomment this block when using mariadb container by frappe +echo "==> MariaDB $ACTION $ARGS" +docker compose \ + --project-name mariadb \ + --env-file /home/frappe/gitops/mariadb.env \ + -f overrides/compose.mariadb-shared.yaml \ + "$ACTION" $ARGS + +echo "==> ERPNext $ACTION $ARGS" +docker compose \ + --project-name erpnext-one \ + -f /home/frappe/gitops/erpnext-one.yaml \ + "$ACTION" $ARGS