Omnibus GitLab
This project creates full-stack platform-specific downloadable packages for GitLab. For other installation options please see the GitLab installation page.
Canonical source
The source of omnibus-gitlab is hosted on GitLab.com and there are mirrors to make contributing as easy as possible.
Documentation
The documentation overview is in the readme in the doc directory.
Omnibus fork
Omnibus GitLab is using a fork of omnibus project. Fork is located at gitlab.com.
GitLab CI
To setup GitLab CI please see the separate GitLab CI documentation.
Installation
Please follow the steps on the downloads page.
After installation
Your GitLab instance should reachable over HTTP at the IP or hostname of your
server. You can login as an admin user with username root
and password 5iveL!fe
.
See doc/maintenance/README.md for useful commands to control/debug your GitLab instance.
Configuration options
See doc/settings/configuration.md.
Configuring the external URL for GitLab
See doc/settings/configuration.md.
Storing Git data in an alternative directory
See doc/settings/configuration.md.
Changing the name of the Git user / group
See doc/settings/configuration.md.
Setting up LDAP sign-in
See doc/settings/ldap.md.
Enable HTTPS
HTTP
requests to HTTPS
.
Redirect
Change the default port and the ssl certificate locations.
Use non-packaged web-server
For using an existing Nginx, Passenger, or Apache webserver see doc/settings/nginx.md.
Using a non-packaged PostgreSQL database management server
To connect to an external PostgreSQL or MySQL DBMS see doc/settings/database.md (MySQL support in the Omnibus Packages is Enterprise Only).
Using a non-packaged Redis instance
Adding ENV Vars to the Gitlab Runtime Environment
See doc/settings/environment-variables.md.
Changing gitlab.yml settings
See doc/settings/gitlab.yml.md.
Specify numeric user and group identifiers
See doc/settings/configuration.md.
Sending application email via SMTP
See doc/settings/smtp.md.
Omniauth (Google, Twitter, GitHub login)
Omniauth configuration is documented in doc.gitlab.com.
Adjusting Unicorn settings
Setting the NGINX listen address or addresses
Inserting custom NGINX settings into the GitLab server block
Inserting custom settings into the NGINX config
Only start omnibus-gitlab services after a given filesystem is mounted
See doc/settings/configuration.md.
Updating
Instructions for updating your Omnibus installation and upgrading from a manual installation are in the update doc.
Uninstalling omnibus-gitlab
To uninstall omnibus-gitlab, preserving your data (repositories, database, configuration), run the following commands.
# Stop gitlab and remove its supervision process
sudo gitlab-ctl uninstall
# Debian/Ubuntu
sudo dpkg -r gitlab-ce
# Redhat/Centos
sudo rpm -e gitlab-ce
To remove all omnibus-gitlab data use sudo gitlab-ctl cleanse
.
To remove all users and groups created by omnibus-gitlab, before removing the gitlab package (with dpkg or yum) run sudo gitlab-ctl remove_users
. Note All gitlab processes need to be stopped before runnign the command.
Common installation problems
This section has been moved to the separate document doc/common_installation_problems/README.md.
Section below remains for historical reasons(mainly to not break existing links). Each section contains the link to the new location.
Apt error 'The requested URL returned error: 403'
See doc/common_installation_problems/README.md.
GitLab is unreachable in my browser
See doc/common_installation_problems/README.md.
GitLab CI shows GitLab login page
See doc/common_installation_problems/README.md.
Emails are not being delivered
See doc/common_installation_problems/README.md.
ruby_block[supervise_redis_sleep] action run
Reconfigure freezes at See doc/common_installation_problems/README.md.
TCP ports for GitLab services are already taken
See doc/common_installation_problems/README.md.
Git SSH access stops working on SELinux-enabled systems
See doc/common_installation_problems/README.md.
Postgres error 'FATAL: could not create shared memory segment: Cannot allocate memory'
See doc/common_installation_problems/README.md.
Reconfigure complains about the GLIBC version
See doc/common_installation_problems/README.md.
Reconfigure fails to create the git user
See doc/common_installation_problems/README.md.
Failed to modify kernel parameters with sysctl
See doc/common_installation_problems/README.md.
I am unable to install omnibus-gitlab without root access
See doc/common_installation_problems/README.md.
gitlab-rake assets:precompile fails with 'Permission denied'
See doc/common_installation_problems/README.md.
'Short read or OOM loading DB' error
See doc/common_installation_problems/README.md.
Backups
Backup and restore omnibus-gitlab configuration
Creating an application backup
Restoring an application backup
See backup restore documentation.
Backup and restore using non-packaged database
If you are using non-packaged database see documentation on using non-packaged database.
Upload backups to remote (cloud) storage
For details check backup restore document of GitLab CE.
Invoking Rake tasks
See doc/maintenance/README.md.
Directory structure
Omnibus-gitlab uses four different directories.
/opt/gitlab
holds application code for GitLab and its dependencies./var/opt/gitlab
holds application data and configuration files thatgitlab-ctl reconfigure
writes to./etc/gitlab
holds configuration files for omnibus-gitlab. These are the only files that you should ever have to edit manually./var/log/gitlab
contains all log data generated by components of omnibus-gitlab.
Omnibus-gitlab and SELinux
Although omnibus-gitlab runs on systems that have SELinux enabled, it does not use SELinux confinement features:
- omnibus-gitlab creates unconfined system users;
- omnibus-gitlab services run in an unconfined context.
The correct operation of Git access via SSH depends on the labeling of
/var/opt/gitlab/.ssh
. If needed you can restore this labeling by running
sudo gitlab-ctl reconfigure
.
Depending on your platform, gitlab-ctl reconfigure
will install SELinux
modules required to make GitLab work. These modules are listed in
files/gitlab-selinux/README.md.
NSA, if you're reading this, we'd really appreciate it if you could contribute back a SELinux profile for omnibus-gitlab :) Of course, if anyone else is reading this, you're welcome to contribute the SELinux profile too.
Logs
This section has been moved to separate document doc/settings/logs.md.
Tail logs in a console on the server
See doc/settings/logs.md.
Runit logs
See doc/settings/logs.md.
Logrotate
See doc/settings/logs.md.
UDP log shipping (GitLab Enterprise Edition only)
Using a MySQL database management server (Enterprise Edition only)
Create a user and database for GitLab
Configure omnibus-gitlab to connect to it
Seed the database (fresh installs only)
Building your own package
See the separate build documentation.
Running a custom GitLab version
It is not recommended to make changes to any of the files in /opt/gitlab
after installing omnibus-gitlab: they will either conflict with or be
overwritten by future updates. If you want to run a custom version of GitLab
you can build your own package or use another installation
method.
Acknowledgments
This omnibus installer project is based on the awesome work done by Chef in omnibus-chef-server.