diff --git a/software/gitlab/software.cfg b/software/gitlab/software.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a15ddebcd06870fbfcc29b48e71830dc294eb9a8
--- /dev/null
+++ b/software/gitlab/software.cfg
@@ -0,0 +1,141 @@
+# GitLab software-release
+[buildout]
+extends =
+    ../../stack/slapos.cfg
+    ../../component/ruby/buildout.cfg
+    ../../component/golang/buildout.cfg
+    ../../component/postgresql/buildout.cfg
+    ../../component/redis/buildout.cfg
+    ../../component/cmake/buildout.cfg
+    ../../component/icu/buildout.cfg
+    ../../component/pkgconfig/buildout.cfg
+    ../../component/nodejs/buildout.cfg
+    ../../component/openssl/buildout.cfg
+    ../../component/nginx/buildout.cfg
+
+parts =
+    ruby2.1
+    golang15
+    git
+    postgresql92
+    redis28
+    cmake
+    icu
+    pkgconfig
+    nginx-output
+
+    gitlab-shell/vendor
+    gitlab/vendor/bundle
+    gitlab-workhorse
+
+
+############################
+#   Software compilation   #
+############################
+
+# rubygemsrecipe with fixed url and this way pinned rubygems version
+[rubygemsrecipe]
+recipe  = rubygemsrecipe
+url     = https://rubygems.org/rubygems/rubygems-2.5.1.zip
+
+
+# bundler, that we'll use to
+# - install gems for gitlab
+# - run gitlab services / jobs  (via `bundle exec ...`)
+[bundler-4gitlab]
+<= rubygemsrecipe
+ruby-location = ${ruby2.1:location}
+ruby-executable = ${:ruby-location}/bin/ruby
+gems    = bundler==1.11.2
+
+# bin installed here
+bundle  = ${buildout:bin-directory}/bundle
+
+# install together with dependencies of gitlab, which we cannot specify using
+#   --with-... gem option
+# ( reason: rubygemsrecipe hardcodes PATH inside generated bin/* and it is
+#   impossible to adjust it later )
+#
+# bundle exec <smth>                ; <smth> starts with `#!/usr/bin/env ruby` as rubygems
+# Rugged needs: cmake, pkgconfig
+# execjs needs: nodejs
+# rails needs db client program on path: psql
+# gitlab wants to check redis version via running: redis-cli
+environment =
+  PATH    = ${:ruby-location}/bin:${cmake:location}/bin:${pkgconfig:location}/bin:${nodejs:location}/bin:${postgresql92:location}/bin:${redis28:location}/bin:%(PATH)s
+
+
+# gitlab, gitlab-shell & gitlab-workhorse checked out as git repositories
+# pinned to exact commit
+[git-repository]
+recipe  = slapos.recipe.build:gitclone
+git-executable = ${git:location}/bin/git
+
+[gitlab-repository]
+<= git-repository
+repository = https://gitlab.com/gitlab-org/gitlab-ce.git
+# 8.2.X
+revision = v8.2.3-0-g19daba8a6f170e38bcd7371bab2d582d5324b215
+location = ${buildout:parts-directory}/gitlab
+
+[gitlab-shell-repository]
+<= git-repository
+repository = https://gitlab.com/gitlab-org/gitlab-shell.git
+# gitlab 8.2 wants gitlab-shell 2.6.8
+revision = v2.6.8-0-g1a75d086b53d799ac10f77acfb198f2c5ea95621
+location = ${buildout:parts-directory}/gitlab-shell
+
+[gitlab-workhorse-repository]
+<= git-repository
+repository = https://gitlab.com/gitlab-org/gitlab-workhorse.git
+# 0.4.X
+revision = 0.4.1-3-g9123131eab0de3b896b8c365dc8f8892c13f70a9
+location = ${buildout:parts-directory}/gitlab-workhorse
+
+
+
+# build needed-by-gitlab gems via bundler
+[gitlab/vendor/bundle]
+recipe  = slapos.recipe.cmmi
+path    = ${gitlab-repository:location}
+bundle  = ${bundler-4gitlab:bundle}
+
+configure-command = cd ${:path} &&
+    ${:bundle} config --local build.charlock_holmes --with-icu-dir=${icu:location}  &&
+    ${:bundle} config --local build.pg  --with-pg-config=${postgresql92:location}/bin/pg_config
+
+make-binary =
+make-targets= cd ${:path} &&
+    ${:bundle} install --deployment  --without development test  mysql kerberos
+
+
+# build needed-by-gitlab-shell gems via bundler
+# ( there is not vendor/ dir in gitlab-shell, so to avoid having buildout error
+#   on mkdir vendor/bundle, this part name is just /vendor )
+[gitlab-shell/vendor]
+recipe  = slapos.recipe.cmmi
+path    = ${gitlab-shell-repository:location}
+bundle  = ${bundler-4gitlab:bundle}
+
+configure-command = true
+make-binary =
+make-targets= cd ${:path} &&
+    ${:bundle} install --deployment  --without development test
+
+
+# build gitlab-workhorse
+[gitlab-workhorse]
+recipe  = slapos.recipe.cmmi
+path    = ${gitlab-workhorse-repository:location}
+
+configure-command = :
+make-targets= ${:_buildout_section_name_}
+
+environment =
+  PATH=${golang15:location}/bin:%(PATH)s
+
+
+
+
+[versions]
+rubygemsrecipe  = 0.2.2