You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marcin Kulik f80b2edfe1 Handle not ready repos 4 years ago
app Fix RepositoryHooks.create 4 years ago
bin Simplify wrapper scripts 4 years ago
ci Update ci/build script 5 years ago
config Add Gitlab import endpoint 4 years ago
data Move hooks to 5 years ago
db Upgrade acts-as-taggable-on 4 years ago
doc Delete unused code 5 years ago
hooks Make pre-commit hook to work on OSX 5 years ago
ldap-wizard Use ConfigurationReader to unify accesss to configuration files 5 years ago
lib Handle not ready repos 4 years ago
log Less gitignore files 6 years ago
public Up UI build 4 years ago
script Remove diagnostics functionality 5 years ago
test Include group repos on GitLab import list 4 years ago
tmp Less gitignore files 6 years ago
vendor Make sure es5 shims are used on repo browser page too 4 years ago
.dockerignore Add Dockerfile and related files. Yay! 5 years ago
.gitignore Simplify wrapper scripts 4 years ago
.gitmodules Use https url for ui3 submodule 5 years ago
.ruby-version Bump ruby version used for development 5 years ago
.travis.yml We're not really interested in building on Ruby 1.9 anymore 5 years ago
AUTHORS Update authors 5 years ago Release 3.2.1 4 years ago
Dockerfile Add script for starting thinking-sphinx 5 years ago
Gemfile Use unicorn-worker-killer to prevent worker swelling 4 years ago
Gemfile.lock Use unicorn-worker-killer to prevent worker swelling 4 years ago
Guardfile Watch files in app/git in guard 5 years ago Update docs with /usr/bin/gitorious shim 6 years ago
LICENSE Moving to the GNU Affero General Public License 11 years ago
Procfile Add sphinx to procfile 6 years ago Add info about installer to Readme 5 years ago
Rakefile Move CI related tasks to ci/stub.rake 5 years ago
Vagrantfile Use high port number for forwarding https 4 years ago Use unicorn-worker-killer to prevent worker swelling 4 years ago
custom_plan.rb Ship a zeus init file to bypass cucumber etc 6 years ago Add repository browser and initializer 6 years ago The UI3 layout is the only layout 6 years ago
zeus.json Ship a zeus init file to bypass cucumber etc 6 years ago

Gitorious is a web application for hosting, managing and contributing on Git repositories.


Please see HACKING


Please see the LICENSE file

Performing tasks on the command line

Gitorious 3 ships with a set of high-level abstractions called use cases and commands. These can be used to carry out many tasks e.g. from the command-line. Using the use cases ensures that every step of a certain task is carried out, and you don’t end up with inconsistent data. See the app/use_cases directory for further information.


To install Gitorious locally visit

Messaging server

Many Gitorious operations are performed asynchronously to ensure good performance. Examples of such tasks includes updating the database when pushing to Gitorious, creating bare git repositories when creating repositories in the web UI and more. To process these asynchronous actions, Gitorious uses a messaging system where it sends messages to a queue, and a worker (i.e. another process, usually some kind of daemon) fetches messages back for processing.

Gitorious provides several messaging implementations (“adapters”). The alternatives along with how to install and run them are presented below. You only need one of these alternatives.

Sync adapter

Processes messages synchronously, which means that no extra process is required. This is a very simple solution, but will yield poor performance. It’s intended use is for development, but may also fit small setups where performance is not an issue (e.g. if resources are scarce). To use it, simply set messaging_adapter in gitorious.yml to “sync”:

messaging_adapter: sync

Resque adapter

Resque uses Redis as a backend for messaging. It comes with a nice administration interface that allows for resending of messages, introspection and general statistics about your queue. To use it, set messaging_adapter to “resque” in gitorious.yml:

messaging_adapter: resque

To use Resque, you need to install and run Redis. This is described in detail on the official Resque page:

To process messages from the queue with Resque, you need to run rake:

RAILS_ENV=production QUEUE=* bin/rake resque:work

You can also run a worker for a single, or a handful of queues too. This allows you to assign different priority to different queues. The list of queues in use can be found in lib/gitorious/messaging/resque_adapter.rb.

Note that Gitorious generally uses JMS style queue names, e.g. /queue/GitoriousPostReceiveWebHook. Because the Resque web frontend does not handle queue names with slashes in them, we strip queue names such that the aforementioned queue will be named GitoriousPostReceiveWebHook under Resque.

More Help


Gitorious will add a ‘forced command’ to your ~/.ssh/authorized_keys file for the target host: if you start finding ssh oddities suspect this first. Don’t log out until you’ve ensured you can still log in remotely.