Dockerized i-doit CMDB
The provided Docker images aren't production-ready. Please do not rely on them. They come "as is" with no warranty of any kind. They are not an official product by synetics GmbH. Because of this, we can't provide you any support.
At the moment, we use these images for quality tests of i-doit and its add-ons. In the near-future we hope to provide you official i-doit Docker images which are well-tested and production-ready. In the meantime don't hesitate to test these images yourself. We love to get your feedback!
1.19-open-php8.0-fpm
(Dockerfile
)1.19-open-php8.0-apache
(Dockerfile
)1.19-pro-php8.0-fpm
(Dockerfile
)1.19-pro-php8.0-apache
(Dockerfile
)1.19-open-php7.4-fpm
(Dockerfile
)1.19-open-php7.4-apache
(Dockerfile
)1.19-pro-php7.4-fpm
(Dockerfile
)1.19-pro-php7.4-apache
(Dockerfile
)1.18.2-open-php7.4-fpm
(Dockerfile
)1.18.2-open-php7.4-apache
(Dockerfile
)1.18.2-pro-php7.4-fpm
(Dockerfile
)1.18.2-pro-php7.4-apache
(Dockerfile
)1.18.1-open-php7.4-fpm
(Dockerfile
)1.18.1-open-php7.4-apache
(Dockerfile
)1.18.1-pro-php7.4-fpm
(Dockerfile
)1.18.1-pro-php7.4-apache
(Dockerfile
)1.18-open-php7.4-fpm
(Dockerfile
)1.18-open-php7.4-apache
(Dockerfile
)1.18-pro-php7.4-fpm
(Dockerfile
)1.18-pro-php7.4-apache
(Dockerfile
)
Note: Older branches are not supported anymore but can still be found in the repository.
- Where to get help:
https://github.com/bheisig/i-doit-docker/issues
- Where to file issues:
https://github.com/bheisig/i-doit-docker/issues
- Maintained by: Benjamin Heisig
- Supported architectures: x86_64
- Source of this description:
README.md
- Supported Docker versions: the latest release (down to 1.6 on a best-effort basis)
i-doit ("I document IT") is a fully-featured Web application for CMDB (Configuration Management Databases), IT asset management (ITAM) and IT documentation. i-doit is maintained by the company synetics GmbH, located in Düsseldorf/Germany.
Each image is built on the official PHP Docker image. We've got heavily inspired by the well-documented Nextcloud docker image. Thank you!
Run the latest version of i-doit open with PHP 8.0 and FPM:
docker run --name i-doit-fpm -p 9000:9000 bheisig/idoit:1.19-open-php8.0-fpm
Run the latest version of i-doit open with PHP 8.0 and Apache HTTPD 2.4:
docker run --name i-doit-apache -p 80:80 bheisig/idoit:1.19-open-php8.0-apache
Each i-doit container has one default volume containing the complete installation directory: /var/www/html
. This directory includes the source code, cache files, uploaded files, installed add-ons, custom translation files, etc.
i-doit requires either MariaDB or MySQL as the database backend. For better performance Memcached is highly recommended. There are some examples:
- Run with PHP-FPM (preferred)
- Run with PHP-FPM over UNIX sockets (even faster)
- Run with Apache HTTPD (legacy)
i-doit has its own CLI tool named console.php
for long-lasting, recurring tasks in background. You can call any CLI command in the running Docker container, for example:
docker exec -it --user www-data i-doit-fpm php console.php --help
to be defined
For a complete backup and restore process you need to consider at least 3 sources:
- i-doit installation directory (see section "Available volumes")
- System database (default:
idoit_system
) - Each tenant database (default 1st one:
idoit_data
)
As you can see in the examples for docker-compose
(see section "Run i-doit with Docker Compose") the simplest thing is to backup the named volumes. But for a running instance of MariaDB this is a bad solution because everything stored temporarily in memory won't be backed up. Run mysqldump
(for backup) and mysql
(for restore) to fetch every bit stored in the databases.
This is a basic example to backup everything in a running environment:
docker exec i-doit-fpm /bin/tar cvf - . | gzip -9 > backup.tar.gz
docker exec i-doit-fpm /usr/bin/mysqldump -uidoit -pidoit --all-databases | gzip -9 > backup.sql.gz
This is a basic example to restore those backups:
cat backup.tar.gz | docker exec --interactive --user www-data i-doit-fpm /bin/tar xzvf -
gunzip < backup.sql.gz | docker exec --interactive i-doit-fpm /usr/bin/mysql -uidoit -pidoit
Don't forget to alter the commands above to your needs.
Copy the file to the running i-doit container and import the file with the i-doit CLI tool:
docker cp license.txt i-doit-fpm:/tmp/
docker exec --interactive --user www-data i-doit-fpm php \
console.php license-add \
--user admin --password admin --no-interaction --license /tmp/license.txt
The next example assumes that i-doit is installed on the same host as the running i-doit container:
cd /var/www/html/
tar czvf - . | docker exec --interactive --user www-data i-doit-fpm /bin/tar xzvf -
mysqldump -uidoit -pidoit --all-databases | \
docker exec --interactive i-doit-fpm /usr/bin/mysql -uidoit -pidoit
We strongly recommend to access i-doit in a productive environment via TLS/HTTPS. Consider to use a load balancer or reverse proxy because the provided images are unable to handle TLS/HTTPS connections themselves.
<version>-<edition>-<php>-<service>
<version>
: Which version of i-doit do you like to run?<edition>
: Which edition of i-doit do you like to run? Selectopen
for community edition (Free Software) andpro
for professional edition (proprietary).<php>
: Which version of PHP do you like to run?<service>
: Decide to run i-doit either with Apache HTTPD or PHP-FPM
Copyright (C) 2019-2022 synetics GmbH
Licensed under the GNU Affero GPL version 3 or later (AGPLv3+
)