summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock7
-rw-r--r--README.md46
-rw-r--r--doc/README.md1
-rw-r--r--doc/install/installation.md6
-rw-r--r--doc/operations/README.md3
-rw-r--r--doc/operations/sidekiq_memory_killer.md38
7 files changed, 57 insertions, 45 deletions
diff --git a/Gemfile b/Gemfile
index b4ca5969277..ce9b83308f3 100644
--- a/Gemfile
+++ b/Gemfile
@@ -28,6 +28,7 @@ gem 'omniauth-google-oauth2'
gem 'omniauth-twitter'
gem 'omniauth-github'
gem 'omniauth-shibboleth'
+gem 'omniauth-kerberos'
# Extracting information from a git repository
# Provide access to Gitlab::Git library
diff --git a/Gemfile.lock b/Gemfile.lock
index 4bcb1eb0de5..a93935ff5cb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -322,6 +322,11 @@ GEM
omniauth-google-oauth2 (0.2.5)
omniauth (> 1.0)
omniauth-oauth2 (~> 1.1)
+ omniauth-kerberos (0.2.0)
+ omniauth-multipassword
+ timfel-krb5-auth (~> 0.8)
+ omniauth-multipassword (0.4.1)
+ omniauth (~> 1.0)
omniauth-oauth (1.0.1)
oauth
omniauth (~> 1.0)
@@ -531,6 +536,7 @@ GEM
thread_safe (0.3.4)
tilt (1.4.1)
timers (1.1.0)
+ timfel-krb5-auth (0.8)
tinder (1.9.3)
eventmachine (~> 1.0)
faraday (~> 0.8)
@@ -655,6 +661,7 @@ DEPENDENCIES
omniauth (~> 1.1.3)
omniauth-github
omniauth-google-oauth2
+ omniauth-kerberos
omniauth-shibboleth
omniauth-twitter
org-ruby (= 0.9.9)
diff --git a/README.md b/README.md
index f303e8e7383..abf8331fa8e 100644
--- a/README.md
+++ b/README.md
@@ -66,55 +66,15 @@ Since 2011 a minor or major version of GitLab is released on the 22nd of every m
For updating the the Omnibus installation please see the [update documentation](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/update.md). For manual installations there is an [upgrader script](doc/update/upgrader.md) and there are [upgrade guides](doc/update).
-## Run in production mode
-
-The Installation guide contains instructions on how to download an init script and run it automatically on boot. You can also start the init script manually:
-
- sudo service gitlab start
-
-or by directly calling the script:
-
- sudo /etc/init.d/gitlab start
-
-Please login with `root` / `5iveL!fe`
-
## Install a development environment
We recommend setting up your development environment with [the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit).
-If you do not use the development kit you might need to copy the example development unicorn configuration file
+If you do not use the GitLab Development Development kit you need to install and setup all the dependencies yourself, this is a lot of work and error prone.
+One small thing you also have to do when installing it yourself is to copy the example development unicorn configuration file:
cp config/unicorn.rb.example.development config/unicorn.rb
-## Run in development mode
-
-Start it with [Foreman](https://github.com/ddollar/foreman)
-
- bundle exec foreman start -p 3000
-
-or start each component separately:
-
- bundle exec rails s
- bin/background_jobs start
-
-And surf to [localhost:3000](http://localhost:3000/) and login with `root` / `5iveL!fe`.
-
-## Run the tests
-
-- Run all tests:
-
- bundle exec rake test
-
-- [RSpec](http://rspec.info/) unit and functional tests.
-
- All RSpec tests: `bundle exec rake spec`
-
- Single RSpec file: `bundle exec rspec spec/controllers/commit_controller_spec.rb`
-
-- [Spinach](https://github.com/codegram/spinach) integration tests.
-
- All Spinach tests: `bundle exec rake spinach`
-
- Single Spinach test: `bundle exec spinach features/project/issues/milestones.feature`
+Instructions on how to start Gitlab and how to run the tests can be found in the [development section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#development).
## Documentation
diff --git a/doc/README.md b/doc/README.md
index 896224fe930..3c8f8ad3d03 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -23,6 +23,7 @@
- [Welcome message](customization/welcome_message.md) Add a custom welcome message to the sign-in page.
- [Issue closing](customization/issue_closing.md) Customize how to close an issue from commit messages.
- [Libravatar](customization/libravatar.md) Use Libravatar for user avatars.
+- [Operations](operations/README.md) Keeping GitLab up and running
## Contributor documentation
diff --git a/doc/install/installation.md b/doc/install/installation.md
index f55a0e73199..539e1c396e4 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -383,15 +383,17 @@ NOTE: Supply `SANITIZE=true` environment variable to `gitlab:check` to omit proj
### Initial Login
-Visit YOUR_SERVER in your web browser for your first GitLab login. The setup has created an admin account for you. You can use it to log in:
+Visit YOUR_SERVER in your web browser for your first GitLab login. The setup has created a default admin account for you. You can use it to log in:
root
5iveL!fe
-**Important Note:** Please go over to your profile page and immediately change the password, so nobody can access your GitLab by using this login information later on.
+**Important Note:** Please login to the server before exposing it to the public internet. On login you'll be prompted to change the password.
**Enjoy!**
+You can use `sudo service gitlab start` and `sudo service gitlab stop` to start and stop GitLab.
+
## Advanced Setup Tips
### Using HTTPS
diff --git a/doc/operations/README.md b/doc/operations/README.md
new file mode 100644
index 00000000000..31b1b583b0c
--- /dev/null
+++ b/doc/operations/README.md
@@ -0,0 +1,3 @@
+# GitLab operations
+
+- [Sidekiq MemoryKiller](sidekiq_memory_killer.md)
diff --git a/doc/operations/sidekiq_memory_killer.md b/doc/operations/sidekiq_memory_killer.md
new file mode 100644
index 00000000000..867b01b0d5a
--- /dev/null
+++ b/doc/operations/sidekiq_memory_killer.md
@@ -0,0 +1,38 @@
+# Sidekiq MemoryKiller
+
+The GitLab Rails application code suffers from memory leaks. For web requests
+this problem is made manageable using
+[unicorn-worker-killer](https://github.com/kzk/unicorn-worker-killer) which
+restarts Unicorn worker processes in between requests when needed. The Sidekiq
+MemoryKiller applies the same approach to the Sidekiq processes used by GitLab
+to process background jobs.
+
+Unlike unicorn-worker-killer, which is enabled by default for all GitLab
+installations since GitLab 6.4, the Sidekiq MemoryKiller is enabled by default
+_only_ for Omnibus packages. The reason for this is that the MemoryKiller
+relies on Runit to restart Sidekiq after a memory-induced shutdown and GitLab
+installations from source do not all use Runit or an equivalent.
+
+With the default settings, the MemoryKiller will cause a Sidekiq restart no
+more often than once every 15 minutes, with the restart causing about one
+minute of delay for incoming background jobs.
+
+## Configuring the MemoryKiller
+
+The MemoryKiller is controlled using environment variables.
+
+- `SIDEKIQ_MEMORY_KILLER_MAX_RSS`: if this variable is set, and its value is
+ greater than 0, then after each Sidekiq job, the MemoryKiller will check the
+ RSS of the Sidekiq process that executed the job. If the RSS of the Sidekiq
+ process (expressed in kilobytes) exceeds SIDEKIQ_MEMORY_KILLER_MAX_RSS, a
+ delayed shutdown is triggered. The default value for Omnibus packages is set
+ [in the omnibus-gitlab
+ repository](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/attributes/default.rb).
+- `SIDEKIQ_MEMORY_KILLER_GRACE_TIME`: defaults 900 seconds (15 minutes). When
+ a shutdown is triggered, the Sidekiq process will keep working normally for
+ another 15 minutes.
+- `SIDEKIQ_MEMORY_KILLER_SHUTDOWN_WAIT`: defaults to 30 seconds. When the grace
+ time has expired, the MemoryKiller tells Sidekiq to stop accepting new jobs.
+ Existing jobs get 30 seconds to finish. After that, the MemoryKiller tells
+ Sidekiq to shut down, and an external supervision mechanism (e.g. Runit) must
+ restart Sidekiq.