Omnibus GitLab
Description
This project creates full-stack platform-specific Linux 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 can be found in the doc directory.
Omnibus fork
Omnibus GitLab is using a fork of omnibus project. For additional information see the comments in the Gemfile.
Deprecated links
We left the links below in the readme to preserve old links, but please use the doc directory to browse the complete documentation.
Contributing
Please see the contribution guidelines
Installation
Please follow the steps of the install documentation.
After installation
Your GitLab instance should be 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/index.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
See doc/settings/nginx.md.
Redirect HTTP requests to HTTPS
See doc/settings/nginx.md.
Change the default port and the ssl certificate locations
See doc/settings/nginx.md.
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 DBMS see doc/settings/database.md
Using a non-packaged Redis instance
See doc/settings/redis.md.
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
docs.gitlab.com.
Setting the NGINX listen address or addresses
See doc/settings/nginx.md.
Inserting custom NGINX settings into the GitLab server block
See doc/settings/nginx.md.
Inserting custom settings into the NGINX config
See doc/settings/nginx.md.
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 directory.
Uninstalling Omnibus GitLab
See doc/installation/_index.md.
Common installation problems
This section has been moved to the separate document doc/troubleshooting.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/troubleshooting.md.
GitLab is unreachable in my browser
See doc/troubleshooting.md.
Emails are not being delivered
See doc/troubleshooting.md.
TCP ports for GitLab services are already taken
See doc/troubleshooting.md.
Git SSH access stops working on SELinux-enabled systems
See doc/troubleshooting.md.
Postgres error 'FATAL: could not create shared memory segment: Cannot allocate memory'
See doc/troubleshooting.md.
Reconfigure complains about the GLIBC version
See doc/troubleshooting.md.
Reconfigure fails to create the git user
See doc/troubleshooting.md.
Failed to modify kernel parameters with sysctl
See doc/troubleshooting.md.
I am unable to install omnibus-gitlab without root access
See doc/troubleshooting.md.
gitlab-rake assets:precompile fails with 'Permission denied'
See doc/troubleshooting.md.
'Short read or OOM loading DB' error
See doc/troubleshooting.md.
Backups
See doc/settings/backups.md.
Backup and restore omnibus-gitlab configuration
See doc/settings/backups.md.
Creating an application backup
See doc/settings/backups.md.
Restoring an application backup
See 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 documentation.
Invoking Rake tasks
See doc/maintenance/_index.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 that
gitlab-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)
See doc/settings/logs.md
Create a user and database for GitLab
See doc/settings/database.md.
Configure omnibus-gitlab to connect to it
See doc/settings/database.md.
Seed the database (fresh installs only)
See doc/settings/database.md.
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.