diff --git a/espocrm/README-short.txt b/espocrm/README-short.txt new file mode 100644 index 000000000000..82ebd48256be --- /dev/null +++ b/espocrm/README-short.txt @@ -0,0 +1 @@ +EspoCRM is a highly customizable open source CRM software. diff --git a/espocrm/compose.yaml b/espocrm/compose.yaml new file mode 100644 index 000000000000..a8049810d026 --- /dev/null +++ b/espocrm/compose.yaml @@ -0,0 +1,93 @@ +services: + + espocrm-db: + image: mariadb:latest + container_name: espocrm-db + environment: + MARIADB_ROOT_PASSWORD: your_root_password + MARIADB_DATABASE: espocrm + MARIADB_USER: espocrm + MARIADB_PASSWORD: your_database_password + volumes: + - espocrm-db:/var/lib/mysql + restart: unless-stopped + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 20s + start_period: 10s + timeout: 10s + retries: 3 + + espocrm: + image: espocrm/espocrm:latest + container_name: espocrm + environment: + ESPOCRM_DATABASE_HOST: espocrm-db + ESPOCRM_DATABASE_USER: espocrm + ESPOCRM_DATABASE_PASSWORD: your_database_password + ESPOCRM_ADMIN_USERNAME: admin + ESPOCRM_ADMIN_PASSWORD: your_admin_password + ESPOCRM_SITE_URL: "http://localhost:8080" + volumes: + - espocrm-data:/var/www/html/data + - espocrm-custom:/var/www/html/custom + - espocrm-custom-client:/var/www/html/client/custom + restart: unless-stopped + depends_on: + espocrm-db: + condition: service_healthy + healthcheck: + test: ["CMD", "bin/command", "app-check"] + start_period: 20s + interval: 60s + timeout: 20s + retries: 3 + ports: + - 8080:80 + + espocrm-daemon: + image: espocrm/espocrm:latest + container_name: espocrm-daemon + volumes_from: + - espocrm + restart: unless-stopped + entrypoint: docker-daemon.sh + depends_on: + espocrm: + condition: service_healthy + healthcheck: + test: ["CMD", "bin/command", "app-check"] + start_period: 20s + interval: 180s + timeout: 20s + retries: 3 + + espocrm-websocket: + image: espocrm/espocrm:latest + container_name: espocrm-websocket + environment: + ESPOCRM_CONFIG_USE_WEB_SOCKET: "true" + ESPOCRM_CONFIG_WEB_SOCKET_URL: "ws://localhost:8081" + ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN: "tcp://*:7777" + ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN: "tcp://espocrm-websocket:7777" + volumes_from: + - espocrm + restart: unless-stopped + entrypoint: docker-websocket.sh + depends_on: + espocrm: + condition: service_healthy + healthcheck: + test: ["CMD", "bin/command", "app-check"] + start_period: 20s + interval: 180s + timeout: 20s + retries: 3 + ports: + - 8081:8080 + +volumes: + espocrm-db: + espocrm-data: + espocrm-custom: + espocrm-custom-client: diff --git a/espocrm/content.md b/espocrm/content.md new file mode 100644 index 000000000000..594d8187402a --- /dev/null +++ b/espocrm/content.md @@ -0,0 +1,215 @@ +# What is EspoCRM? + +EspoCRM is a highly customizable open source CRM software that allows users to see, enter and evaluate all your company relationships regardless of the type. People, companies, projects or opportunities - all in an easy and intuitive interface. + +%%LOGO%% + +# How to use this image + +The basic pattern for starting an `%%REPO%%` instance is: + +```console +$ docker run --name some-%%REPO%% -d %%IMAGE%% +``` + +## Complete configuration + +Start by creating a dedicated Docker network for the containers: + +``` +$ docker network create some-network +``` + +This image requires a running MariaDB or MySQL server: + +``` +$ docker run \ + --name espocrm-db \ + --network some-network \ + -e MARIADB_ROOT_PASSWORD=your_root_password \ + -e MARIADB_DATABASE=espocrm \ + -e MARIADB_USER=espocrm \ + -e MARIADB_PASSWORD=your_database_password \ + -d mariadb +``` + +Then, run EspoCRM container: + +``` +$ docker run \ + --name %%REPO%% \ + --network some-network \ + -e ESPOCRM_DATABASE_USER=espocrm \ + -e ESPOCRM_DATABASE_PASSWORD=your_database_password \ + -e ESPOCRM_ADMIN_USERNAME=admin \ + -e ESPOCRM_ADMIN_PASSWORD=your_admin_password \ + -d %%IMAGE%% +``` + +### Run container via a specific port + +``` +$ docker run \ + --name %%REPO%% \ + --network some-network \ + -p 8080:80 \ + -e ESPOCRM_DATABASE_USER=espocrm \ + -e ESPOCRM_DATABASE_PASSWORD=your_database_password \ + -e ESPOCRM_ADMIN_USERNAME=admin \ + -e ESPOCRM_ADMIN_PASSWORD=your_admin_password \ + -d %%IMAGE%% +``` + +Then access it at `http://localhost:8080` with the `admin` and `your_admin_password` credentials. + +### Run container via a specific IP or a domain with a port + +``` +$ docker run \ + --name %%REPO%% \ + --network some-network \ + -p 8080:80 \ + -e ESPOCRM_DATABASE_USER=espocrm \ + -e ESPOCRM_DATABASE_PASSWORD=your_database_password \ + -e ESPOCRM_ADMIN_USERNAME=admin \ + -e ESPOCRM_ADMIN_PASSWORD=your_admin_password \ + -e ESPOCRM_SITE_URL=http://192.168.0.100:8080 \ + -d %%IMAGE%% +``` + +Then access it at `http://192.168.0.100:8080` with the `admin` and `your_admin_password` credentials. + +## Installing with Traefik + +You can read the instructions for installing EspoCRM in conjunction with Traefik in the Docker Compose environment [here](https://docs.espocrm.com/administration/docker/traefik/). + +## Installing with Caddy + +You can read the instructions for installing EspoCRM in conjunction with Caddy in the Docker Compose environment [here](https://docs.espocrm.com/administration/docker/caddy/). + +## Upgrading + +To upgrade the container created by `docker-compose.yml`: + +1. Open your EspoCRM container directory. +2. Run the command: + +``` +$ docker compose pull && docker compose up -d +``` + +The container will be upgraded to the latest version within a few minutes. + +## Docker Secrets + +To securely pass sensitive information, append `_FILE` to any [supported environment variable](#environment-variables). When this suffix is used, the variable's value is read from a file inside the container instead of being specified directly. This can be used with Docker secrets stored in `/run/secrets/` files. For example: + +```console +$ docker run \ + --name %%REPO%% \ + --network some-network \ + -e ESPOCRM_DATABASE_PASSWORD_FILE=/run/secrets/espocrm_db_password \ + -e ESPOCRM_ADMIN_PASSWORD_FILE=/run/secrets/espocrm_admin_password \ + -d %%IMAGE%% +``` + +## %%COMPOSE%% + +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). + +## Environment variables + +These environment variables are used only for the initial installation. If you need to define configuration options at container startup, see [Config Environments](#config-environments). + +#### ESPOCRM_DATABASE_PLATFORM + +Database platform. The possible values: `Mysql` or `Postgresql`. The default value is `Mysql`. + +#### ESPOCRM_DATABASE_HOST + +Database host name for EspoCRM. The default value is `espocrm-db`. + +#### ESPOCRM_DATABASE_PORT + +Database port for EspoCRM. The default value is empty. + +#### ESPOCRM_DATABASE_NAME + +Database name for EspoCRM. The default value is `espocrm`. + +#### ESPOCRM_DATABASE_USER + +Database user for EspoCRM. The default value is `espocrm`. + +#### ESPOCRM_DATABASE_PASSWORD + +Database password for EspoCRM. The default value is `password`. + +#### ESPOCRM_ADMIN_USERNAME + +User name for an administrator of EspoCRM. The default value is `admin`. + +#### ESPOCRM_ADMIN_PASSWORD + +User password for an administrator of EspoCRM. The default value is `password`. + +#### ESPOCRM_SITE_URL + +The URL of EspoCRM. This option is very important for normal operating of EspoCRM. Examples: `http://192.168.0.100:8080`, `http://my-crm.local`. + +### Other optional options + +The list of possible values and their default values can be found in EspoCRM Administrator panel > Settings. + +- `ESPOCRM_LANGUAGE` +- `ESPOCRM_DATE_FORMAT` +- `ESPOCRM_TIME_FORMAT` +- `ESPOCRM_TIME_ZONE` +- `ESPOCRM_WEEK_START` +- `ESPOCRM_DEFAULT_CURRENCY` +- `ESPOCRM_THOUSAND_SEPARATOR` +- `ESPOCRM_DECIMAL_MARK` + +## Config Environments + +These environment variables are used to define EspoCRM configuration parameters on every container startup. The parameters that can be changed are defined in `data/config.php` or `data/config-internal.php`. + +### Naming + +Config environment variables should be converted from camel case. For example: + +The `exportDisabled` config option should be converted to `ESPOCRM_CONFIG_EXPORT_DISABLED`. + +### Logger + +There are additional options to change the `logger`: + +- `ESPOCRM_CONFIG_LOGGER__LEVEL: "DEBUG"` +- `ESPOCRM_CONFIG_LOGGER__MAX_FILE_NUMBER: 30` +- `ESPOCRM_CONFIG_LOGGER__PATH: "data/logs/espo.log"` + +### Allowed types: + +#### String + +```yaml +ESPOCRM_CONFIG_WEB_SOCKET_URL: 'wss://my-espocrm.com:8080' +``` + +#### Integer + +```yaml +ESPOCRM_CONFIG_EMAIL_MESSAGE_MAX_SIZE: 10 +``` + +#### Boolean + +```yaml +ESPOCRM_CONFIG_USE_WEB_SOCKET: 'true' +``` + +#### Null + +```yaml +ESPOCRM_CONFIG_CURRENCY_DECIMAL_PLACES: 'null' +``` diff --git a/espocrm/get-help.md b/espocrm/get-help.md new file mode 100644 index 000000000000..88e755bdafe8 --- /dev/null +++ b/espocrm/get-help.md @@ -0,0 +1 @@ +[GitHub Issues](https://github.com/espocrm/espocrm/issues), [EspoCRM Documentation](https://docs.espocrm.com), [EspoCRM Community](https://forum.espocrm.com) diff --git a/espocrm/github-repo b/espocrm/github-repo new file mode 100644 index 000000000000..cb578347e0e0 --- /dev/null +++ b/espocrm/github-repo @@ -0,0 +1 @@ +https://github.com/espocrm/espocrm-docker diff --git a/espocrm/license.md b/espocrm/license.md new file mode 100644 index 000000000000..40baafa8894a --- /dev/null +++ b/espocrm/license.md @@ -0,0 +1 @@ +View [license information](https://www.espocrm.com/espocrm-open-source-license/) for the software contained in this image. diff --git a/espocrm/logo.png b/espocrm/logo.png new file mode 100644 index 000000000000..879de5e8b684 Binary files /dev/null and b/espocrm/logo.png differ diff --git a/espocrm/maintainer.md b/espocrm/maintainer.md new file mode 100644 index 000000000000..1f189b7424e8 --- /dev/null +++ b/espocrm/maintainer.md @@ -0,0 +1 @@ +[EspoCRM](%%GITHUB-REPO%%) diff --git a/espocrm/metadata.json b/espocrm/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/espocrm/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +}