nixos: Add gitlab and gitlab-shell
I had to make several adjustments to make it work with nixos: * Replace relative config file lookups with ENV variable. * Modify gitlab-shell to not clear then environment when running pre-receive. * Modify gitlab-shell to write some environment variables into the .authorized_keys file to make sure gitlab-shell reads the correct config file. * Log unicorn output to syslog. I tried various ways of adding a syslog package but the bundler would not pick them up. Please fix in a better way if possible. * Gitlab-runner program wrapper. This is useful to run e.g. backups etc. with the correct environment set up.
This commit is contained in:
committed by
Jaka Hudoklin
parent
b7eba773dc
commit
59995e168c
@@ -0,0 +1,109 @@
|
||||
diff --git a/config/environments/production.rb b/config/environments/production.rb
|
||||
index 78bf543..9b37122 100644
|
||||
--- a/config/environments/production.rb
|
||||
+++ b/config/environments/production.rb
|
||||
@@ -66,10 +66,10 @@ Gitlab::Application.configure do
|
||||
|
||||
config.action_mailer.delivery_method = :sendmail
|
||||
# Defaults to:
|
||||
- # # config.action_mailer.sendmail_settings = {
|
||||
- # # location: '/usr/sbin/sendmail',
|
||||
- # # arguments: '-i -t'
|
||||
- # # }
|
||||
+ config.action_mailer.sendmail_settings = {
|
||||
+ location: '/var/setuid-wrappers/sendmail',
|
||||
+ arguments: '-i -t'
|
||||
+ }
|
||||
config.action_mailer.perform_deliveries = true
|
||||
config.action_mailer.raise_delivery_errors = true
|
||||
|
||||
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
|
||||
index e7a8d08..834ecaf 100644
|
||||
--- a/config/gitlab.yml.example
|
||||
+++ b/config/gitlab.yml.example
|
||||
@@ -17,8 +17,8 @@ production: &base
|
||||
## GitLab settings
|
||||
gitlab:
|
||||
## Web server settings (note: host is the FQDN, do not include http://)
|
||||
- host: localhost
|
||||
- port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
|
||||
+ host: <%= ENV['GITLAB_HOST'] || 'localhost' %>
|
||||
+ port: <%= ENV['GITLAB_PORT'] || 80 %>
|
||||
https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details
|
||||
|
||||
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one
|
||||
@@ -31,11 +31,11 @@ production: &base
|
||||
# relative_url_root: /gitlab
|
||||
|
||||
# Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
|
||||
- # user: git
|
||||
+ user: gitlab
|
||||
|
||||
## Email settings
|
||||
# Email address used in the "From" field in mails sent by GitLab
|
||||
- email_from: example@example.com
|
||||
+ email_from: <%= ENV['GITLAB_EMAIL_FROM'] %>
|
||||
|
||||
# Email server smtp settings are in [a separate file](initializers/smtp_settings.rb.sample).
|
||||
|
||||
@@ -230,12 +230,12 @@ production: &base
|
||||
# GitLab Satellites
|
||||
satellites:
|
||||
# Relative paths are relative to Rails.root (default: tmp/repo_satellites/)
|
||||
- path: /home/git/gitlab-satellites/
|
||||
+ path: <%= ENV['GITLAB_SATELLITES_PATH'] %>
|
||||
timeout: 30
|
||||
|
||||
## Backup settings
|
||||
backup:
|
||||
- path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
|
||||
+ path: <%= ENV['GITLAB_BACKUP_PATH'] %>
|
||||
# keep_time: 604800 # default: 0 (forever) (in seconds)
|
||||
# upload:
|
||||
# # Fog storage connection settings, see http://fog.io/storage/ .
|
||||
@@ -249,11 +249,11 @@ production: &base
|
||||
|
||||
## GitLab Shell settings
|
||||
gitlab_shell:
|
||||
- path: /home/git/gitlab-shell/
|
||||
+ path: <%= ENV['GITLAB_SHELL_PATH'] %>
|
||||
|
||||
# REPOS_PATH MUST NOT BE A SYMLINK!!!
|
||||
- repos_path: /home/git/repositories/
|
||||
- hooks_path: /home/git/gitlab-shell/hooks/
|
||||
+ repos_path: <%= ENV['GITLAB_REPOSITORIES_PATH'] %>
|
||||
+ hooks_path: <%= ENV['GITLAB_SHELL_HOOKS_PATH'] %>
|
||||
|
||||
# Git over HTTP
|
||||
upload_pack: true
|
||||
@@ -266,7 +266,7 @@ production: &base
|
||||
# CAUTION!
|
||||
# Use the default values unless you really know what you are doing
|
||||
git:
|
||||
- bin_path: /usr/bin/git
|
||||
+ bin_path: git
|
||||
# The next value is the maximum memory size grit can use
|
||||
# Given in number of bytes per git object (e.g. a commit)
|
||||
# This value can be increased if you have very large commits
|
||||
@@ -299,7 +299,7 @@ test:
|
||||
gravatar:
|
||||
enabled: true
|
||||
gitlab:
|
||||
- host: localhost
|
||||
+ host: <%= ENV['GITLAB_HOST'] %>
|
||||
port: 80
|
||||
|
||||
# When you run tests we clone and setup gitlab-shell
|
||||
diff --git a/lib/gitlab/app_logger.rb b/lib/gitlab/app_logger.rb
|
||||
index 8e4717b..abfe2e4 100644
|
||||
--- a/lib/gitlab/app_logger.rb
|
||||
+++ b/lib/gitlab/app_logger.rb
|
||||
@@ -1,7 +1,7 @@
|
||||
module Gitlab
|
||||
class AppLogger < Gitlab::Logger
|
||||
def self.file_name
|
||||
- 'application.log'
|
||||
+ ENV["GITLAB_APPLICATION_LOG_PATH"]
|
||||
end
|
||||
|
||||
def format_message(severity, timestamp, progname, msg)
|
||||
Reference in New Issue
Block a user