Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions espocrm/README-short.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
EspoCRM is a highly customizable open source CRM software.
93 changes: 93 additions & 0 deletions espocrm/compose.yaml
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +22 to +66

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should reference only images from DOI 👀

What's the purpose of each espocrm container having the same exact health check? Does it actually check the running service in some way?

Suggested change
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
image: 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: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: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:
215 changes: 215 additions & 0 deletions espocrm/content.md
Original file line number Diff line number Diff line change
@@ -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/<secret_name>` 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'
```
1 change: 1 addition & 0 deletions espocrm/get-help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[GitHub Issues](https://github.com/espocrm/espocrm/issues), [EspoCRM Documentation](https://docs.espocrm.com), [EspoCRM Community](https://forum.espocrm.com)
1 change: 1 addition & 0 deletions espocrm/github-repo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/espocrm/espocrm-docker
1 change: 1 addition & 0 deletions espocrm/license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
View [license information](https://www.espocrm.com/espocrm-open-source-license/) for the software contained in this image.
Binary file added espocrm/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions espocrm/maintainer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[EspoCRM](%%GITHUB-REPO%%)
7 changes: 7 additions & 0 deletions espocrm/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"hub": {
"categories": [
"content-management-system"
]
}
}
Loading