my basic disk is full for my gitlab installation, is it possible to move the repositories and their data to some other folder and make sure that the upcoming push\'s data is
Just updating in case people still refer to this. From the GitLab documentation:
By default, omnibus-gitlab stores the Git repository data under
/var/opt/gitlab/git-data
. The repositories are stored in a subfolderrepositories
. You can change the location of thegit-data
parent directory by adding the following line to/etc/gitlab/gitlab.rb
.git_data_dirs({"default" => "/mnt/nas/git-data"})
Starting from GitLab 8.10 you can also add more than one git data directory by adding the following lines to
/etc/gitlab/gitlab.rb
instead.git_data_dirs({ "default" => "/var/opt/gitlab/git-data", "alternative" => "/mnt/nas/git-data" })
Note that the target directories and any of its subpaths must not be a symlink.
Run
sudo gitlab-ctl reconfigure
for the changes to take effect.If you already have existing Git repositories in
/var/opt/gitlab/git-data
you can move them to the new location as follows:# Prevent users from writing to the repositories while you move them. sudo gitlab-ctl stop # Note there is _no_ slash behind 'repositories', but there _is_ a # slash behind 'git-data'. sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/ # Fix permissions if necessary sudo gitlab-ctl reconfigure # Double-check directory layout in /mnt/nas/git-data. Expected output: # gitlab-satellites repositories sudo ls /mnt/nas/git-data/ # Done! Start GitLab and verify that you can browse through the repositories in # the web interface. sudo gitlab-ctl start
If you're getting the cannot find repo
error in GitLab after running the above steps. Run this command.
gitlab-rake cache:clear RAILS_ENV=production
This should fix the issue if your pathing is correct.
Much easier solution for new installs with the version > 7.14.1:
Open the gitlab.rb configuration file
sudo nano /etc/gitlab/gitlab.rb
Search for git_data_dir
, uncomment the line and set your directory here, e.g.
git_data_dir "/storage/data/gitlab/git-data"
Save the file and reconfigure Gitlab:
sudo gitlab-ctl reconfigure
you need append this small config bellow:
git_data_dirs({
"default" => {
"path" => "/srv/gitlab/git-data"
}
})
And
rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
chown -R git:git /srv/gitlab/git-data/
sudo gitlab-ctl reconfigure
Done.
In my case, I needed to move a repository from the default
storage to storage1
If you load the project's general setting, it show the project number, for example 37
:
sudo gitlab-rails console
irb(main):012:0> p37 = Project.find(37)
irb(main):009:0> p37.repository_storage
=> "default"
irb(main):010:0> p37.repository_storage = 'storage1'
irb(main):011:0> p37.save
=> true
irb(main):012:0> # <ctrl>+d to send EOF and exit
clearing the cache is probably a good idea too
gitlab-rake cache:clear RAILS_ENV=production
I just moved my gitlab repositories folder from one directory to another, might be useful for someone (do this quickly at a quiet time or stop gitlab beforehand!)
Assuming you have a standard install the steps are
cp -ar SOURCE DESTINATION
sudo /etc/init.d/gitlab restart