3Gitorious is a web application for hosting, managing and contributing on Git
8Please see HACKING
12Please see the LICENSE file
14# Performing tasks on the command line
16Gitorious 3 ships with a set of high-level abstractions called use cases and
17commands. These can be used to carry out many tasks e.g. from the command-line.
18Using the use cases ensures that every step of a certain task is carried out,
19and you don't end up with inconsistent data. See the app/use_cases directory
20for further information.
24To install Gitorious locally visit [getgitorious.com](http://getgitorious.com).
26# Messaging server
28Many Gitorious operations are performed asynchronously to ensure good
29performance. Examples of such tasks includes updating the database when pushing
30to Gitorious, creating bare git repositories when creating repositories in the
31web UI and more. To process these asynchronous actions, Gitorious uses a
32messaging system where it sends messages to a queue, and a worker (i.e. another
33process, usually some kind of daemon) fetches messages back for processing.
35Gitorious provides several messaging implementations ("adapters"). The
36alternatives along with how to install and run them are presented below. You
37only need one of these alternatives.
39## Sync adapter
41Processes messages synchronously, which means that no extra process is
42required. This is a very simple solution, but will yield poor performance. It's
43intended use is for development, but may also fit small setups where performance
44is not an issue (e.g. if resources are scarce). To use it, simply set
45messaging_adapter in gitorious.yml to "sync":
47 messaging_adapter: sync
49## Resque adapter
51Resque uses Redis as a backend for messaging. It comes with a nice
52administration interface that allows for resending of messages, introspection
53and general statistics about your queue. To use it, set messaging_adapter to
54"resque" in gitorious.yml:
56 messaging_adapter: resque
58To use Resque, you need to install and run Redis. This is described in detail on
59the official Resque page: https://github.com/resque/resque
61To process messages from the queue with Resque, you need to run rake:
63 RAILS_ENV=production QUEUE=* bin/rake resque:work
65You can also run a worker for a single, or a handful of queues too. This allows
66you to assign different priority to different queues. The list of queues in use
67can be found in lib/gitorious/messaging/resque_adapter.rb.
69Note that Gitorious generally uses JMS style queue names, e.g.
70/queue/GitoriousPostReceiveWebHook. Because the Resque web frontend does not
71handle queue names with slashes in them, we strip queue names such that the
72aforementioned queue will be named GitoriousPostReceiveWebHook under Resque.
75# More Help
77* Consult the mailinglist (http://groups.google.com/group/gitorious) or drop
78 by #gitorious on irc.freenode.net if you have questions.
83Gitorious will add a 'forced command' to your ~/.ssh/authorized_keys file for
84the target host: if you start finding ssh oddities suspect this first. Don't
85log out until you've ensured you can still log in remotely.