Tuleap

Qu’est-ce que Tuleap ?

Tuleap est un outil de gestion de code côté serveur. Comparé à Github ou Gitlab, il a l’avantage d’être auto-hébergé mais surtout léger.

Installation

Pré-requis à l’installation de Tuleap

Par défaut, Tuleap

Nous aurons donc besoin de :

  • Docker

  • Docker Compose

  • De certificat pour la connexion HTTPS. Les installations et configurations sont traités dans d’autres documentations, je passe à la suite. N.B: Un rôle ansible existe et prends en charge l’ensemble de la configuration.

Préparation de l’environnement docker

On rappelle bien évidement que l’environnement docker est POUR TEST UNIQUEMENT.Je m’en sers dans un lab(VM) sur mon PC perso et le service n’est pas disponible sur internet. Dans le cas d’une installation pour production, on évitera docker (et les mots de passe tout pourris mis plus bas).

sudo apt install docker docker-compose
sudo mkdir ~/tuleap-community-edition
sudo cat > ~/tuleap-community-edition/.env <<EOF
TULEAP_FQDN=tuleap.test.local
MYSQL_ROOT_PASSWORD=Password
TULEAP_SYS_DBPASSWD=Password
SITE_ADMINISTRATOR_PASSWORD=Password
EOF
echo "127.0.0.1 tuleap.test.local" | sudo tee --append /etc/hosts
echo '
version: "2"

services:
  web:
    image: tuleap/tuleap-community-edition
    hostname: ${TULEAP_FQDN}
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "22:22"
    volumes:
      - tuleap-data:/data
    depends_on:
      - db
      - redis
      - mailhog
    environment:
      - TULEAP_FQDN=${TULEAP_FQDN}
      - TULEAP_SYS_DBHOST=db
      - TULEAP_SYS_DBPASSWD=${TULEAP_SYS_DBPASSWD}
      - SITE_ADMINISTRATOR_PASSWORD=${SITE_ADMINISTRATOR_PASSWORD}
      - DB_ADMIN_USER=root
      - DB_ADMIN_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TULEAP_FPM_SESSION_MODE=redis
      - TULEAP_REDIS_SERVER=redis

  # This is for test purpose only. It's not advised to run a production database as a docker container
  db:
    image: mysql:8.0
    command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--sql-mode=NO_ENGINE_SUBSTITUTION"]
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    volumes:
      - db80-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:
      - redis-data:/data
    command: redis-server --appendonly yes --auto-aof-rewrite-percentage 20 --auto-aof-rewrite-min-size 200kb

  # This is for test purpose only. Mailhog is there to capture email traffic
  mailhog:
    image: mailhog/mailhog

volumes:
  tuleap-data:
  db80-data:
  redis-data:
' > ~/tuleap-community-edition/docker-compose.yaml
sudo cd ~/tuleap-community-edition/
sudo docker-compose up -d -h

Note : je ne sais pas si le sudo cd marche, j’étais en root (pas bien)

Si tout s’est bien passé, il en reste plus qu’à se connecter sur le site web

Configuration

Sécurisation

Utilisation

TroubleShooting