This project creates full-stack platform-specific downloadable packages for GitLab.
Go to file
Balasankar 'Balu' C 2a6b25fd76 Generate packer manifests and store them as artifacts
For each AMI build, generate a manifest file with details of the built
artifacts, like AMI IDs. This information can be then used for any
release documentation we might do in the future.

Related https://gitlab.com/gitlab-org/distribution/team-tasks/-/issues/460

Signed-off-by: Balasankar "Balu" C <balasankar@gitlab.com>
2022-11-30 01:03:10 +00:00
.gitlab Updated handbook URLs 2022-09-21 13:03:40 -07:00
config Update Mattermost to 7.5.1 2022-11-21 10:43:44 +02:00
danger Use gitlab-dangerfiles gem 2022-08-16 22:45:11 +00:00
doc Merge branch 'doc-smtp-fastweb-example-config' into 'master' 2022-11-21 20:17:51 +00:00
docker Fix typo in Docker wrapper script 2022-11-04 03:04:58 +00:00
files Change outdated service desk docs link 2022-11-23 04:44:13 +00:00
gitlab-ci-config Generate packer manifests and store them as artifacts 2022-11-30 01:03:10 +00:00
letsencrypt-test Add CI job to validate Let's Encrypt behavior against test ACME endpoint 2021-05-18 15:32:29 +00:00
lib Use correct target for building QA image 2022-11-23 18:49:03 +00:00
resources/rpm Fix package signing for newer rpm versions 2019-07-05 09:54:43 +05:30
scripts Use gitlab-dangerfiles gem 2022-08-16 22:45:11 +00:00
spec Use correct target for building QA image 2022-11-23 18:49:03 +00:00
support Generate packer manifests and store them as artifacts 2022-11-30 01:03:10 +00:00
.custom_sources.yml Merge branch 'security-grafana-patch' into 'master' 2022-09-27 15:40:14 +00:00
.gitattributes Update merge strategy for CHANGELOG.md 2018-03-26 11:27:04 +01:00
.gitignore Generate packer manifests and store them as artifacts 2022-11-30 01:03:10 +00:00
.gitlab-ci.yml Provide packages for openSUSE Leap 15.4 2022-11-24 13:26:31 +00:00
.markdownlint.yml Update project for latest Vale and Markdownlint tooling and rules 2022-09-14 14:18:11 +10:00
.projections.json.example Restructure chef rspecs to match code structure 2022-03-24 04:38:17 +00:00
.rspec Unify the Rspec options into a single pattern 2022-06-03 07:42:02 +00:00
.rubocop.yml Enable Style/GlobalVars cop through all files in RuboCop 2022-09-21 08:31:58 +00:00
.rubocop_todo.yml Use multi-project pipelines for GET:Geo job 2022-10-31 15:48:27 +00:00
.ruby-version Build Omnibus GitLab using Ruby 3 2022-10-06 22:18:47 +00:00
.vale.ini Add Vale checks to project 2020-03-18 06:38:21 +00:00
.yardopts Add yard to generate Ruby code documentation 2021-08-24 04:44:29 +00:00
Berksfile Initial commit 2013-11-21 13:06:42 +02:00
CHANGELOG.md Update changelog for 15.6.0 2022-11-21 09:49:20 +00:00
CONTRIBUTING.md Stop building Debian 9 packages 2022-08-16 23:34:33 +00:00
Dangerfile Use gitlab-dangerfiles gem 2022-08-16 22:45:11 +00:00
GITALY_SERVER_VERSION Reset Gitaly server version back to master 2019-05-03 04:47:51 -07:00
GITLAB_ELASTICSEARCH_INDEXER_VERSION Update GITLAB_ELASTICSEARCH_INDEXER_VERSION to use main branch 2021-02-11 21:40:50 +00:00
GITLAB_KAS_VERSION Switch GITLAB_KAS_VERSION to master 2021-01-11 23:09:41 +00:00
GITLAB_METRICS_EXPORTER_VERSION Add GITLAB_METRICS_EXPORTER_VERSION for releases 2022-07-29 09:14:49 +00:00
GITLAB_PAGES_VERSION Move all VERSION files back to master 2019-05-03 05:08:42 -07:00
GITLAB_SHELL_VERSION Use the 'main' branch for gitlab-shell nightlies 2020-11-26 13:36:42 +00:00
GITLAB_WORKHORSE_VERSION Move all VERSION files back to master 2019-05-03 05:08:42 -07:00
Gemfile Update gitlab-styles from 7.1.0 to 9.0.0 2022-09-15 15:06:20 +00:00
Gemfile.lock Bump rspec and friends to 3.11 in omnibus 2022-11-04 14:58:46 -04:00
LICENSE Change docs license to CC BY-SA 4.0 2018-05-04 13:19:15 +02:00
OMNIBUS_GEM_VERSION Bump Omnibus version to 8.2.1.10 2022-09-01 20:02:24 +00:00
README.md Add command to remove missing directory 2021-11-01 01:52:32 +00:00
Rakefile Speed up rubocop CI job 2018-03-11 10:11:23 +09:00
VERSION Reset VERSION to say master 2019-04-21 11:30:31 +05:30
deps.yml Add exporters to deps.yml 2022-10-12 00:01:26 +00:00
omnibus.rb Bump omnibus to 8.2.1.6 2022-02-04 15:39:29 +00:00
omnibus.rb.example Initial commit 2013-11-21 13:06:42 +02:00

README.md

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.

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, run sudo gitlab-ctl stop && sudo gitlab-ctl remove-accounts before removing the gitlab package (with dpkg or yum).

If you have problems removing accounts or groups, run luserdel or lgroupdel manually to delete them. You might also want to manually remove the leftover user home directories from /home/.

To remove all omnibus-gitlab data use sudo gitlab-ctl cleanse && sudo rm -r /opt/gitlab.

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