====== GitLab ======
* [[https://about.gitlab.com/blog/2025/03/24/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd/|Prepare now: Docker Hub rate limits will impact GitLab CI/CD]]
* [[https://kgaut.net/blog/2025/migrer-une-instance-gitlab-sur-un-nouveau-serveur|Migrer une instance gitlab sur un nouveau serveur]]
* [[https://apereo.github.io/2019/02/18/cas61-saml2-idp-gitlab/|Apereo CAS - SAML2 Identity Provider Integration w/ Gitlab (also starting HAProxy and LDAP)]]
==== CI ====
Il suffit de placer un fichier ''.gitlab-ci.yml'' à la racine du projet correctement configuré.
Exemple de fichier pour les tests d'une application Django:
image: python:latest
cache:
paths:
- ~/.cache/pip/
before_script:
- python -V # Print out python version for debugging
- pip install -r requirements.txt -r requirements-dev.txt
test:
script:
- make flake
- make coverage
=== Désactiver la CI pour un push ===
git push -o ci.skip
==== Installation ====
2 cœurs et au moins 4 Go de RAM
Pour 20 requêtes par secondes ou jusqu'à 1000 utilisateurs : 8 cœurs et 16 Go de RAM (https://docs.gitlab.com/administration/reference_architectures/1k_users/)
=== Installation de base ===
https://docs.gitlab.com/install/package/debian/?tab=Community+Edition
curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
sudo EXTERNAL_URL="https://gitlab.homelab" apt install gitlab-ce
=== Configuration HTTPS ===
https://docs.gitlab.com/omnibus/settings/ssl/#use-an-acme-server-other-than-lets-encrypt
La configuration échoue car il n'a pas été possible de récupérer un certificat Let's Encrypt pour le TLD .homelab.
Ajouter dans ''/etc/gitlab/gitlab.rb'' :
letsencrypt['acme_staging_endpoint'] = 'https://ca.homelab/acme/acme/directory'
letsencrypt['acme_production_endpoint'] = 'https://ca.homelab/acme/acme/directory'
sudo cp /usr/local/share/ca-certificates/homelab.crt /etc/gitlab/trusted-certs
sudo rm -rf /etc/gitlab/ssl/
sudo gitlab-ctl reconfigure
=== Première connexion ===
Se rendre sur https://gitlab.homelab/ :
* identifiant : ''root''
* mot de passe : dans ''/etc/gitlab/initial_root_password''
==== Runners ====
=== Installation ===
sudo apt install docker.io
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Enregistrer ensuite un runner d'instance.
=== Limiter les ressources des conteneurs Docker ===
* https://docs.gitlab.com/runner/configuration/advanced-configuration/
[[runners]]
[runners.docker]
cpus = "1"
memory = "400m"