They only way I found to keep my changes after a git-lab reconfigure is by editing default.rb and production.rb, please leave a comment if you know an alternative.
1) Installation
Install omnibus-gitlab from: https://www.gitlab.com/downloads/
sudo dpkg -i gitlab_6.6.5-omnibus-1.ubuntu.12.04_amd64.deb
2) Change Unicorn port and email addresses
Edit /opt/gitlab/embedded/cookbooks/gitlab/attributes/default.rb
# I am running Jenkins on 8080 so I need to change Unicorn port to 9292. default['gitlab']['gitlab-rails']['internal_api_url'] = "http://localhost:9292" default['gitlab']['unicorn']['port'] = 9292 # Change default emails default['gitlab']['user']['git_user_email'] = "[email protected]" default['gitlab']['gitlab-rails']['gitlab_email_from'] = "[email protected]" default['gitlab']['gitlab-rails']['gitlab_support_email'] = "[email protected]"
3) (optional) Configure smtp
UPDATE: I decided to configure mailgun directly on my server, see: https://blog.gimpe.com/2014/04/configure-mailgun-on-ubuntu-bsd-mailx-postfix/
Edit /opt/gitlab/embedded/service/gitlab-rails/config/environments/production.rb
# use mailgun for emails config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.smtp_settings = { :address => "smtp.mailgun.org", :port => 587, :domain => "", :authentication => :plain, :user_name => "", :password => "", :enable_starttls_auto => true }
4) Keep backup for 1 week
Note: I use a ZFS partition with daily snapshots.
Edit /opt/gitlab/embedded/cookbooks/gitlab/attributes/default.rb
default['gitlab']['gitlab-rails']['backup_keep_time'] = 604800
See commit: Merge branch ‘allow_setting_backup_keep_time’ into ‘master’
edit /opt/gitlab/embedded/cookbooks/gitlab/templates/default/gitlab.yml.erb
# uncomment backup keep timekeep_time: 604800 # default: 0 (forever) (in seconds)
5) Use a NFS mount for backups
Edit /etc/fstab
host:/mnt/vol1/backup/gitlab /var/opt/gitlab/backups nfs _netdev,auto 0 0
6) Schedule daily backups in crontab
Type sudo crontab -e
0 2 * * * gitlab-rake gitlab:backup:create
7) (optional) Change hostname
Edit /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
# change hostname (if needed) host: gitlab.local
8) Reconfigure!
sudo gitlab-ctl reconfigure