- The Gitlab Site
- The Gitlab Source Code
- License: MIT ❤️
They call it the Full-featured DevOps platform, available both self-hosted and SaaS
https://www.youtube.com/watch?v=H-XBVD1Y8Qs
- https://www.youtube.com/watch?v=e1BqlgBL-vY
- https://hub.docker.com/r/gitlab/gitlab-ce/
- https://www.youtube.com/watch?v=LzMv4IRmewY
SelfHosting Gitlab
Pre-Requisites!! Just Get Docker 🐋👇
You can install it for any PC/mac/Linux at home or in any cloud provider that you wish.
It will just take few moments, this one. If you are in Linux, just
apt-get update && sudo apt-get upgrade && curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
#sudo apt install docker-compose -y
And install also Docker-compose with:
apt install docker-compose -y
And when the process finishes - you can use it to SelfHost other services as well.
You should see the versions with:
docker --version
docker-compose --version
#sudo systemctl status docker #and the status
Gitlab with Docker
# create working directory
sudo mkdir /home/$USER/docker/gitlab -p
# run the GitLab docker container
docker run --name gitlab -d --hostname DNSofHost -p 8000:80 -v /home/$USER/docker/gitlab/config:/etc/gitlab -v /home/$USER/docker/gitlab/logs:/var/log/gitlab -v /home/$USER/docker/gitlab/data:/var/opt/gitlab --restart=unless-stopped gitlab/gitlab-ce:latest
# output root user password
docker exec -it gitlab cat /etc/gitlab/initial_root_password
version: '3'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
hostname: DNSofHost
ports:
- "8010:80"
volumes:
- /home/$USER/docker/gitlab/config:/etc/gitlab
- /home/$USER/docker/gitlab/logs:/var/log/gitlab
- /home/$USER/docker/gitlab/data:/var/opt/gitlab
restart: unless-stopped
To setup the initial password:
docker exec -it gitlab cat /etc/gitlab/initial_root_password
#docker stop gitlab
#docker rm gitlab
Using Gitlab
Gitlab Web IDE
Gitlab - Plan & Track
Other F/OSS to Plan & Track
- Focalboard
- Leantime
- Timelite
- OpenProject
Gitlab CI/CD
https://www.youtube.com/watch?v=qP8kir2GUgo
Gitlab + Firebase
https://medium.com/evenbit/automatically-deploy-to-firebase-with-gitlab-ci-546f194c44d8
Then you can Automate the deployment of your favourite SSGs: HUGO, Gatsby, Jekyll, Astro…
Gitlab + Jenkins
- Webhooks jenkins CI: https://www.youtube.com/watch?v=SObrdM1ev3M
Setup Jenkins
FAQ
How to generate an SSH Key for Gitlab ⏬
# Step 1: Generate SSH Key
ssh-keygen -t rsa -b 4096 -C "[email protected]" -N "" -f ~/.ssh/id_rsa
# Step 2: Add SSH Key to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
# Step 3: Copy the SSH Key
cat ~/.ssh/id_rsa.pub
# Manually copy the key output
# Step 3 (continued): Add SSH Key to GitLab (web interface)
# Step 4: Set Remote to Use SSH
cd path/to/your/project
git remote set-url origin [email protected]:username/projectname.git
# Step 5: Push to GitLab
#git push -u origin master
How to generate an SSH Key for Gitlab ⏬
A GPG (GNU Privacy Guard) key is used for encrypting and signing data and communications.
In the context of Git and GitLab, a GPG key can be used to sign your commits, adding an extra layer of security and authenticity.
By signing your commits, you provide a way for others to verify that the commits were made by you and not tampered with. It proves that the commits genuinely come from you.
GPG signing ensures that your commits are securely attributed to you, preventing impersonation. This is particularly important in collaborative projects and open-source contributions.
What are some Gitlab (F/OSS) Alternatives?
- You can be interested to Self-Host Gitea
- And Also you can Self-Host Gogs
- Or even One-Dev: Git Server + CI/CD + Kanban
- And also Radicle - The Radicle protocol leverages cryptographic identities for code and social artifacts, utilizes Git for efficient data transfer between peers, and employs a custom gossip protocol for exchanging repository metadata.
SelfHosted Gitlab with HTTPS - with Nginx Proxy Manager
If you are interested in using Gitlab with https, deploying NGINX with Docker will be a great option for you.
Remote Gitlab Web IDE - with VPN
Other F/OSS Tools for Devs
The developer platform for on-demand cloud development environments to create software faster and more securely.
- Gitea
Lightweight and self-hosted, best for simplicity and ease of setup.
F/OSS Data-Ops Tools
https://github.com/datacoon/awesome-dataops
Interesting Repositories for Open Source Software (✅)
SourceForge is an online platform that offers free hosting for open-source software development projects. It provides a range of tools to support version control, project management, and collaboration among developers.
How to mirror a Gitlab repository
Push vs Pull - https://docs.gitlab.com/ee/user/project/repository/mirror/