Web application providing tools not avaiable in GitLab CE (Gitlab push/pull mirror and more)
This application provides functionality not avaiable in GitLab (CE) Mainly useful for pull mirroring from GitHub
Please consider sponsoring if you're using this package commercially, my time is not free :) You can sponsor me by clicking on "Sponsor" button in top button row. Thank You.
Feature name | Gitlab CE | Gitlab EE | Gitlab Tools | Description |
---|---|---|---|---|
Pull mirror (doc) | No | Yes | Yes | Allows to automaticaly mirror your Git or SVN repositories to GitLab by hook trigger or periodicaly |
Push mirror (doc) | Yes(10.8) | Yes | Yes | Allows to automaticaly mirror your GitLab repository to any remote Git repository |
Add repository by running these commands
$ wget -O - https://repository.salamek.cz/deb/salamek.gpg.key|sudo apt-key add -
$ echo "deb https://repository.salamek.cz/deb/pub all main" | sudo tee /etc/apt/sources.list.d/salamek.cz.list
And then you can install a package gitlab-tools
$ apt update && apt install gitlab-tools
Add repository by adding this at end of file /etc/pacman.conf
[salamek]
Server = https://repository.salamek.cz/arch/pub
SigLevel = Optional
and then install by running
$ pacman -Sy gitlab-tools
You can create your docker-compose stack to run this application on docker. You can visit cenk1cenk2/docker-gitlab-tools for more information on the container.
After successful installation you will need to run setup to configure your installation:
$ gitlab-tools setup
This will start simple setup utility where you can/must configure
This creates/updates config file in /etc/gitlab-tools/config.yml, you can modify this file manualy
After this you should have gitlab-tools running on your "server name"
Install uwsgi
$ apt install uwsgi uwsgi-plugin-python3
Create uwsgi application configuration file at /etc/uwsgi/apps-available/gitlab-tools.example.com.ini
:
[uwsgi]
uid = gitlab-tools
master = true
chdir = /usr/lib/python3/dist-packages/gitlab_tools
socket = /tmp/gitlab-tools.sock
module = wsgi
callable = app
plugins = python3
buffer-size = 32768
Link this config file to /etc/uwsgi/apps-enabled
by running
$ ln -s /etc/uwsgi/apps-available/gitlab-tools.example.com.ini /etc/uwsgi/apps-enabled/
Restart uwsgi to load new configuration
$ systemctl restart uwsgi
Now you should have /tmp/gitlab-tools.sock
socket file created, check that by running
$ file /tmp/gitlab-tools.sock
Install nginx by running
apt install nginx
Create configuration file at /etc/nginx/sites-available/gitlab-tools.example.com
:
# Uncomment this when using SSL
#server {
# listen 80;
# listen [::]:80;
# server_name gitlab-tools.example.com;
# return 301 https://gitlab-tools.example.com$request_uri;
#}
server {
# Uncomment these to use SSL
#listen 443 ssl http2;
#listen [::]:443 ssl http2;
# Comment these to use SSL
listen 80;
listen [::]:80;
server_name gitlab-tools.example.com;
root /usr/lib/python3/dist-packages/gitlab_tools;
# Uncomment these to use SSL
#ssl on;
#ssl_certificate letsencrypt/certs/example.com/fullchain.pem;
#ssl_certificate_key letsencrypt/certs/example.com/privkey.pem;
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /var/tmp/letsencrypt-auto;
}
location / {
uwsgi_pass unix:///tmp/gitlab-tools.sock;
include uwsgi_params;
}
}
Link this file to /etc/nginx/sites-enabled
by running
$ ln -s /etc/nginx/sites-available/gitlab-tools.example.com /etc/nginx/sites-enabled/
And restart nginx
$ systemctl restart nginx
Now you should have gitlab-tools accessible at server_name
This project is also mirrored on GitLab https://gitlab.com/Salamek/gitlab-tools