Merge branch 'doc-omnibus-differences' into 'master'
Document fun facts about omnibus-gitlab I hope this helps developers understand some of the differences. See merge request !1546
This commit is contained in:
commit
e480e45a8b
1 changed files with 32 additions and 0 deletions
32
doc/development/omnibus.md
Normal file
32
doc/development/omnibus.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
# What you should know about omnibus packages
|
||||
|
||||
Most users install GitLab using our omnibus packages. As a developer it can be
|
||||
good to know how the omnibus packages differ from what you have on your laptop
|
||||
when you are coding.
|
||||
|
||||
## Files are owned by root by default
|
||||
|
||||
All the files in the Rails tree (`app/`, `config/` etc.) are owned by 'root' in
|
||||
omnibus installations. This makes the installation simpler and it provides
|
||||
extra security. The omnibus reconfigure script contains commands that give
|
||||
write access to the 'git' user only where needed.
|
||||
|
||||
For example, the 'git' user is allowed to write in the `log/` directory, in
|
||||
`public/uploads`, and they are allowed to rewrite the `db/schema.rb` file.
|
||||
|
||||
In other cases, the reconfigure script tricks GitLab into not trying to write a
|
||||
file. For instance, GitLab will generate a `.secret` file if it cannot find one
|
||||
and write it to the Rails root. In the omnibus packages, reconfigure writes the
|
||||
`.secret` file first, so that GitLab never tries to write it.
|
||||
|
||||
## Code, data and logs are in separate directories
|
||||
|
||||
The omnibus design separates code (read-only, under `/opt/gitlab`) from data
|
||||
(read/write, under `/var/opt/gitlab`) and logs (read/write, under
|
||||
`/var/log/gitlab`). To make this happen the reconfigure script sets custom
|
||||
paths where it can in GitLab config files, and where there are no path
|
||||
settings, it uses symlinks.
|
||||
|
||||
For example, `config/gitlab.yml` is treated as data so that file is a symlink.
|
||||
The same goes for `public/uploads`. The `log/` directory is replaced by omnibus
|
||||
with a symlink to `/var/log/gitlab/gitlab-rails`.
|
Loading…
Reference in a new issue