Set up Project Management Tool : TULEAP Server

Vineet Kumar
2 min readJan 9, 2022

The Tuleap Community Edition docker image allows you to test Tuleap quickly by skipping the installation and customization part. It gives you a fully working Tuleap in minutes with everything preconfigured with sensible defaults.

Prerequisites:

The following sections assume that you are going to run the Tuleap container as the only “visible” container on the server. That means that Tuleap web container will publish it’s ports (80, 443 and 22) on hosts ports.

Deployment:

In a directory named tuleap-community-edition (be careful, with docker-compose, directory name matters) create a .env file that defines two variables:

TULEAP_FQDN=tuleap.example.com
MYSQL_ROOT_PASSWORD=some random strong password
  • TULEAP_FQDN is the full name of the machine you are going to run Tuleap on. As we saw in pre-requisite section, it should be the name of your docker host either from DNS or at very least defined in /etc/hosts (will resolve only locally).
  • MYSQL_ROOT_PASSWORD will be the root password of your mysql instance. We recommend at least 20 chars but only alphabetical & numbers.
  • Create following directories to bind mount:
    mkdir -p /home2/tuleap/tuleap-data
    mkdir -p /home2/tuleap/tuleap-db-data
    mkdir -p /home2/tuleap/redis-data

Then create a docker-compose.yml file with following content:

version: "2"services:
web:
image: tuleap/tuleap-community-edition
hostname: pmtool
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /home2/tuleap/tuleap-data:/data
depends_on:
- db
- redis
- mailhog
environment:
- TULEAP_FQDN=pmtl.cloud.gov.in
- DB_HOST=db
- DB_ADMIN_USER=root
- DB_ADMIN_PASSWORD=*******
- TULEAP_FPM_SESSION_MODE=redis
- TULEAP_REDIS_SERVER=redis
- TULEAP_EMAIL_RELAYHOST=mailhog:1025
# This is for test purpose only. It's not advised to run a production database as a docker container
db:
image: mysql:5.7
command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"]
environment:
- MYSQL_ROOT_PASSWORD=******* //same as above metioned
volumes:
- /home2/tuleap/tuleap-db-data:/var/lib/mysql
# This is for test purpose only. It's not advised to run a production database as a docker container
redis:
image: redis:6
volumes:
- /home2/tuleap/redis-data:/data
command: redis-server --appendonly yes --auto-aof-rewrite-percentage 20 --auto-aof-rewrite-min-size 200kb
mailhog:
image: mailhog/mailhog

3. For SSL updation:

stop the web service from the following command
docker-compose stop web

and update certificate under following location
/home2/tuleap/tuleap-data/tuleap/etc/pki/tls/private/localhost.key.pem
/home2/tuleap/tuleap-data/tuleap/etc/pki/tls/certs/localhost.cert.pem
Start web service with following command:
docker-compose start web

4. Enjoy !!

--

--