Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • brodock/rename-container-wrapper
  • 8897-add-product-usage-data-setting
  • cb-auto-upgrade-pg-16
  • cb-fips-go-1-23-6
  • ashmckenzie/add-best-practices-section
  • sh-support-postgresql-scram
  • sh-relative-uri-api-fix
  • 7233-gitlab-ctl-geo-replication-pause-fails-when-postgresql-dir-configured
  • registry-pdm
  • jliu/gitaly-cgroupsv2
  • 17-7-stable protected
  • 17-8-stable protected
  • 17-9-stable protected
  • gem-check-for-the-win
  • sh-test-ruby-3.4.2
  • use-ubuntu-24-04-docker
  • 8811-bump-prometheus-3
  • 8928-use-ubuntu-24-04-aws-ami
  • docs-rotate-package-signing-key
  • 17.7.6+ee.0 protected
  • 17.7.6+ce.0 protected
  • 17.8.4+ee.0 protected
  • 17.8.4+ce.0 protected
  • 17.9.1+ee.0 protected
  • 17.9.1+ce.0 protected
  • 17.8.3+ee.0 protected
  • 17.8.3+ce.0 protected
  • 17.7.5+ee.0 protected
  • 17.7.5+ce.0 protected
  • 17.9.0+ee.0 protected
  • 17.9.0+ce.0 protected
  • 17.9.0+rc42.ee.0 protected
  • 17.9.0+rc42.ce.0 protected
  • 17.6.5+ee.0 protected
  • 17.6.5+ce.0 protected
  • 17.7.4+ee.0 protected
  • 17.7.4+ce.0 protected
  • 17.8.2+ee.0 protected
  • 17.8.2+ce.0 protected
40 results

omnibus-gitlab

  • Clone with SSH
  • Clone with HTTPS
  • Evan Read's avatar
    Evan Read authored
    Move install info to new docs page
    
    See merge request !3938
    5a0c9a00
    History

    Omnibus GitLab

    Description

    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. 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 readme in the doc directory to browse the complete documentation.

    Contributing

    Please see the contribution guidelines

    Installation

    Please follow the steps on the downloads page.

    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/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

    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.

    Adjusting Unicorn settings

    See doc/settings/unicorn.md.

    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 doc.

    Uninstalling omnibus-gitlab

    To remove all users and groups created by omnibus-gitlab, before removing the gitlab package (with dpkg or yum) run sudo gitlab-ctl remove-accounts. Note All gitlab processes need to be stopped before running the command.

    To remove all omnibus-gitlab data use sudo gitlab-ctl cleanse.

    To uninstall omnibus-gitlab, preserving your data (repositories, database, configuration), run the following commands.

    # Stop gitlab and remove its supervision process
    sudo systemctl stop    gitlab-runsvdir
    sudo systemctl disable gitlab-runsvdir
    sudo rm /usr/lib/systemd/system/gitlab-runsvdir.service
    sudo systemctl daemon-reload
    sudo gitlab-ctl uninstall
    
    # (Replace with gitlab-ce if you have GitLab FOSS installed)
    
    # Debian/Ubuntu
    sudo apt remove gitlab-ee
    
    # Redhat/Centos
    sudo yum remove gitlab-ee

    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.

    Emails are not being delivered

    See doc/common_installation_problems/README.md.

    Reconfigure freezes at ruby_block[supervise_redis_sleep] action run

    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

    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 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 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.