[![Build Stable](https://github.com/frappe/frappe_docker/actions/workflows/build_stable.yml/badge.svg)](https://github.com/frappe/frappe_docker/actions/workflows/build_stable.yml) [![Build Develop](https://github.com/frappe/frappe_docker/actions/workflows/build_develop.yml/badge.svg)](https://github.com/frappe/frappe_docker/actions/workflows/build_develop.yml) Everything about [Frappe](https://github.com/frappe/frappe) and [ERPNext](https://github.com/frappe/erpnext) in containers. # 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). After that, clone this repo: ```sh git clone https://github.com/frappe/frappe_docker cd frappe_docker ``` ### Try in Play With Docker Try in PWD Wait for 5 minutes for ERPNext site to be created or check `create-site` container logs before opening browser on port 8080. (username: `Administrator`, password: `admin`) # Documentation ### [Production](#production) - [List of containers](docs/list-of-containers.md) - [Single Compose Setup](docs/single-compose-setup.md) - [Environment Variables](docs/environment-variables.md) - [Single Server Example](docs/single-server-example.md) - [Setup Options](docs/setup-options.md) - [Site Operations](docs/site-operations.md) - [Backup and Push Cron Job](docs/backup-and-push-cronjob.md) - [Port Based Multi Tenancy](docs/port-based-multi-tenancy.md) - [Migrate from multi-image setup](docs/migrate-from-multi-image-setup.md) - [running on linux/mac](docs/setup_for_linux_mac.md) ### [Custom Images](#custom-images) - [Custom Apps](docs/custom-apps.md) - [Build Version 10 Images](docs/build-version-10-images.md) ### [Development](#development) - [Development using containers](docs/development.md) - [Bench Console and VSCode Debugger](docs/bench-console-and-vscode-debugger.md) - [Connect to localhost services](docs/connect-to-localhost-services-from-containers-for-local-app-development.md) ### [Troubleshoot](docs/troubleshoot.md) ### Shiloh Setup based on: https://raw.githubusercontent.com/frappe/bench/develop/easy-install.py clone frappe-docker repo sites = [erp.sprinklersnorthwest.com] email = support@lasthourhosting.org admin_pass db_pass `cd frappe-docker` `cp example.env .env` Write inside of env: f"ERPNEXT_VERSION={erpnext_version}\n", f"DB_PASSWORD={db_pass}\n", "DB_HOST=db\n", "DB_PORT=3306\n", "REDIS_CACHE=redis-cache:6379\n", "REDIS_QUEUE=redis-queue:6379\n", "REDIS_SOCKETIO=redis-socketio:6379\n", f"LETSENCRYPT_EMAIL={email}\n", f"SITE_ADMIN_PASS={admin_pass}\n", f"SITES={quoted_sites}\n", `sudo docker compose --project-name brotherton -f compose.yaml -f overrides/compose.mariadb.yaml -f overrides/compose.redis.yaml -f overrides/compose.https.yaml --env-file .env config` Make images/production/Containerfile available as a package on githaven? need to replace the erpnext repo argument inside it. inside of compose.yaml, replace "image: frappe/erpnext" with the above package. `. .env` `sudo docker compose -p brotherton -f compose.yaml up -d` The "erpnext" in this command is probably fine, I think the bench get-app inside the docker compose gets the erpnext repository and puts it into an erpnext "app", regardless of what the erpnext repo env variable is. This command only works if SITES contains a single site. `sudo docker compose -p brotherton exec backend bench new-site "$SITES" --no-mariadb-socket --db-root-password "$DB_PASSWORD" --admin-password "$SITE_ADMIN_PASS" --install-app erpnext --set-default` # Contributing If you want to contribute to this repo refer to [CONTRIBUTING.md](CONTRIBUTING.md) This repository is only for container related stuff. You also might want to contribute to: - [Frappe framework](https://github.com/frappe/frappe#contributing), - [ERPNext](https://github.com/frappe/erpnext#contributing), - [Frappe Bench](https://github.com/frappe/bench).