├── data ├── mysql │ └── .gitignore ├── ssh │ └── .gitignore ├── tmp │ └── .gitignore ├── repositories │ └── .gitignore └── gitlab-satellites │ └── .gitignore ├── config ├── database.yml ├── nginx └── gitlab.yml ├── firstrun.sh ├── start.sh ├── Dockerfile └── readme.md /data/mysql/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore 2 | -------------------------------------------------------------------------------- /data/ssh/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore 2 | -------------------------------------------------------------------------------- /data/tmp/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore 2 | -------------------------------------------------------------------------------- /data/repositories/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore 2 | -------------------------------------------------------------------------------- /data/gitlab-satellites/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore 2 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # 2 | # PRODUCTION 3 | # 4 | production: 5 | adapter: mysql2 6 | encoding: utf8 7 | reconnect: false 8 | database: gitlabhq_production 9 | pool: 10 10 | username: git 11 | password: "secure password" 12 | # host: localhost 13 | # socket: /tmp/mysql.sock 14 | 15 | # 16 | # Development specific 17 | # 18 | development: 19 | adapter: mysql2 20 | encoding: utf8 21 | reconnect: false 22 | database: gitlabhq_development 23 | pool: 5 24 | username: root 25 | password: "secure password" 26 | # socket: /tmp/mysql.sock 27 | 28 | # Warning: The database defined as "test" will be erased and 29 | # re-generated from your development database when you run "rake". 30 | # Do not set this db to the same as development or production. 31 | test: &test 32 | adapter: mysql2 33 | encoding: utf8 34 | reconnect: false 35 | database: gitlabhq_test 36 | pool: 5 37 | username: root 38 | password: 39 | # socket: /tmp/mysql.sock 40 | -------------------------------------------------------------------------------- /config/nginx: -------------------------------------------------------------------------------- 1 | # GITLAB 2 | # Maintainer: @randx 3 | # App Version: 5.0 4 | 5 | upstream gitlab { 6 | server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; 7 | } 8 | 9 | server { 10 | listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea 11 | server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com; 12 | server_tokens off; # don't show the version number, a security best practice 13 | root /home/git/gitlab/public; 14 | 15 | # individual nginx logs for this gitlab vhost 16 | access_log /var/log/nginx/gitlab_access.log; 17 | error_log /var/log/nginx/gitlab_error.log; 18 | 19 | location / { 20 | # serve static files from defined root folder;. 21 | # @gitlab is a named location for the upstream fallback, see below 22 | try_files $uri $uri/index.html $uri.html @gitlab; 23 | } 24 | 25 | # if a file, which is not found in the root folder is requested, 26 | # then the proxy pass the request to the upsteam (gitlab unicorn) 27 | location @gitlab { 28 | proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 29 | proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 30 | proxy_redirect off; 31 | 32 | proxy_set_header X-Forwarded-Proto $scheme; 33 | proxy_set_header Host $http_host; 34 | proxy_set_header X-Real-IP $remote_addr; 35 | 36 | proxy_pass http://gitlab; 37 | } 38 | } 39 | 40 | -------------------------------------------------------------------------------- /firstrun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set these parameters 4 | mysqlRoot=RootPassword 5 | 6 | # === Do not modify anything in this section === 7 | 8 | # Regenerate the SSH host key 9 | /bin/rm /etc/ssh/ssh_host_* 10 | dpkg-reconfigure openssh-server 11 | 12 | password=$(cat /srv/gitlab/config/database.yml | grep -m 1 password | sed -e 's/ password: "//g' | sed -e 's/"//g') 13 | 14 | # ============================================== 15 | 16 | # === Delete this section if restoring data from previous build === 17 | 18 | # Precompile assets 19 | cd /home/git/gitlab 20 | su git -c "bundle exec rake assets:precompile RAILS_ENV=production" 21 | 22 | rm -R /srv/gitlab/data/mysql 23 | mv /var/lib/mysql-tmp /srv/gitlab/data/mysql 24 | 25 | # Start MySQL 26 | mysqld_safe & 27 | sleep 5 28 | 29 | # Initialize MySQL 30 | mysqladmin -u root --password=temprootpass password $mysqlRoot 31 | echo "CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';" | \ 32 | mysql --user=root --password=$mysqlRoot 33 | echo "CREATE DATABASE IF NOT EXISTS gitlabhq_production DEFAULT CHARACTER SET \ 34 | 'utf8' COLLATE 'utf8_unicode_ci';" | mysql --user=root --password=$mysqlRoot 35 | echo "GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, \ 36 | ALTER ON gitlabhq_production.* TO 'git'@'localhost';" | mysql \ 37 | --user=root --password=$mysqlRoot 38 | 39 | cd /home/git/gitlab 40 | su git -c "bundle exec rake gitlab:setup force=yes RAILS_ENV=production" 41 | sleep 5 42 | su git -c "bundle exec rake db:seed_fu RAILS_ENV=production" 43 | 44 | # ================================================================ 45 | 46 | # Delete firstrun script 47 | rm /srv/gitlab/firstrun.sh 48 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # upstart workaround 4 | dpkg-divert --local --rename --add /sbin/initctl 5 | ln -s /bin/true /sbin/initctl 6 | 7 | # start SSH 8 | mkdir -p /var/run/sshd 9 | /usr/sbin/sshd 10 | 11 | # start redis 12 | redis-server > /dev/null 2>&1 & 13 | sleep 5 14 | 15 | # remove PIDs created by GitLab init script 16 | rm /home/git/gitlab/tmp/pids/* 17 | 18 | # Copy over config files 19 | cp /srv/gitlab/config/gitlab.yml /home/git/gitlab/config/gitlab.yml 20 | cp /srv/gitlab/config/nginx /etc/nginx/sites-available/gitlab 21 | ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab 22 | cp /srv/gitlab/config/database.yml /home/git/gitlab/config/database.yml 23 | chown git:git /home/git/gitlab/config/database.yml && chmod o-rwx /home/git/gitlab/config/database.yml 24 | 25 | # Link data directories to /srv/gitlab/data 26 | rm -R /home/git/gitlab/tmp && ln -s /srv/gitlab/data/tmp /home/git/gitlab/tmp && chown -R git /srv/gitlab/data/tmp/ && chmod -R u+rwX /srv/gitlab/data/tmp/ 27 | rm -R /home/git/.ssh && ln -s /srv/gitlab/data/ssh /home/git/.ssh && chown -R git:git /srv/gitlab/data/ssh && chmod -R 0700 /srv/gitlab/data/ssh && chmod 0700 /home/git/.ssh 28 | chown -R git:git /srv/gitlab/data/gitlab-satellites 29 | chown -R git:git /srv/gitlab/data/repositories && chmod -R ug+rwX,o-rwx /srv/gitlab/data/repositories && chmod -R ug-s /srv/gitlab/data/repositories/ 30 | find /srv/gitlab/data/repositories/ -type d -print0 | xargs -0 chmod g+s 31 | 32 | # fix timeout - https://github.com/gitlabhq/gitlabhq/issues/694 33 | sed -i 's/^timeout .*/timeout 300/' /home/git/gitlab/config/unicorn.rb 34 | 35 | # Change repo path in gitlab-shell config 36 | sed -i -e 's/\/home\/git\/repositories/\/srv\/gitlab\/data\/repositories/g' /home/git/gitlab-shell/config.yml 37 | 38 | # Link MySQL dir to /srv/gitlab/data 39 | mv /var/lib/mysql /var/lib/mysql-tmp 40 | ln -s /srv/gitlab/data/mysql /var/lib/mysql 41 | 42 | # Run the firstrun script 43 | /srv/gitlab/firstrun.sh 44 | 45 | # start mysql 46 | mysqld_safe & 47 | 48 | # start gitlab 49 | service gitlab start 50 | 51 | # start nginx 52 | service nginx start 53 | 54 | sleep 5 55 | 56 | # keep script in foreground 57 | su git -c "touch /home/git/gitlab/log/production.log" 58 | tail -f /home/git/gitlab/log/production.log 59 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:12.04 2 | ENV MYSQLTMPROOT temprootpass 3 | 4 | # Run upgrades 5 | RUN echo deb http://us.archive.ubuntu.com/ubuntu/ precise universe multiverse >> /etc/apt/sources.list;\ 6 | echo deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe >> /etc/apt/sources.list;\ 7 | echo deb http://security.ubuntu.com/ubuntu precise-security main restricted universe >> /etc/apt/sources.list;\ 8 | echo udev hold | dpkg --set-selections;\ 9 | echo initscripts hold | dpkg --set-selections;\ 10 | echo upstart hold | dpkg --set-selections;\ 11 | apt-get update;\ 12 | apt-get -y upgrade 13 | 14 | # Install dependencies 15 | RUN apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev sudo python python-docutils python-software-properties nginx logrotate sendmail 16 | 17 | # Install Git 18 | RUN add-apt-repository -y ppa:git-core/ppa;\ 19 | apt-get update;\ 20 | apt-get -y install git 21 | 22 | # Install Ruby 23 | RUN mkdir /tmp/ruby;\ 24 | cd /tmp/ruby;\ 25 | curl ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz;\ 26 | cd ruby-2.0.0-p247;\ 27 | chmod +x configure;\ 28 | ./configure --disable-install-rdoc;\ 29 | make;\ 30 | make install;\ 31 | gem install bundler --no-ri --no-rdoc 32 | 33 | # Create Git user 34 | RUN adduser --disabled-login --gecos 'GitLab' git 35 | 36 | # Install GitLab Shell 37 | RUN cd /home/git;\ 38 | su git -c "git clone https://github.com/gitlabhq/gitlab-shell.git -b v1.8.0";\ 39 | cd gitlab-shell;\ 40 | su git -c "cp config.yml.example config.yml";\ 41 | sed -i -e 's/localhost/127.0.0.1/g' config.yml;\ 42 | su git -c "./bin/install" 43 | 44 | # Install MySQL 45 | RUN echo mysql-server mysql-server/root_password password $MYSQLTMPROOT | debconf-set-selections;\ 46 | echo mysql-server mysql-server/root_password_again password $MYSQLTMPROOT | debconf-set-selections;\ 47 | apt-get install -y mysql-server mysql-client libmysqlclient-dev 48 | 49 | # Install GitLab 50 | RUN cd /home/git;\ 51 | su git -c "git clone https://github.com/gitlabhq/gitlabhq.git -b 6-4-stable gitlab" 52 | 53 | # Misc configuration stuff 54 | RUN cd /home/git/gitlab;\ 55 | chown -R git tmp/;\ 56 | chown -R git log/;\ 57 | chmod -R u+rwX log/;\ 58 | chmod -R u+rwX tmp/;\ 59 | su git -c "mkdir /home/git/gitlab-satellites";\ 60 | su git -c "mkdir tmp/pids/";\ 61 | su git -c "mkdir tmp/sockets/";\ 62 | chmod -R u+rwX tmp/pids/;\ 63 | chmod -R u+rwX tmp/sockets/;\ 64 | su git -c "mkdir public/uploads";\ 65 | chmod -R u+rwX public/uploads;\ 66 | su git -c "cp config/unicorn.rb.example config/unicorn.rb";\ 67 | su git -c "cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb";\ 68 | su git -c "git config --global user.name 'GitLab'";\ 69 | su git -c "git config --global user.email 'gitlab@localhost'";\ 70 | su git -c "git config --global core.autocrlf input" 71 | 72 | RUN cd /home/git/gitlab;\ 73 | su git -c "bundle install --deployment --without development test postgres aws" 74 | 75 | # Install init scripts 76 | RUN cd /home/git/gitlab;\ 77 | cp lib/support/init.d/gitlab /etc/init.d/gitlab;\ 78 | update-rc.d gitlab defaults 21;\ 79 | cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab 80 | 81 | EXPOSE 80 82 | EXPOSE 22 83 | 84 | ADD . /srv/gitlab 85 | 86 | RUN chmod +x /srv/gitlab/start.sh;\ 87 | chmod +x /srv/gitlab/firstrun.sh 88 | 89 | CMD ["/srv/gitlab/start.sh"] 90 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # GitLab Docker Build Script 2 | 3 | This Dockerfile will create a new Docker container running GitLab 6.4 on Ubuntu 12.04. 4 | 5 | ## Installation 6 | 7 | Follow these instructions to download or build GitLab. 8 | 9 | ### Step 0: Install Docker 10 | 11 | [Follow these instructions](http://www.docker.io/gettingstarted/#h_installation) to get Docker running on your server. 12 | 13 | ### Step 1: Pull Or Build GitLab 14 | 15 | With Docker installed and running, do one of the following to obtain GitLab. 16 | 17 | **Pull From Docker Index:** 18 | 19 | docker pull crashsystems/gitlab-docker 20 | 21 | **Build It Yourself** 22 | 23 | git clone https://github.com/crashsystems/gitlab-docker.git 24 | cd gitlab-docker 25 | docker build -t gitlab . 26 | 27 | Note that since GitLab has a large number of dependencies, both pulling from the index or running the build process will take a while, although pulling should be somewhat faster. 28 | 29 | ### Step 2: Configure GitLab 30 | 31 | If you obtained the image via docker pull and therefore didn't clone the GitHub repo, go ahead and do so at this time. The config/ folder of the repository contains configuration files you will need to edit before creating a new container instance. 32 | 33 | * **gitlab.yml**: Change the host field to match the hostname for your GitLab instance. Under *Advanced settings* in the config file, change the *ssh_port* setting for GitLab Shell to the port on the Docker host that's mapped to port 22 for this container. If you are using a non-standard port and don't do this, you won't be able to commit changes through a git/SSH url. Also, make any additional changes, such as LDAP configs etc, at this time. 34 | * **database.yml**: In the *production* section, set a good password for the gitlab MySQL password. 35 | * **nginx**: Replace YOUR_SERVER_FQDN with the hostname for your GitLab instance. Also, this file can be used to configure other things, such as SSL/TLS configurations. 36 | 37 | In addition, set the mysqlRoot variable in firstrun.sh to a good password for your MySQL root user. 38 | 39 | ### Step 3: Create A New Container Instance 40 | 41 | This build makes use of Docker's ability to map host directories to directories inside a container. It does this so that a user's custom configuration can be injected into the container at first start. In addition, since the data is stored outside the container, it allows a user to put the folder on faster storage such as an SSD for higher performance. 42 | 43 | To create the container instance, run the following: 44 | 45 | cd /path/to/gitlab-docker 46 | 47 | Next, run this if you pulled the image from the Docker index: 48 | 49 | docker run -d -v /path/to/gitlab-docker:/srv/gitlab -name gitlab crashsystems/gitlab-docker 50 | 51 | Or this if you built it yourself: 52 | 53 | docker run -d -v /path/to/gitlab-docker:/srv/gitlab -name gitlab gitlab 54 | 55 | */path/to/gitlab-docker* represents the folder created by the git clone on the Docker host, and will contain the GitLab instance's data. Make sure to move it to your desired location before running the container. Also, the first boot of the container will take a bit longer, as the firstrun.sh script will be invoked to perform various initialization tasks. 56 | 57 | ##### Default username and password 58 | GitLab creates an admin account during setup. You can use it to log in: 59 | 60 | admin@local.host 61 | 5iveL!fe 62 | 63 | ## Experimental: GitLab update via container rebuild 64 | 65 | It should be possible to use updates to this build to update a GitLab server. The process is as follows: 66 | 67 | 1. Ether pull an updated version of this script from the Docker index, or git pull this repo and rebuild. 68 | 2. Stop your current instance, and remove it with docker rm. 69 | 3. Inside the gitlab-docker/ folder from the install steps, run *git checkout firstrun.sh* to restore the firstrun.sh script. 70 | 4. Edit the firstrun.sh and delete the section titled "Delete this section if restoring data from previous build." Replace this section with the code to run any necessary database migrations for the new version. 71 | 5. Rerun the process from step 3 of the installation instructions. 72 | 73 | Note that while this process has been mostly tested, it has not yet been tested with DB migrations. As with any time you perform software updates, [do a backup](https://github.com/gitlabhq/gitlabhq/blob/master/doc/raketasks/backup_restore.md) first. 74 | -------------------------------------------------------------------------------- /config/gitlab.yml: -------------------------------------------------------------------------------- 1 | # # # # # # # # # # # # # # # # # # 2 | # GitLab application config file # 3 | # # # # # # # # # # # # # # # # # # 4 | # 5 | # How to use: 6 | # 1. copy file as gitlab.yml 7 | # 2. Replace gitlab -> host with your domain 8 | # 3. Replace gitlab -> email_from 9 | 10 | production: &base 11 | # 12 | # 1. GitLab app settings 13 | # ========================== 14 | 15 | ## GitLab settings 16 | gitlab: 17 | ## Web server settings 18 | host: localhost 19 | port: 80 20 | https: false 21 | 22 | # Uncomment and customize the last line to run in a non-root path 23 | # WARNING: This feature is no longer supported 24 | # Note that three settings need to be changed for this to work. 25 | # 1) In your application.rb file: config.relative_url_root = "/gitlab" 26 | # 2) In your gitlab.yml file: relative_url_root: /gitlab 27 | # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] 28 | # 29 | # relative_url_root: /gitlab 30 | 31 | # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') 32 | # user: git 33 | 34 | ## Email settings 35 | # Email address used in the "From" field in mails sent by GitLab 36 | email_from: gitlab@localhost 37 | 38 | # Email address of your support contact (default: same as email_from) 39 | support_email: support@localhost 40 | 41 | ## User settings 42 | default_projects_limit: 10 43 | # default_can_create_group: false # default: true 44 | # username_changing_enabled: false # default: true - User can change her username/namespace 45 | 46 | ## Users management 47 | # signup_enabled: true # default: false - Account passwords are not sent via the email if signup is enabled. 48 | 49 | ## Automatic issue closing 50 | # If a commit message matches this regular express, all issues referenced from the matched text will be closed 51 | # if it's pushed to a project's default branch. 52 | # issue_closing_pattern: ^([Cc]loses|[Ff]ixes) +#\d+ 53 | 54 | ## Default project features settings 55 | default_projects_features: 56 | issues: true 57 | merge_requests: true 58 | wiki: true 59 | wall: false 60 | snippets: false 61 | public: false 62 | 63 | ## External issues trackers 64 | issues_tracker: 65 | # redmine: 66 | # ## If not nil, link 'Issues' on project page will be replaced with this 67 | # ## Use placeholders: 68 | # ## :project_id - GitLab project identifier 69 | # ## :issues_tracker_id - Project Name or Id in external issue tracker 70 | # project_url: "http://redmine.sample/projects/:issues_tracker_id" 71 | # 72 | # ## If not nil, links from /#\d/ entities from commit messages will replaced with this 73 | # ## Use placeholders: 74 | # ## :project_id - GitLab project identifier 75 | # ## :issues_tracker_id - Project Name or Id in external issue tracker 76 | # ## :id - Issue id (from commit messages) 77 | # issues_url: "http://redmine.sample/issues/:id" 78 | # 79 | # ## If not nil, linkis to creating new issues will be replaced with this 80 | # ## Use placeholders: 81 | # ## :project_id - GitLab project identifier 82 | # ## :issues_tracker_id - Project Name or Id in external issue tracker 83 | # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new" 84 | # 85 | # jira: 86 | # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id" 87 | # issues_url: "http://jira.sample/browse/:id" 88 | # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa" 89 | 90 | ## Gravatar 91 | gravatar: 92 | enabled: true # Use user avatar image from Gravatar.com (default: true) 93 | # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm 94 | # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm 95 | 96 | # 97 | # 2. Auth settings 98 | # ========================== 99 | 100 | ## LDAP settings 101 | ldap: 102 | enabled: false 103 | host: '_your_ldap_server' 104 | base: '_the_base_where_you_search_for_users' 105 | port: 636 106 | uid: 'sAMAccountName' 107 | method: 'ssl' # "ssl" or "plain" 108 | bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' 109 | password: '_the_password_of_the_bind_user' 110 | allow_username_or_email_login: true 111 | 112 | ## OmniAuth settings 113 | omniauth: 114 | # Allow login via Twitter, Google, etc. using OmniAuth providers 115 | enabled: false 116 | 117 | # CAUTION! 118 | # This allows users to login without having a user account first (default: false). 119 | # User accounts will be created automatically when authentication was successful. 120 | allow_single_sign_on: false 121 | # Locks down those users until they have been cleared by the admin (default: true). 122 | block_auto_created_users: true 123 | 124 | ## Auth providers 125 | # Uncomment the following lines and fill in the data of the auth provider you want to use 126 | # If your favorite auth provider is not listed you can use others: 127 | # see https://github.com/gitlabhq/gitlabhq/wiki/Using-Custom-Omniauth-Providers 128 | # The 'app_id' and 'app_secret' parameters are always passed as the first two 129 | # arguments, followed by optional 'args' which can be either a hash or an array. 130 | providers: 131 | # - { name: 'google_oauth2', app_id: 'YOUR APP ID', 132 | # app_secret: 'YOUR APP SECRET', 133 | # args: { access_type: 'offline', approval_prompt: '' } } 134 | # - { name: 'twitter', app_id: 'YOUR APP ID', 135 | # app_secret: 'YOUR APP SECRET'} 136 | # - { name: 'github', app_id: 'YOUR APP ID', 137 | # app_secret: 'YOUR APP SECRET' } 138 | 139 | 140 | 141 | # 142 | # 3. Advanced settings 143 | # ========================== 144 | 145 | # GitLab Satellites 146 | satellites: 147 | # Relative paths are relative to Rails.root (default: tmp/repo_satellites/) 148 | path: /srv/gitlab/data/gitlab-satellites/ 149 | 150 | ## Backup settings 151 | backup: 152 | path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) 153 | # keep_time: 604800 # default: 0 (forever) (in seconds) 154 | 155 | ## GitLab Shell settings 156 | gitlab_shell: 157 | # REPOS_PATH MUST NOT BE A SYMLINK!!! 158 | repos_path: /srv/gitlab/data/repositories/ 159 | hooks_path: /home/git/gitlab-shell/hooks/ 160 | 161 | # Git over HTTP 162 | upload_pack: true 163 | receive_pack: true 164 | 165 | # If you use non-standard ssh port you need to specify it 166 | # ssh_port: 22 167 | 168 | ## Git settings 169 | # CAUTION! 170 | # Use the default values unless you really know what you are doing 171 | git: 172 | bin_path: /usr/bin/git 173 | # Max size of a git object (e.g. a commit), in bytes 174 | # This value can be increased if you have very large commits 175 | max_size: 5242880 # 5.megabytes 176 | # Git timeout to read a commit, in seconds 177 | timeout: 10 178 | 179 | # 180 | # 4. Extra customization 181 | # ========================== 182 | 183 | extra: 184 | ## Google analytics. Uncomment if you want it 185 | # google_analytics_id: '_your_tracking_id' 186 | 187 | ## Text under sign-in page (Markdown enabled) 188 | # sign_in_text: | 189 | # ![Company Logo](http://www.companydomain.com/logo.png) 190 | # [Learn more about CompanyName](http://www.companydomain.com/) 191 | 192 | development: 193 | <<: *base 194 | 195 | test: 196 | <<: *base 197 | issues_tracker: 198 | redmine: 199 | project_url: "http://redmine/projects/:issues_tracker_id" 200 | issues_url: "http://redmine/:project_id/:issues_tracker_id/:id" 201 | new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new" 202 | 203 | staging: 204 | <<: *base 205 | --------------------------------------------------------------------------------