indextext.html: update notice about ssh host key change
[girocco.git] / html / volunteers.html
blob1c3d8ce8039e6500f9e3327d636b6d6ca6b31249
1 @section=site guide
2 @heading=Volunteers
3 @header
5 <!-- This file is preprocessed by cgi/html.cgi -->
8 <p><em>At this time we are not actively looking for extra volunteers.</em></p>
10 <p>Who do we want:</p>
11 <ul>
12 <li>People with motivation to help out one of the largest public Git hosting
13 sites who don't mind helping out some poor user once in a week and/or want
14 to enhance repo.or.cz services and features while also fixing few bugs
15 in the process</li>
16 <li>People with reasonable experience in all of UNIX/GNU, shell scripting,
17 Perl and Git itself</li>
18 <li>Trustworthy persons with no bad history and preferrably some existing
19 open-source community involvement - ideally (but not required) in the Git
20 community</li>
21 <li>People who don't mind working in a team, are willing to put up with
22 a perfectionist <a href="mailto:pasky@ucw.cz">pasky</a> at the beginning
23 and can get used to thinking thrice before doing something on the live
24 database</li>
25 </ul>
27 <p>What will you do (at least some of... ;-):</p>
28 <ul>
29 <li>Supporting users over email, possibly IRC. We get one support issue
30 per week on average, usually project deletion requests.</li>
31 <li>Other maintenance tasks - checking if jobs don't get stuck, possible
32 project breakage, reviewing+applying patches from users, monitoring
33 bogus content tags usage, cleaning up badly created projects and handling
34 server overload (all fairly rare occurences)</li>
35 <li>Implement gadgets to ease your maintenance tasks- could be e.g. issue
36 tracking system or ability for users to remove projects themselves.</li>
37 <li>Fix repo.or.cz bugs. E.g. the mirroring process gets stuck once in a while
38 on misbehaving mirror source, and sometimes objects get lost during gc that
39 shouldn't.</li>
40 <li>Implement cool new features. E.g. something from the
41 <a href="/girocco.git/blob/HEAD:TODO">Girocco TODO list</a>,
42 cleaning up and adding support for more mirroring source VCSes, user experience
43 improvements, maybe some interesting statistical analysis...</li>
44 </ul>
46 <p>What's in it for you:</p>
47 <ul>
48 <li>Most importantly, good warm feeling in your heart! ;-)</li>
49 <li>Chance to play with a reasonably large site and try out interesting
50 things.</li>
51 <li>Learning more UNIX/shell/perl/git on a very practical project.</li>
52 <li>Getting more involved in the Git development community, getting general
53 experience with OSS development of something that's actually immediately useful.</li>
54 <li>Low and totally flexible time demands.</li>
55 <li>Nice CV point to be sure!</li>
56 </ul>
58 <p>Are you interested? <del>Please apply at <a href="mailto:pasky@ucw.cz">pasky@ucw.cz</a></del>.
59 (Note: If you want to look at the current repo.or.cz codebase or even
60 deploy a copy locally to play with, just look at <a href="/girocco.git">girocco.git</a>.)</p>
62 <p>TODO: Make everything below this line less public. ;-)
63 So far, no huge deal I guess.
64 Volunteers can see what will they work with.</p>
66 <hr />
68 <h2>The Admin Team Plan</h2>
70 <p>These are pasky's ideas on how to set up the admin team and transfer
71 control to it:</p>
73 <ul>
74 <li>Gather feedback and confirmation from volunteers that already applied.</li>
75 <li>Set up admin@repo.or.cz alias plus internal mailing list.</li>
76 <li>Create accounts for new recruits with sudo access to the 'repo' account.
77 (We just got a complete tree backup while migrating, so we can be liberal
78 and relatively trusting at the beginning. ;)</li>
79 <li>Let the new recruits start helping out and self-organizing. There will
80 be probably need to create a deployment staging area and some cooperation
81 rules to avoid race conditions, but I'd prefer the new admin team to already
82 figure that out for themselves.</li>
83 <li>Give the two or three most experienced members root access after a while.</li>
84 <li>Pasky would like to stay in the loop and keep veto power for a while
85 to protect the site from some bad deterioration or major turnovers.</li>
86 </ul>
88 <p>New admins rules:</p>
90 <ul>
91 <li>Do not be shy doing stuff. If you are not doing it, noone else probably
92 is either. Just send a mail when you start doing something, and another
93 when you are done.</li>
94 <li>Document everything you do outside of your sandbox. On the mailing list
95 for starters, we can figure out better book-keeping later. Reply on admin@
96 to all user requests that you have handled.</li>
97 <li>Ask for consultations and acks whenever you have shadow of doubt.</li>
98 <li>Think trice. Avoid doing unrevertable things!</li>
99 <li>Think once. Make plenty of non-destructive quick experiments to learn about
100 stuff.</li>
101 <li>No abuse. One of us is directly responsible for everything that happens
102 on this server. If you do stuff like illegal filesharing, that person will be
103 very much not amused (and will definitely cooperate with the authorities in
104 finding out who's responsible)!</li>
105 <li>Do not use Ctrl-C to quit screen. You could kill a task!</li>
106 </ul>
108 <hr />
110 <h2>Cookbook</h2>
112 <p>Working as <code>repo</code> user:</p>
114 <ul>
115 <li>All infrastructure is owned by the repo user, and runs as repo (except
116 web scripts, suexec is not set up - for now?)</li>
117 <li><em>Always</em> work under the shared screen so others can check out who
118 is working on what: <code>screen -x repo/admins</code>, this will get you to
119 our shared screen session. jobd (updating mirrors, running gc) and taskd
120 (creating mirrors, push notifications) run in the first two windows. Shells in
121 screen are owned by user <code>repo</code></li>.
122 <li>Live copy lives in <code>~/repomgr</code> and <code>~/WWW</code>,
123 chroot jail for pushing is in <code>~/j</code>, codebase is in
124 <code>~/repo</code>.</li>
125 <li>Do <em>not</em> work directly in <code>~/repo</code>. If you want to
126 edit files, clone <code>Girocco.git</code> and push after committing (and
127 verifying) your changes locally.</li>
128 <li>To update the live copy, <code>cd ~/repo</code>, <code>git pull</code>
129 (should fast-forward), then <code>make install</code>.
130 This will OVERWRITE complete <code>~/repomgr</code>! It's also not really
131 necessary anymore to do this manually because the live copy auto-updates from
132 the <code>rorcz</code> branch every 15 minutes.</li>
133 </ul>
135 <p>New admins checklist:</p>
137 <ul>
138 <li>Make yourself a <code>.forward</code> file so that you receive admin@ mail.</li>
139 <li>Add yourself to <a href="/h/admins.html">the admin team page</a>,
140 which is also a nice way to get comfortable with our girocco setup.</li>
141 <li>Send a short introduction to admin@repo.or.cz.</li>
142 <li>Take a look at the list of TODO items in rorcz branch of girocco. Perhaps you could tackle something right away?</li>
143 <li>If you are bored, ask for some ideas! Or perhaps we can bounce to you some requests we did not have time to deal with. Don't be shy!</li>
144 <li>Please check periodically that the jobd in screen window 0 is not stuck.</li>
145 <li>Try to deal with something from <a href="/girocco.git/blob/rorcz:TODO">the TODO list</a>.</li>
146 </ul>
148 <p>Removing a project:</p>
150 <ul>
151 <li><em>pasky</em>: Philosophically, I'm not too happy to remove a project
152 unless there's a good reason like turning it to a mirror or some consolidation
153 or legal reasons (or it's almost empty); I believe in archiving everything.
154 This position can change if others disagree.</li>
155 <li>We've supported self-service deletions for quite some time now, linked at
156 the top of each project's <code>edit</code> page.</li>
157 <li>For manual deletions, check out
158 <code>/home/repo/repo/toolbox/projtool.pl</code> which has a
159 <code>remove</code> subcommand (also note the <code>--keep-forks</code> option
160 in particular).</li>
161 </ul>
163 <p>Other things running on the server &ndash; at this time, everything running
164 is directly related to repo.or.cz operations:</p>
166 <ul>
167 <li>Postfix for delivering notification emails and forwarding admin emails</li>
168 <li>A simple spam filter (currently SpamAssassin) for the admin list</li>
169 <li>knot-resolver, a local-only recursive DNS service</li>
170 <li>fail2ban for making it harder to do annoying things to our server</li>
171 </ul>