Important
Please note, we assume here that you are already familiar with Docker
Docker is now available on all recent distributions. To install it on a distribution
rpm
yum install docker
deb
apt-gand update
apt-gand install docker.io
Image installation :
docker pull jeedom/jeedom:latest
Then launch the :
sudo docker run --name jeedom-server --privileged -v /opt/jeedom/www:/var/www/html -v /opt/jeedom/db:/var/lib/mysql -p 80:80 -d jeedom/jeedom:latest
With :
jeedom-server
: name of the desired jeedom container/opt/jeedom/www
and /opt/jeedom/db
: directory where Jeedom data is put on the host (be careful to create it before)-p 80:80
: the container port (80) is forwarded to the host port (by default 80 too)jeedom/jeedom:latest
: last version steady on Debian bookworm (beta)jeedom/jeedom:beta
: last version betajeedom/jeedom:4.x
: versions are kept from 4.3jeedom/jeedom:4.x-bullseye
: A variant based on Debian Bullseye, to be preferredjeedom/jeedom:4.x-buster
: A variant based on Debian Buster (deprecated)jeedom/jeedom:4.x-bookworm
: A variant based on Debian bookworm (beta)jeedom/jeedom:4.x-http-bookworm
: A variant based on Debian bookworm containing only Jeedom, no mariadb. Used for docker composer (beta)The full list is available at Docker Hub
TIPS
With the
-d
option Docker gives you back control immediately (‘detach’ option) but installs in the background. It is possible to follow the logs with the commanddocker logs jeedom-server -f
(option f = follow)
Then you need to install Jeedom by going to : IP_DOCKER:80
TIPS
You can see the dockers turning
docker ps
to stop your container, jeedom-server for example, you just have to dodocker stop jeedom-server
, to revive itdocker start jeedom-server
For the rest, you can follow the documentation First step with Jeedom
You too can install jeedom using docker compose :
services:
jeedom:
image: jeedom/jeedom:latest
volumes:
- http:/var/www/html
- db:/var/lib/mysql
tmpfs:
- /tmp/jeedom
ports:
- 40080:80
restart: always
network_mode: bridge
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 5
volumes:
db:
http:
services:
jeedom_db:
image: mariadb:latest
container_name: jeedom_db
command:
- "--default-authentication-plugin=mysql_native_password"
- "--skip-name-resolve"
- "--key_buffer_size=16M"
- "--thread_cache_size=16"
- "--tmp_table_size=48M"
- "--max_heap_table_size=48M"
- "--query_cache_type=1"
- "--query_cache_size=32M"
- "--query_cache_limit=2M"
- "--query_cache_min_res_unit=3K"
- "--innodb_flush_method=O_DIRECT"
- "--innodb_flush_log_at_trx_commit=2"
- "--innodb_log_file_size=32M"
- "--innodb_large_prefix=on"
- "--connect_timeout=600"
- "--wait_timeout=600"
- "--interactive_timeout=600"
volumes:
- db:/var/lib/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=TODO
- MYSQL_DATABASE=jeedom
- MYSQL_USER=jeedom
- MYSQL_PASSWORD=TODO
expose:
- 3306
jeedom_http:
image: jeedom/jeedom:4.4-http-bookworm
container_name: jeedom_http
volumes:
- http:/var/www/html
tmpfs:
- /tmp/jeedom
ports:
- 52080:80
restart: always
environment:
- DB_HOST=jeedom_db
- DB_USERNAME=jeedom
- DB_PASSWORD=TODO
- DB_NAME=jeedom
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 5
depends_on:
- jeedom_db
volumes:
db:
http:
TIPS
Do not forget to complete the
TODO
with the desired passwords
TIPS
It is possible to specify the Apache listening port with the environment variable
APACHE_PORT
, be careful to update thehealthcheck
with the new port. Please note that this is only possible from Jeedom 4.5