Commit 370d0e1fcfcdc84ae5963a2f794f0209da5aad54
Exists in
master
and in
29 other branches
Merge remote-tracking branch 'aurium/display-md'
Conflicts: HACKING
Showing
42 changed files
with
1881 additions
and
2107 deletions
Show diff stats
AUTHORS
... | ... | @@ -1,217 +0,0 @@ |
1 | -If you are not listed here, but should be, please write to the noosfero mailing | |
2 | -list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev | |
3 | -(this list requires subscription to post, but since you are an author of | |
4 | -noosfero, that's not a problem). | |
5 | - | |
6 | -Developers | |
7 | -========== | |
8 | - | |
9 | -Alan Freihof Tygel <alantygel@gmail.com> | |
10 | -Alessandro Palmeira <alessandro.palmeira@gmail.com> | |
11 | -Alessandro Palmeira + Caio C. Salgado <alessandro.palmeira@gmail.com> | |
12 | -Alessandro Palmeira + Caio Salgado <alessandro.palmeira@gmail.com> | |
13 | -Alessandro Palmeira + Caio Salgado <caio.csalgado@gmail.com> | |
14 | -Alessandro Palmeira + Caio Salgado + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
15 | -Alessandro Palmeira + Carlos Morais <alessandro.palmeira@gmail.com> | |
16 | -Alessandro Palmeira + Daniel Alves <alessandro.palmeira@gmail.com> | |
17 | -Alessandro Palmeira + Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | |
18 | -Alessandro Palmeira + Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | |
19 | -Alessandro Palmeira + Diego Araujo <alessandro.palmeira@gmail.com> | |
20 | -Alessandro Palmeira + Diego Araújo <alessandro.palmeira@gmail.com> | |
21 | -Alessandro Palmeira + Diego Araujo + Daniela Feitosa <alessandro.palmeira@gmail.com> | |
22 | -Alessandro Palmeira + Diego Araujo <diegoamc90@gmail.com> | |
23 | -Alessandro Palmeira + Diego Araújo <diegoamc90@gmail.com> | |
24 | -Alessandro Palmeira + Diego Araujo + Eduardo Morais <alessandro.palmeira@gmail.com> | |
25 | -Alessandro Palmeira + Diego Araújo + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
26 | -Alessandro Palmeira + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
27 | -Alessandro Palmeira + Diego Araujo + João M. M. da Silva + Paulo Meirelles <alessandro.palmeira@gmail.com> | |
28 | -Alessandro Palmeira + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
29 | -Alessandro Palmeira + Diego Araújo + Pedro Leal + João M. M. da Silva <diegoamc90@gmail.com> | |
30 | -Alessandro Palmeira + Diego Araujo + Rafael Manzo <alessandro.palmeira@gmail.com> | |
31 | -Alessandro Palmeira + Eduardo Morais <alessandro.palmeira@gmail.com> | |
32 | -Alessandro Palmeira + Guilherme Rojas <alessandro.palmeira@gmail.com> | |
33 | -Alessandro Palmeira + Jefferson Fernandes <alessandro.palmeira@gmail.com> | |
34 | -Alessandro Palmeira + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
35 | -Alessandro Palmeira + Joao M. M. da Silva + Diego Araujo <alessandro.palmeira@gmail.com> | |
36 | -Alessandro Palmeira + João M. M. da Silva + Renan Teruo <alessandro.palmeira@gmail.com> | |
37 | -Alessandro Palmeira + João M. M. Silva <alessandro.palmeira@gmail.com> | |
38 | -Alessandro Palmeira + Paulo Meirelles <alessandro.palmeira@gmail.com> | |
39 | -Alessandro Palmeira + Paulo Meirelles + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
40 | -Alessandro Palmeira + Rafael Manzo <alessandro.palmeira@gmail.com> | |
41 | -Antonio Terceiro + Carlos Morais <terceiro@colivre.coop.br> | |
42 | -Antonio Terceiro + Paulo Meirelles <terceiro@colivre.coop.br> | |
43 | -Antonio Terceiro <terceiro@colivre.coop.br> | |
44 | -Aurelio A. Heckert <aurelio@colivre.coop.br> | |
45 | -Braulio Bhavamitra <brauliobo@gmail.com> | |
46 | -Bráulio Bhavamitra <brauliobo@gmail.com> | |
47 | -Braulio Bhavamitra <braulio@eita.org.br> | |
48 | -Caio <caio.csalgado@gmail.com> | |
49 | -Caio + Diego + Pedro + João <caio.csalgado@gmail.com> | |
50 | -Caio Formiga <caio.formiga@gmail.com> | |
51 | -Caio, Pedro <caio.csalgado@gmail.com> | |
52 | -Caio Salgado + Alessandro Palmeira <caio.csalgado@gmail.com> | |
53 | -Caio Salgado <caio.csalgado@gmail.com> | |
54 | -Caio Salgado + Carlos Morais + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
55 | -Caio Salgado + Diego Araujo <caio.csalgado@gmail.com> | |
56 | -Caio Salgado + Diego Araújo <caio.csalgado@gmail.com> | |
57 | -Caio Salgado + Diego Araújo <diegoamc90@gmail.com> | |
58 | -Caio Salgado + Diego Araújo + Jefferson Fernandes <caio.csalgado@gmail.com> | |
59 | -Caio Salgado + Diego Araújo + João M. M. da Silva <caio.csalgado@gmail.com> | |
60 | -Caio Salgado + Diego Araújo + Pedro Leal <caio.csalgado@gmail.com> | |
61 | -Caio Salgado + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
62 | -Caio Salgado + Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | |
63 | -Caio Salgado + Jefferson Fernandes <caio.csalgado@gmail.com> | |
64 | -Caio Salgado + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
65 | -Caio Salgado + Rafael Manzo <caio.csalgado@gmail.com> | |
66 | -Caio Salgado + Renan Teruo <caio.csalgado@gmail.com> | |
67 | -Caio Salgado + Renan Teruo <caio.salgado@gmail.com> | |
68 | -Caio Salgado + Renan Teruo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
69 | -Caio Salgado + Renan Teruo <renanteruoc@gmail.com> | |
70 | -Caio SBA <caio@colivre.coop.br> | |
71 | -Carlos Morais <carlos88morais@gmail.com> | |
72 | -Carlos Morais + Diego Araújo <diegoamc90@gmail.com> | |
73 | -Carlos Morais + Eduardo Morais <carlos88morais@gmail.com> | |
74 | -Carlos Morais + Paulo Meirelles <carlos88morais@gmail.com> | |
75 | -Carlos Morais + Pedro Leal <carlos88morais@gmail.com> | |
76 | -Daniel Alves + Diego Araújo <danpaulalves@gmail.com> | |
77 | -Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | |
78 | -Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | |
79 | -Daniel Alves + Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | |
80 | -Daniel Alves + Diego Araújo + Guilherme Rojas <guilhermehrojas@gmail.com> | |
81 | -Daniel Alves + Guilherme Rojas <danpaulalves@gmail.com> | |
82 | -Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | |
83 | -Daniela Soares Feitosa <danielafeitosa@colivre.coop.br> | |
84 | -Daniel Cunha <daniel@colivre.coop.br> | |
85 | -diegoamc <diegoamc90@gmail.com> | |
86 | -Diego Araújo + Alessandro Palmeira <diegoamc90@gmail.com> | |
87 | -Diego Araújo + Alessandro Palmeira + João M. M. da Silva <diegoamc90@gmail.com> | |
88 | -Diego Araújo + Alessandro Palmeira + Rafael Manzo <rr.manzo@gmail.com> | |
89 | -Diego Araujo + Caio Salgado <diegoamc90@gmail.com> | |
90 | -Diego Araújo + Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | |
91 | -Diego Araújo <diegoamc90@gmail.com> | |
92 | -Diego Araújo + Eduardo Morais + Paulo Meirelles <diegoamc90@gmail.com> | |
93 | -Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | |
94 | -Diego Araújo + Jefferson Fernandes <diegoamc90@gmail.com> | |
95 | -Diego Araujo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
96 | -Diego Araújo + João Machini <diegoamc90@gmail.com> | |
97 | -Diego Araújo + João Machini <digoamc90@gmail.com> | |
98 | -Diego Araújo + João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
99 | -Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
100 | -Diego Araújo + João M. M. da Silva + João Machini <diegoamc90@gmail.com> | |
101 | -Diego Araújo + João M. M. da Silva + Pedro Leal <diegoamc90@gmail.com> | |
102 | -Diego Araújo + Paulo Meirelles <diegoamc90@gmail.com> | |
103 | -Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
104 | -Diego Araujo + Rafael Manzo <diegoamc90@gmail.com> | |
105 | -Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | |
106 | -Diego Araújo + Renan Teruo + Alessandro Palmeira <diegoamc90@gmail.com> | |
107 | -Diego Araújo + Renan Teruo <diegoamc90@gmail.com> | |
108 | -Diego Araujo + Rodrigo Souto + Rafael Manzo <rr.manzo@gmail.com> | |
109 | -Diego + Jefferson <diegoamc90@gmail.com> | |
110 | -Diego Martinez <diegoamc90@gmail.com> | |
111 | -Diego Martinez <diego@diego-K55A.(none)> | |
112 | -Diego + Renan <renanteruoc@gmail.com> | |
113 | -Fernanda Lopes <nanda.listas+psl@gmail.com> | |
114 | -Francisco Marcelo A. Lima Júnior <francisco.lima-junior@serpro.gov.br> | |
115 | -Francisco Marcelo de Araujo Lima Junior <79350259591@serpro-1457614.(none)> | |
116 | -Grazieno Pellegrino <grazieno@gmail.com> | |
117 | -Isaac Canan <isaac@intelletto.com.br> | |
118 | -Italo Valcy <italo@dcc.ufba.br> | |
119 | -Jefferson Fernandes + Diego Araujo + Rafael Manzo <jeffs.fernandes@gmail.com> | |
120 | -Jefferson Fernandes + Joao M. M. da Silva <jeffs.fernandes@gmail.com> | |
121 | -Jefferson Fernandes + Joao M. M. Silva <jeffs.fernandes@gmail.com> | |
122 | -João da Silva <jaodsilv@linux.ime.usp.br> | |
123 | -João Marco Maciel da Silva + Rafael Manzo + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
124 | -João M. M. da Silva + Alessandro Palmeira + Diego Araújo + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
125 | -João M. M. da Silva + Alessandro Palmeira + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
126 | -Joao M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
127 | -João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
128 | -João M. M. da Silva + Alessandro Palmeira + João Machini <jaodsilv@linux.ime.usp.br> | |
129 | -João M. M. da Silva + Caio Salgado + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
130 | -João M. M. da Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
131 | -João M. M. da Silva + Carlos Morais <jaodsilv@linux.ime.usp.br> | |
132 | -João M. M. da Silva + Diego Araújo <diegoamc90@gmail.com> | |
133 | -João M. M. da Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
134 | -João M. M. da Silva + Diego Araújo + Pedro Leal <jaodsilv@linux.ime.usp.br> | |
135 | -João M. M. da Silva <jaodsilv@linux.ime.usp.br> | |
136 | -Joao M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
137 | -João M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
138 | -João M. M. da Silva + João M. Miranda <jaodsilv@linux.ime.usp.br> | |
139 | -João M. M. da Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | |
140 | -João M. M. da Silva + Pedro Leal <jaodsilv@linux.ime.usp.br> | |
141 | -João M. M. da Silva + Rafael Manzo + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
142 | -João M. M. da Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | |
143 | -João M. M. da Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
144 | -João M. M. Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
145 | -João M. M. Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
146 | -Joao M. M. Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
147 | -João M. M. Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | |
148 | -João M. M. Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | |
149 | -João M. M. Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
150 | -Joenio Costa <joenio@colivre.coop.br> | |
151 | -Josef Spillner <josef.spillner@tu-dresden.de> | |
152 | -Junior Silva <juniorsilva1001@gmail.com> | |
153 | -Junior Silva <juniorsilva7@juniorsilva-Aspire-5750Z.(none)> | |
154 | -Keilla Menezes <keilla@colivre.coop.br> | |
155 | -Larissa Reis <larissa@colivre.coop.br> | |
156 | -Larissa Reis <reiss.larissa@gmail.com> | |
157 | -Leandro Nunes dos Santos <leandronunes@gmail.com> | |
158 | -Leandro Nunes dos Santos <leandro.santos@serpro.gov.br> | |
159 | -LinguÁgil 2010 <linguagil.bahia@gmail.com> | |
160 | -Lucas Melo <lucas@colivre.coop.br> | |
161 | -Lucas Melo <lucaspradomelo@gmail.com> | |
162 | -Luis David Aguilar Carlos <ludwig9003@gmail.com> | |
163 | -Martín Olivera <molivera@solar.org.ar> | |
164 | -Moises Machado <moises@colivre.coop.br> | |
165 | -Naíla Alves <naila@colivre.coop.br> | |
166 | -Nanda Lopes <nanda.listas+psl@gmail.com> | |
167 | -Paulo Meirelles + Alessandro Palmeira + João M. M. da Silva <paulo@softwarelivre.org> | |
168 | -Paulo Meirelles + Alessandro Palmeira <paulo@softwarelivre.org> | |
169 | -Paulo Meirelles + Carlos Morais <paulo@softwarelivre.org> | |
170 | -Paulo Meirelles + Diego Araújo <paulo@softwarelivre.org> | |
171 | -Paulo Meirelles + João M. M. da Silva <paulo@softwarelivre.org> | |
172 | -Paulo Meirelles <paulo@softwarelivre.org> | |
173 | -Paulo Meirelles + Rafael Manzo <paulo@softwarelivre.org> | |
174 | -Rafael Gomes <rafaelgomes@techfree.com.br> | |
175 | -Rafael Manzo + Alessandro Palmeira <rr.manzo@gmail.com> | |
176 | -Rafael Manzo + Daniel Alves <danpaulalves@gmail.com> | |
177 | -Rafael Manzo + Diego Araújo <rr.manzo@gmail.com> | |
178 | -Rafael Manzo + João M. M. Silva <rr.manzo@gmail.com> | |
179 | -Rafael Manzo + Paulo Meirelles <rr.manzo@gmail.com> | |
180 | -Rafael Martins <rmmartins@gmail.com> | |
181 | -Rafael Reggiani Manzo + Caio Salgado + Jefferson Fernandes <rr.manzo@gmail.com> | |
182 | -Rafael Reggiani Manzo + Diego Araujo <diegoamc90@gmail.com> | |
183 | -Rafael Reggiani Manzo + Diego Araujo <rr.manzo@gmail.com> | |
184 | -Rafael Reggiani Manzo + Diego Araújo <rr.manzo@gmail.com> | |
185 | -Rafael Reggiani Manzo + João M. M. da Silva <rr.manzo@gmail.com> | |
186 | -Rafael Reggiani Manzo <rr.manzo@gmail.com> | |
187 | -Raphaël Rousseau <raph@r4f.org> | |
188 | -Raquel Lira <raquel.lira@gmail.com> | |
189 | -Renan Teruo + Caio Salgado <renanteruoc@gmail.com> | |
190 | -Renan Teruoc + Diego Araujo <renanteruoc@gmail.com> | |
191 | -Renan Teruo + Diego Araujo <renanteruoc@gmail.com> | |
192 | -Renan Teruo + Diego Araújo <renanteruoc@gmail.com> | |
193 | -Renan Teruo + Paulo Meirelles <renanteruoc@gmail.com> | |
194 | -Renan Teruo + Rafael Manzo <renanteruoc@gmail.com> | |
195 | -Rodrigo Souto <diguliu@gmail.com> | |
196 | -Rodrigo Souto <rodrigo@colivre.coop.br> | |
197 | -Ronny Kursawe <kursawe.ronny@googlemail.com> | |
198 | -root <root@debian.sdr.serpro> | |
199 | -Samuel R. C. Vale <srcvale@holoscopio.com> | |
200 | -Valessio Brito <valessio@gmail.com> | |
201 | -vfcosta <vfcosta@gmail.com> | |
202 | -Victor Costa <vfcosta@gmail.com> | |
203 | -Vinicius Cubas Brand <viniciuscb@gmail.com> | |
204 | -Visita <visita@debian.(none)> | |
205 | -Yann Lugrin <yann.lugrin@liquid-concept.ch> | |
206 | - | |
207 | -Ideas, specifications and incentive | |
208 | -=================================== | |
209 | -Daniel Tygel <dtygel@fbes.org.br> | |
210 | -Guilherme Rocha <guilherme@gf7.com.br> | |
211 | -Raphael Rousseau <raph@r4f.org> | |
212 | -Théo Bondolfi <move@cooperation.net> | |
213 | -Vicente Aguiar <vicenteaguiar@colivre.coop.br> | |
214 | - | |
215 | -Arts | |
216 | -=================================== | |
217 | -Nara Oliveira <narananet@gmail.com> |
... | ... | @@ -0,0 +1,214 @@ |
1 | +If you are not listed here, but should be, please write to the noosfero mailing list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev (this list requires subscription to post, but since you are an author of noosfero, that's not a problem). | |
2 | + | |
3 | +Developers | |
4 | +========== | |
5 | + | |
6 | +Alan Freihof Tygel <alantygel@gmail.com> | |
7 | +Alessandro Palmeira <alessandro.palmeira@gmail.com> | |
8 | +Alessandro Palmeira + Caio C. Salgado <alessandro.palmeira@gmail.com> | |
9 | +Alessandro Palmeira + Caio Salgado <alessandro.palmeira@gmail.com> | |
10 | +Alessandro Palmeira + Caio Salgado <caio.csalgado@gmail.com> | |
11 | +Alessandro Palmeira + Caio Salgado + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
12 | +Alessandro Palmeira + Carlos Morais <alessandro.palmeira@gmail.com> | |
13 | +Alessandro Palmeira + Daniel Alves <alessandro.palmeira@gmail.com> | |
14 | +Alessandro Palmeira + Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | |
15 | +Alessandro Palmeira + Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | |
16 | +Alessandro Palmeira + Diego Araujo <alessandro.palmeira@gmail.com> | |
17 | +Alessandro Palmeira + Diego Araújo <alessandro.palmeira@gmail.com> | |
18 | +Alessandro Palmeira + Diego Araujo + Daniela Feitosa <alessandro.palmeira@gmail.com> | |
19 | +Alessandro Palmeira + Diego Araujo <diegoamc90@gmail.com> | |
20 | +Alessandro Palmeira + Diego Araújo <diegoamc90@gmail.com> | |
21 | +Alessandro Palmeira + Diego Araujo + Eduardo Morais <alessandro.palmeira@gmail.com> | |
22 | +Alessandro Palmeira + Diego Araújo + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
23 | +Alessandro Palmeira + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
24 | +Alessandro Palmeira + Diego Araujo + João M. M. da Silva + Paulo Meirelles <alessandro.palmeira@gmail.com> | |
25 | +Alessandro Palmeira + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
26 | +Alessandro Palmeira + Diego Araújo + Pedro Leal + João M. M. da Silva <diegoamc90@gmail.com> | |
27 | +Alessandro Palmeira + Diego Araujo + Rafael Manzo <alessandro.palmeira@gmail.com> | |
28 | +Alessandro Palmeira + Eduardo Morais <alessandro.palmeira@gmail.com> | |
29 | +Alessandro Palmeira + Guilherme Rojas <alessandro.palmeira@gmail.com> | |
30 | +Alessandro Palmeira + Jefferson Fernandes <alessandro.palmeira@gmail.com> | |
31 | +Alessandro Palmeira + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
32 | +Alessandro Palmeira + Joao M. M. da Silva + Diego Araujo <alessandro.palmeira@gmail.com> | |
33 | +Alessandro Palmeira + João M. M. da Silva + Renan Teruo <alessandro.palmeira@gmail.com> | |
34 | +Alessandro Palmeira + João M. M. Silva <alessandro.palmeira@gmail.com> | |
35 | +Alessandro Palmeira + Paulo Meirelles <alessandro.palmeira@gmail.com> | |
36 | +Alessandro Palmeira + Paulo Meirelles + João M. M. da Silva <alessandro.palmeira@gmail.com> | |
37 | +Alessandro Palmeira + Rafael Manzo <alessandro.palmeira@gmail.com> | |
38 | +Antonio Terceiro + Carlos Morais <terceiro@colivre.coop.br> | |
39 | +Antonio Terceiro + Paulo Meirelles <terceiro@colivre.coop.br> | |
40 | +Antonio Terceiro <terceiro@colivre.coop.br> | |
41 | +Aurelio A. Heckert <aurelio@colivre.coop.br> | |
42 | +Braulio Bhavamitra <brauliobo@gmail.com> | |
43 | +Bráulio Bhavamitra <brauliobo@gmail.com> | |
44 | +Braulio Bhavamitra <braulio@eita.org.br> | |
45 | +Caio <caio.csalgado@gmail.com> | |
46 | +Caio + Diego + Pedro + João <caio.csalgado@gmail.com> | |
47 | +Caio Formiga <caio.formiga@gmail.com> | |
48 | +Caio, Pedro <caio.csalgado@gmail.com> | |
49 | +Caio Salgado + Alessandro Palmeira <caio.csalgado@gmail.com> | |
50 | +Caio Salgado <caio.csalgado@gmail.com> | |
51 | +Caio Salgado + Carlos Morais + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
52 | +Caio Salgado + Diego Araujo <caio.csalgado@gmail.com> | |
53 | +Caio Salgado + Diego Araújo <caio.csalgado@gmail.com> | |
54 | +Caio Salgado + Diego Araújo <diegoamc90@gmail.com> | |
55 | +Caio Salgado + Diego Araújo + Jefferson Fernandes <caio.csalgado@gmail.com> | |
56 | +Caio Salgado + Diego Araújo + João M. M. da Silva <caio.csalgado@gmail.com> | |
57 | +Caio Salgado + Diego Araújo + Pedro Leal <caio.csalgado@gmail.com> | |
58 | +Caio Salgado + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
59 | +Caio Salgado + Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | |
60 | +Caio Salgado + Jefferson Fernandes <caio.csalgado@gmail.com> | |
61 | +Caio Salgado + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
62 | +Caio Salgado + Rafael Manzo <caio.csalgado@gmail.com> | |
63 | +Caio Salgado + Renan Teruo <caio.csalgado@gmail.com> | |
64 | +Caio Salgado + Renan Teruo <caio.salgado@gmail.com> | |
65 | +Caio Salgado + Renan Teruo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
66 | +Caio Salgado + Renan Teruo <renanteruoc@gmail.com> | |
67 | +Caio SBA <caio@colivre.coop.br> | |
68 | +Carlos Morais <carlos88morais@gmail.com> | |
69 | +Carlos Morais + Diego Araújo <diegoamc90@gmail.com> | |
70 | +Carlos Morais + Eduardo Morais <carlos88morais@gmail.com> | |
71 | +Carlos Morais + Paulo Meirelles <carlos88morais@gmail.com> | |
72 | +Carlos Morais + Pedro Leal <carlos88morais@gmail.com> | |
73 | +Daniel Alves + Diego Araújo <danpaulalves@gmail.com> | |
74 | +Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | |
75 | +Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | |
76 | +Daniel Alves + Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | |
77 | +Daniel Alves + Diego Araújo + Guilherme Rojas <guilhermehrojas@gmail.com> | |
78 | +Daniel Alves + Guilherme Rojas <danpaulalves@gmail.com> | |
79 | +Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | |
80 | +Daniela Soares Feitosa <danielafeitosa@colivre.coop.br> | |
81 | +Daniel Cunha <daniel@colivre.coop.br> | |
82 | +diegoamc <diegoamc90@gmail.com> | |
83 | +Diego Araújo + Alessandro Palmeira <diegoamc90@gmail.com> | |
84 | +Diego Araújo + Alessandro Palmeira + João M. M. da Silva <diegoamc90@gmail.com> | |
85 | +Diego Araújo + Alessandro Palmeira + Rafael Manzo <rr.manzo@gmail.com> | |
86 | +Diego Araujo + Caio Salgado <diegoamc90@gmail.com> | |
87 | +Diego Araújo + Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | |
88 | +Diego Araújo <diegoamc90@gmail.com> | |
89 | +Diego Araújo + Eduardo Morais + Paulo Meirelles <diegoamc90@gmail.com> | |
90 | +Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | |
91 | +Diego Araújo + Jefferson Fernandes <diegoamc90@gmail.com> | |
92 | +Diego Araujo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | |
93 | +Diego Araújo + João Machini <diegoamc90@gmail.com> | |
94 | +Diego Araújo + João Machini <digoamc90@gmail.com> | |
95 | +Diego Araújo + João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
96 | +Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | |
97 | +Diego Araújo + João M. M. da Silva + João Machini <diegoamc90@gmail.com> | |
98 | +Diego Araújo + João M. M. da Silva + Pedro Leal <diegoamc90@gmail.com> | |
99 | +Diego Araújo + Paulo Meirelles <diegoamc90@gmail.com> | |
100 | +Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | |
101 | +Diego Araujo + Rafael Manzo <diegoamc90@gmail.com> | |
102 | +Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | |
103 | +Diego Araújo + Renan Teruo + Alessandro Palmeira <diegoamc90@gmail.com> | |
104 | +Diego Araújo + Renan Teruo <diegoamc90@gmail.com> | |
105 | +Diego Araujo + Rodrigo Souto + Rafael Manzo <rr.manzo@gmail.com> | |
106 | +Diego + Jefferson <diegoamc90@gmail.com> | |
107 | +Diego Martinez <diegoamc90@gmail.com> | |
108 | +Diego Martinez <diego@diego-K55A.(none)> | |
109 | +Diego + Renan <renanteruoc@gmail.com> | |
110 | +Fernanda Lopes <nanda.listas+psl@gmail.com> | |
111 | +Francisco Marcelo A. Lima Júnior <francisco.lima-junior@serpro.gov.br> | |
112 | +Francisco Marcelo de Araujo Lima Junior <79350259591@serpro-1457614.(none)> | |
113 | +Grazieno Pellegrino <grazieno@gmail.com> | |
114 | +Isaac Canan <isaac@intelletto.com.br> | |
115 | +Italo Valcy <italo@dcc.ufba.br> | |
116 | +Jefferson Fernandes + Diego Araujo + Rafael Manzo <jeffs.fernandes@gmail.com> | |
117 | +Jefferson Fernandes + Joao M. M. da Silva <jeffs.fernandes@gmail.com> | |
118 | +Jefferson Fernandes + Joao M. M. Silva <jeffs.fernandes@gmail.com> | |
119 | +João da Silva <jaodsilv@linux.ime.usp.br> | |
120 | +João Marco Maciel da Silva + Rafael Manzo + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
121 | +João M. M. da Silva + Alessandro Palmeira + Diego Araújo + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
122 | +João M. M. da Silva + Alessandro Palmeira + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
123 | +Joao M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
124 | +João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
125 | +João M. M. da Silva + Alessandro Palmeira + João Machini <jaodsilv@linux.ime.usp.br> | |
126 | +João M. M. da Silva + Caio Salgado + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | |
127 | +João M. M. da Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
128 | +João M. M. da Silva + Carlos Morais <jaodsilv@linux.ime.usp.br> | |
129 | +João M. M. da Silva + Diego Araújo <diegoamc90@gmail.com> | |
130 | +João M. M. da Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
131 | +João M. M. da Silva + Diego Araújo + Pedro Leal <jaodsilv@linux.ime.usp.br> | |
132 | +João M. M. da Silva <jaodsilv@linux.ime.usp.br> | |
133 | +Joao M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
134 | +João M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
135 | +João M. M. da Silva + João M. Miranda <jaodsilv@linux.ime.usp.br> | |
136 | +João M. M. da Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | |
137 | +João M. M. da Silva + Pedro Leal <jaodsilv@linux.ime.usp.br> | |
138 | +João M. M. da Silva + Rafael Manzo + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
139 | +João M. M. da Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | |
140 | +João M. M. da Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
141 | +João M. M. Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | |
142 | +João M. M. Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | |
143 | +Joao M. M. Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | |
144 | +João M. M. Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | |
145 | +João M. M. Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | |
146 | +João M. M. Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | |
147 | +Joenio Costa <joenio@colivre.coop.br> | |
148 | +Josef Spillner <josef.spillner@tu-dresden.de> | |
149 | +Junior Silva <juniorsilva1001@gmail.com> | |
150 | +Junior Silva <juniorsilva7@juniorsilva-Aspire-5750Z.(none)> | |
151 | +Keilla Menezes <keilla@colivre.coop.br> | |
152 | +Larissa Reis <larissa@colivre.coop.br> | |
153 | +Larissa Reis <reiss.larissa@gmail.com> | |
154 | +Leandro Nunes dos Santos <leandronunes@gmail.com> | |
155 | +Leandro Nunes dos Santos <leandro.santos@serpro.gov.br> | |
156 | +LinguÁgil 2010 <linguagil.bahia@gmail.com> | |
157 | +Lucas Melo <lucas@colivre.coop.br> | |
158 | +Lucas Melo <lucaspradomelo@gmail.com> | |
159 | +Luis David Aguilar Carlos <ludwig9003@gmail.com> | |
160 | +Martín Olivera <molivera@solar.org.ar> | |
161 | +Moises Machado <moises@colivre.coop.br> | |
162 | +Naíla Alves <naila@colivre.coop.br> | |
163 | +Nanda Lopes <nanda.listas+psl@gmail.com> | |
164 | +Paulo Meirelles + Alessandro Palmeira + João M. M. da Silva <paulo@softwarelivre.org> | |
165 | +Paulo Meirelles + Alessandro Palmeira <paulo@softwarelivre.org> | |
166 | +Paulo Meirelles + Carlos Morais <paulo@softwarelivre.org> | |
167 | +Paulo Meirelles + Diego Araújo <paulo@softwarelivre.org> | |
168 | +Paulo Meirelles + João M. M. da Silva <paulo@softwarelivre.org> | |
169 | +Paulo Meirelles <paulo@softwarelivre.org> | |
170 | +Paulo Meirelles + Rafael Manzo <paulo@softwarelivre.org> | |
171 | +Rafael Gomes <rafaelgomes@techfree.com.br> | |
172 | +Rafael Manzo + Alessandro Palmeira <rr.manzo@gmail.com> | |
173 | +Rafael Manzo + Daniel Alves <danpaulalves@gmail.com> | |
174 | +Rafael Manzo + Diego Araújo <rr.manzo@gmail.com> | |
175 | +Rafael Manzo + João M. M. Silva <rr.manzo@gmail.com> | |
176 | +Rafael Manzo + Paulo Meirelles <rr.manzo@gmail.com> | |
177 | +Rafael Martins <rmmartins@gmail.com> | |
178 | +Rafael Reggiani Manzo + Caio Salgado + Jefferson Fernandes <rr.manzo@gmail.com> | |
179 | +Rafael Reggiani Manzo + Diego Araujo <diegoamc90@gmail.com> | |
180 | +Rafael Reggiani Manzo + Diego Araujo <rr.manzo@gmail.com> | |
181 | +Rafael Reggiani Manzo + Diego Araújo <rr.manzo@gmail.com> | |
182 | +Rafael Reggiani Manzo + João M. M. da Silva <rr.manzo@gmail.com> | |
183 | +Rafael Reggiani Manzo <rr.manzo@gmail.com> | |
184 | +Raphaël Rousseau <raph@r4f.org> | |
185 | +Raquel Lira <raquel.lira@gmail.com> | |
186 | +Renan Teruo + Caio Salgado <renanteruoc@gmail.com> | |
187 | +Renan Teruoc + Diego Araujo <renanteruoc@gmail.com> | |
188 | +Renan Teruo + Diego Araujo <renanteruoc@gmail.com> | |
189 | +Renan Teruo + Diego Araújo <renanteruoc@gmail.com> | |
190 | +Renan Teruo + Paulo Meirelles <renanteruoc@gmail.com> | |
191 | +Renan Teruo + Rafael Manzo <renanteruoc@gmail.com> | |
192 | +Rodrigo Souto <diguliu@gmail.com> | |
193 | +Rodrigo Souto <rodrigo@colivre.coop.br> | |
194 | +Ronny Kursawe <kursawe.ronny@googlemail.com> | |
195 | +root <root@debian.sdr.serpro> | |
196 | +Samuel R. C. Vale <srcvale@holoscopio.com> | |
197 | +Valessio Brito <valessio@gmail.com> | |
198 | +vfcosta <vfcosta@gmail.com> | |
199 | +Victor Costa <vfcosta@gmail.com> | |
200 | +Vinicius Cubas Brand <viniciuscb@gmail.com> | |
201 | +Visita <visita@debian.(none)> | |
202 | +Yann Lugrin <yann.lugrin@liquid-concept.ch> | |
203 | + | |
204 | +Ideas, specifications and incentive | |
205 | +=================================== | |
206 | +Daniel Tygel <dtygel@fbes.org.br> | |
207 | +Guilherme Rocha <guilherme@gf7.com.br> | |
208 | +Raphael Rousseau <raph@r4f.org> | |
209 | +Théo Bondolfi <move@cooperation.net> | |
210 | +Vicente Aguiar <vicenteaguiar@colivre.coop.br> | |
211 | + | |
212 | +Arts | |
213 | +=================================== | |
214 | +Nara Oliveira <narananet@gmail.com> | ... | ... |
HACKING
... | ... | @@ -1,63 +0,0 @@ |
1 | -= Noosfero instructions for developers | |
2 | - | |
3 | -== A work about your the development platform | |
4 | - | |
5 | -These instructions are tested and known to work on Debian stable, which is the | |
6 | -system that the Noosfero core developers use to work on Noosfero. | |
7 | - | |
8 | -If you want to use another OS, read "Instructions for other systems" below. | |
9 | - | |
10 | -== Instructions for Debian stable | |
11 | - | |
12 | -Download the source code: | |
13 | - | |
14 | - $ git clone https://gitlab.com/noosfero/noosfero.git | |
15 | - $ cd noosfero | |
16 | - | |
17 | -Run the quick start script: | |
18 | - | |
19 | - $ ./script/quick-start | |
20 | - | |
21 | -Now you can execute the development server with: | |
22 | - | |
23 | - $ ./script/development | |
24 | - | |
25 | -You will be able to access Noosfero at http://localhost:3000/ | |
26 | - | |
27 | -If you want to use a different port than 3000, pass `-p <PORT>` to | |
28 | -./script/development | |
29 | - | |
30 | -== Instructions for other systems | |
31 | - | |
32 | -On other OS, you have 2 options: | |
33 | - | |
34 | -1) using a chroot or a VM with Debian stable (easier) | |
35 | - | |
36 | -Use a chroot (http://wiki.debian.org/Schroot) or a Virtual Machine (e.g. with | |
37 | -VirtualBox) with a Debian stable system and follow the instructions above for | |
38 | -Debian stable. | |
39 | - | |
40 | -2) Installing dependencies on other OS (harder) | |
41 | - | |
42 | -If you want to setup a development environment in another OS, you can create a | |
43 | -file under script/install-dependencies/, called <OS>-<CODENAME>.sh, which | |
44 | -installed the dependencies for your system. With this script in place, | |
45 | -./script/quick-start will call it at the point of installing the required | |
46 | -packages for Noosfero development. | |
47 | - | |
48 | -You can check script/install-dependencies/debian-squeeze.sh to have an idea of | |
49 | -what kind of stuff that script has to do. | |
50 | - | |
51 | -If you write such script for your own OS, *please* share it with us at the | |
52 | -development mailing list so that we can include it in the official repository. | |
53 | -This way other people using the same OS will have to put less effort to develop | |
54 | -Noosfero. | |
55 | - | |
56 | -== Submitting your changes back | |
57 | - | |
58 | -For now please read: | |
59 | - | |
60 | -- Coding conventions | |
61 | - http://noosfero.org/Development/CodingConventions | |
62 | -- Patch guidelines | |
63 | - http://noosfero.org/Development/PatchGuidelines |
... | ... | @@ -0,0 +1,56 @@ |
1 | +Noosfero instructions for developers | |
2 | +==================================== | |
3 | + | |
4 | +A work about your the development platform | |
5 | +------------------------------------------ | |
6 | + | |
7 | +These instructions are tested and known to work on Debian stable, which is the system that the Noosfero core developers use to work on Noosfero. | |
8 | + | |
9 | +If you want to use another OS, read "Instructions for other systems" below. | |
10 | + | |
11 | +Instructions for Debian stable | |
12 | +------------------------------ | |
13 | + | |
14 | +Download the source code: | |
15 | + | |
16 | + $ git clone https://gitlab.com/noosfero/noosfero.git | |
17 | + $ cd noosfero | |
18 | + | |
19 | +Run the quick start script: | |
20 | + | |
21 | + $ ./script/quick-start | |
22 | + | |
23 | +Now you can execute the development server with: | |
24 | + | |
25 | + $ ./script/development | |
26 | + | |
27 | +You will be able to access Noosfero at http://localhost:3000/ | |
28 | + | |
29 | +If you want to use a different port than 3000, pass `-p <PORT>` to `./script/development` | |
30 | + | |
31 | +Instructions for other systems | |
32 | +------------------------------ | |
33 | + | |
34 | +On other OS, you have 2 options: | |
35 | + | |
36 | +### 1) using a chroot or a VM with Debian stable (easier) | |
37 | + | |
38 | +Use a chroot (http://wiki.debian.org/Schroot) or a Virtual Machine (e.g. with VirtualBox) with a Debian stable system and follow the instructions above for Debian stable. | |
39 | + | |
40 | +### 2) Installing dependencies on other OS (harder) | |
41 | + | |
42 | +If you want to setup a development environment in another OS, you can create a file under `./script/install-dependencies/`, called `<OS>-<CODENAME>.sh`, which installed the dependencies for your system. With this script in place, `./script/quick-start` will call it at the point of installing the required packages for Noosfero development. | |
43 | + | |
44 | +You can check `./script/install-dependencies/debian-squeeze.sh` to have an idea of what kind of stuff that script has to do. | |
45 | + | |
46 | +If you write such script for your own OS, *please* share it with us at the development mailing list so that we can include it in the official repository. This way other people using the same OS will have to put less effort to develop Noosfero. | |
47 | + | |
48 | +Submitting your changes back | |
49 | +---------------------------- | |
50 | + | |
51 | +For now please read: | |
52 | + | |
53 | +- Coding conventions | |
54 | + http://noosfero.org/Development/CodingConventions | |
55 | +- Patch guidelines | |
56 | + http://noosfero.org/Development/PatchGuidelines | ... | ... |
INSTALL
... | ... | @@ -1,417 +0,0 @@ |
1 | -= Noosfero installation instructions from source for production environments | |
2 | - | |
3 | -The instructions below can be used for setting up a Noosfero production | |
4 | -environment from the Noosfero sources. | |
5 | - | |
6 | -Before you start installing Noosfero manually, see the information about the | |
7 | -Noosfero Debian package at http://noosfero.org/Development/DebianPackage. Using | |
8 | -the Debian packages on a Debian stable system is the recommended method for | |
9 | -installing production environments. | |
10 | - | |
11 | -If you want to setup a development environment instead of a production one, | |
12 | -stop reading this file right now and read the file HACKING instead. | |
13 | - | |
14 | -For a complete installation guide, please see the following web page: | |
15 | -http://noosfero.org/Development/HowToInstall | |
16 | - | |
17 | -If you have problems with the setup, please feel free to ask questions in the | |
18 | -development mailing list. | |
19 | - | |
20 | -== Requirements | |
21 | - | |
22 | -DISCLAIMER: this installation procedure is tested with Debian stable, which is | |
23 | -currently the only recommended operating system for production usage. It is | |
24 | -possible that you can install it on other systems, and if you do so, please | |
25 | -report it on one of the Noosfero mailing lists, and please send a patch | |
26 | -updating these instructions. | |
27 | - | |
28 | -Noosfero is written in Ruby with the "Rails | |
29 | -framework":http://www.rubyonrails.org, so the process of setting it up is | |
30 | -pretty similar to other Rails applications. | |
31 | - | |
32 | -You need to install some packages Noosfero depends on. On Debian GNU/Linux or | |
33 | -Debian-based systems, all of these packages are available through the Debian | |
34 | -archive. You can install them with the following command: | |
35 | - | |
36 | - # apt-get install ruby rake po4a libgettext-ruby-util libgettext-ruby1.8 libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby libwill-paginate-ruby iso-codes libfeedparser-ruby libdaemons-ruby thin tango-icon-theme libhpricot-ruby | |
37 | - | |
38 | -On other systems, they may or may not be available through your regular package | |
39 | -management system. Below are the links to their homepages. | |
40 | - | |
41 | -* Ruby: http://www.ruby-lang.org/ | |
42 | -* Rake: http://rake.rubyforge.org/ | |
43 | -* po4a: http://po4a.alioth.debian.org/ | |
44 | -* Ruby-sqlite3: http://rubyforge.org/projects/sqlite-ruby | |
45 | -* rcov: http://eigenclass.org/hiki/rcov | |
46 | -* RMagick: http://rmagick.rubyforge.org/ | |
47 | -* RedCloth: http://redcloth.org/ | |
48 | -* will_paginate: http://github.com/mislav/will_paginate/wikis | |
49 | -* iso-codes: http://pkg-isocodes.alioth.debian.org/ | |
50 | -* feedparser: http://packages.debian.org/sid/libfeedparser-ruby | |
51 | -* Daemons - http://daemons.rubyforge.org/ | |
52 | -* Thin: http://code.macournoyer.com/thin/ | |
53 | -* tango-icon-theme: http://tango.freedesktop.org/Tango_Icon_Library | |
54 | -* Hpricot: http://hpricot.com/ | |
55 | - | |
56 | -If you manage to install Noosfero successfully on other systems than Debian, | |
57 | -please feel free to contact the Noosfero development mailing with the | |
58 | -instructions for doing so, and we'll include it here. | |
59 | - | |
60 | -As root user | |
61 | -============ | |
62 | - | |
63 | -Install memcached. On Debian: | |
64 | - | |
65 | -# apt-get install memcached | |
66 | - | |
67 | -Study whether you need to raise the ammount of memory it uses for caching, | |
68 | -depending on the demand you expect for your site. If you are going to run a | |
69 | -high-traffic site, you will want to raise the ammount of memory reserved for | |
70 | -caching. | |
71 | - | |
72 | -It is recommended that you run noosfero with its own user account. To create | |
73 | -such an account, please do the following: | |
74 | - | |
75 | -# adduser --system --group noosfero --shell /bin/sh --home /var/lib/noosfero | |
76 | - | |
77 | -(note that you can change the $HOME directory of the user if you wish, here we | |
78 | -are using /var/lib/noosfero) | |
79 | - | |
80 | -The --system option will tell adduser to create a system user, i.e. this user | |
81 | -will not have a password and cannot login to the system directly. To become | |
82 | -this user, you have to use sudo: | |
83 | - | |
84 | -# sudo -u noosfero -i | |
85 | - | |
86 | -or | |
87 | - | |
88 | -# su - noosfero | |
89 | - | |
90 | -As noosfero user | |
91 | -================ | |
92 | - | |
93 | -downloading from git | |
94 | --------------------- | |
95 | - | |
96 | -Here we are cloning the noosfero repository from git. Note: you will need to | |
97 | -install git before. | |
98 | - | |
99 | -$ git clone git://gitorious.org/noosfero/noosfero.git current | |
100 | -$ cd current | |
101 | -$ git checkout -b stable origin/stable | |
102 | - | |
103 | -downloading tarball | |
104 | -------------------- | |
105 | - | |
106 | -Note: replace 0.39.0 below from the latest stable version. | |
107 | - | |
108 | -$ wget http://noosfero.org/pub/Development/NoosferoVersion00x39x00/noosfero-0.39.0.tar.gz | |
109 | -$ tar -zxvf noosfero-0.39.0.tar.gz | |
110 | -$ ln -s noosfero-0.39.0 current | |
111 | -$ cd current | |
112 | - | |
113 | -Create the thin configuration file: | |
114 | - | |
115 | -$ thin -C config/thin.yml -e production config | |
116 | - | |
117 | -Edit config/thin.yml to suit your needs. Make sure your apache | |
118 | -configuration matches the thin cluster configuration, specially in respect | |
119 | -to the ports and numbers of thin instances. | |
120 | - | |
121 | -Note: currently Noosfero only supports Rails 2.3.5, which is the version in | |
122 | -Debian Squeeze. If you have a Rails version newer than that, Noosfero will | |
123 | -probably not work. You can install Rails 2.3.5 into your Noosfero installation | |
124 | -with the following procedure: | |
125 | - | |
126 | -$ cd /var/lib/noosfero/current/vendor | |
127 | -$ wget http://ftp.de.debian.org/debian/pool/main/r/rails/rails_2.3.5.orig.tar.gz | |
128 | -$ tar xzf rails_2.3.5.orig.tar.gz | |
129 | -$ ln -s rails-2.3.5 rails | |
130 | - | |
131 | -As root user | |
132 | -============ | |
133 | - | |
134 | -Setup Noosfero log and tmp directories: | |
135 | - | |
136 | -# cd /var/lib/noosfero/current | |
137 | -# ./etc/init.d/noosfero setup | |
138 | - | |
139 | -Now it's time to setup the database. In this example we are using PostgreSQL, | |
140 | -so if you are planning to use a different database this steps won't apply. | |
141 | - | |
142 | -# apt-get install postgresql libpgsql-ruby | |
143 | -# su postgres -c 'createuser noosfero -S -d -R' | |
144 | - | |
145 | -By default Rails will try to connect on postgresql through 5432 port, | |
146 | -you can check it on /etc/postgresql/8.4/main/postgresql.conf file. | |
147 | - | |
148 | -Restart postgresql: | |
149 | - | |
150 | -# invoke-rc.d postgresql restart | |
151 | - | |
152 | -Noosfero needs a functional e-mail setup to work: the local mail system should | |
153 | -be able to deliver e-mail to the internet, either directly or through an | |
154 | -external SMTP server. Please check the documentation at the INSTALL.email file. | |
155 | - | |
156 | -As noosfero user | |
157 | -================ | |
158 | - | |
159 | -Now create the databases: | |
160 | - | |
161 | -$ cd /var/lib/noosfero/current | |
162 | -$ createdb noosfero_production | |
163 | -$ createdb noosfero_development | |
164 | -$ createdb noosfero_test | |
165 | - | |
166 | -The development and test databases are actually optional. If you are creating a | |
167 | -stricly production server, you will probably not need them. | |
168 | - | |
169 | -Now we want to configure Noosfero for accessing the database we just created. | |
170 | -To do that, you can 1) copy config/database.yml.pgsql to config/database.yml, | |
171 | -or create config/database.yml from scratch with the following content: | |
172 | - | |
173 | - production: | |
174 | - adapter: postgresql | |
175 | - encoding: unicode | |
176 | - database: noosfero_production | |
177 | - username: noosfero | |
178 | - | |
179 | -Now, to test the database access, you can fire the Rails database console: | |
180 | - | |
181 | -$ ./script/dbconsole production | |
182 | - | |
183 | -If it connects to your database, then everything is fine. If you got an error | |
184 | -message, then you have to check your database configuration. | |
185 | - | |
186 | -Create the database structure: | |
187 | - | |
188 | -$ RAILS_ENV=production rake db:schema:load | |
189 | - | |
190 | -Compile the translations: | |
191 | - | |
192 | -$ RAILS_ENV=production rake noosfero:translations:compile | |
193 | - | |
194 | -Now we must create some initial data. To create your default environment | |
195 | -(the first one), run the command below: | |
196 | - | |
197 | -$ RAILS_ENV=production ./script/runner 'Environment.create!(:name => "My environment", :is_default => true)' | |
198 | - | |
199 | -(of course, replace "My environment" with your environment's name!) | |
200 | - | |
201 | -And now you have to add the domain name you will be using for your noosfero | |
202 | -site to the list of domains of that default environment you just created: | |
203 | - | |
204 | -$ RAILS_ENV=production ./script/runner "Environment.default.domains << Domain.new(:name => 'your.domain.com')" | |
205 | - | |
206 | -(replace "your.domain.com" with your actual domain name) | |
207 | - | |
208 | -Add at least one user as admin of environment: | |
209 | - | |
210 | -$ RAILS_ENV=production ./script/runner "User.create(:login => 'adminuser', :email => 'admin@example.com', :password => 'admin', :password_confirmation => 'admin', :environment => Environment.default, :activated_at => Time.new)" | |
211 | - | |
212 | -(replace "adminuser", "admin@example.com", "admin" with the login, email | |
213 | -and password of your environment administrator) | |
214 | - | |
215 | -To start the Noosfero application servers: | |
216 | - | |
217 | -$ ./script/production start | |
218 | - | |
219 | -At this point you have a functional Noosfero installation running, the only | |
220 | -thing left is to configure your webserver as a reverse proxy to pass requests | |
221 | -to them. | |
222 | - | |
223 | - | |
224 | -================== | |
225 | -Apache instalation | |
226 | -================== | |
227 | - | |
228 | -# apt-get install apache2 | |
229 | - | |
230 | -Apache configuration | |
231 | --------------------- | |
232 | - | |
233 | -First you have to enable the following some apache modules: | |
234 | - | |
235 | - deflate | |
236 | - expires | |
237 | - proxy | |
238 | - proxy_balancer | |
239 | - proxy_http | |
240 | - rewrite | |
241 | - | |
242 | -On Debian GNU/Linux system, these modules can be enabled with the following | |
243 | -command line, as root: | |
244 | - | |
245 | -# a2enmod deflate expires proxy proxy_balancer proxy_http rewrite | |
246 | - | |
247 | -In other systems the way by which you enable apache modules may be different. | |
248 | - | |
249 | -Now with the Apache configuration. You can use the template below, replacing | |
250 | -/var/lib/noosfero/current with the directory in which your noosfero | |
251 | -installation is, your.domain.com with the domain name of your noosfero site. | |
252 | -We are assuming that you are running two thin instances on ports 3000 and | |
253 | -3001. If your setup is different you'll need to adjust <Proxy> section. If you | |
254 | -don't understand something in the configuration, please refer to the apache | |
255 | -documentation. | |
256 | - | |
257 | -Add a file called "mysite" (or whatever name you want to give to your noosfero | |
258 | -site) to /etc/apache2/sites-available with the following content, and customize | |
259 | -as needed (as usual, make sure you replace "your.domain.com" with you actual | |
260 | -domain name, and "/var/lib/noosfero/current" with the directory where Noosfero | |
261 | -is installed): | |
262 | - | |
263 | - <VirtualHost *:80> | |
264 | - ServerName your.domain.com | |
265 | - | |
266 | - DocumentRoot "/var/lib/noosfero/current/public" | |
267 | - <Directory "/var/lib/noosfero/current/public"> | |
268 | - Options FollowSymLinks | |
269 | - AllowOverride None | |
270 | - Order Allow,Deny | |
271 | - Allow from all | |
272 | - </Directory> | |
273 | - | |
274 | - RewriteEngine On | |
275 | - | |
276 | - # Rewrite index to check for static index.html | |
277 | - RewriteRule ^/$ /index.html [QSA] | |
278 | - | |
279 | - # Rewrite to check for Rails cached page | |
280 | - RewriteRule ^([^.]+)$ $1.html [QSA] | |
281 | - | |
282 | - RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | |
283 | - RewriteRule ^.*$ balancer://noosfero%{REQUEST_URI} [P,QSA,L] | |
284 | - | |
285 | - ErrorDocument 503 /503.html | |
286 | - | |
287 | - ErrorLog /var/log/apache2/noosfero.log | |
288 | - LogLevel warn | |
289 | - CustomLog /var/log/apache2/noosfero.access.log combined | |
290 | - | |
291 | - Include /var/lib/noosfero/current/etc/noosfero/apache/cache.conf | |
292 | - | |
293 | - </VirtualHost> | |
294 | - | |
295 | - <Proxy balancer://noosfero> | |
296 | - BalancerMember http://127.0.0.1:3000 | |
297 | - BalancerMember http://127.0.0.1:3001 | |
298 | - Order Allow,Deny | |
299 | - Allow from All | |
300 | - </Proxy> | |
301 | - | |
302 | -The cache.conf file included in the end of the <VirtualHost> section is | |
303 | -important, since it will tell apache to pass expiration and cache headers to | |
304 | -clients so that the site feels faster for users. Do we need to say that using | |
305 | -that configuration is strongly recommended? | |
306 | - | |
307 | -Enable that site with (as root, replace "mysite" with the actual name you gave | |
308 | -to your site configuration): | |
309 | - | |
310 | -# a2ensite mysite | |
311 | - | |
312 | -Now restart your apache server (as root): | |
313 | - | |
314 | -# invoke-rc.d apache2 restart | |
315 | - | |
316 | - | |
317 | -Enabling exception notifications | |
318 | -================================ | |
319 | - | |
320 | -This is an optional step. You will need it only if you want to receive e-mail | |
321 | -notifications when some exception occurs on Noosfero. | |
322 | - | |
323 | -First, install this version of the gem. | |
324 | -Others versions may not be compatible with Noosfero: | |
325 | - | |
326 | -# gem install exception_notification -v 1.0.20090728 | |
327 | - | |
328 | -You can configure the e-mails that will receive the notifications. | |
329 | -Change the file config/noosfero.yml as the following example, replacing the | |
330 | -e-mails by real ones: | |
331 | - | |
332 | - production: | |
333 | - exception_recipients: [admin@example.com, you@example.com] | |
334 | - | |
335 | - | |
336 | -============ | |
337 | -Maintainance | |
338 | -============ | |
339 | - | |
340 | -To ease the maintainance, install a symbolic link for the Noosfero startup | |
341 | -script in your server and add it to the system initialization and shutdown | |
342 | -sequences (as root): | |
343 | - | |
344 | -# ln -s /var/lib/noosfero/current/etc/init.d/noosfero /etc/init.d/noosfero | |
345 | -# update-rc.d noosfero defaults | |
346 | - Adding system startup for /etc/init.d/noosfero ... | |
347 | - /etc/rc0.d/K20noosfero -> ../init.d/noosfero | |
348 | - /etc/rc1.d/K20noosfero -> ../init.d/noosfero | |
349 | - /etc/rc6.d/K20noosfero -> ../init.d/noosfero | |
350 | - /etc/rc2.d/S20noosfero -> ../init.d/noosfero | |
351 | - /etc/rc3.d/S20noosfero -> ../init.d/noosfero | |
352 | - /etc/rc4.d/S20noosfero -> ../init.d/noosfero | |
353 | - /etc/rc5.d/S20noosfero -> ../init.d/noosfero | |
354 | - | |
355 | -Now to start Noosfero, you do as root: | |
356 | - | |
357 | -# invoke-rc.d noosfero start | |
358 | - | |
359 | -To stop Noosfero: | |
360 | - | |
361 | -# invoke-rc.d noosfero start | |
362 | - | |
363 | -To restart Noosfero: | |
364 | - | |
365 | -# invoke-rc.d noosfero restart | |
366 | - | |
367 | -Noosfero will be automatically started during system boot, and automatically | |
368 | -stopped if the system shuts down for some reason (or during the shutdown part | |
369 | -of a reboot). | |
370 | - | |
371 | -============= | |
372 | -Rotating logs | |
373 | -============= | |
374 | - | |
375 | -Noosfero provides an example logrotate configuation to rotate its logs. To use | |
376 | -it, create a symbolic link in /etc/logrotate.d/: | |
377 | - | |
378 | -# cd /etc/logrotate.d/ | |
379 | -# ln -s /var/lib/noosfero/current/etc/logrotate.d/noosfero | |
380 | - | |
381 | -Note that the provided file assumes Noosfero logging is being done in | |
382 | -/var/log/noosfero (which is the case if you followed the instructions above | |
383 | -correctly). If the logs are stored elsewhere, it's recommended that you copy | |
384 | -the file over to /etc/logrotate.d/ and modify it to point to your local log | |
385 | -directly. | |
386 | - | |
387 | -========= | |
388 | -Upgrading | |
389 | -========= | |
390 | - | |
391 | -If you followed the steps in this document and installed Noosfero from the git | |
392 | -repository, then upgrading is easy. First, you need to allow the noosfero user | |
393 | -to restart the memcached server with sudo, by adding the following line in | |
394 | -/etc/sudoers: | |
395 | - | |
396 | -noosfero ALL=NOPASSWD: /etc/init.d/memcached | |
397 | - | |
398 | -Then, to perform an upgrade, do the following as the noosfero user: | |
399 | - | |
400 | -$ cd /var/lib/noosfero/current | |
401 | -$ ./script/git-upgrade | |
402 | - | |
403 | -The git-upgrade script will take care of everything for you. It will first stop | |
404 | -the service, then fetch the current source code, upgrade database, compile | |
405 | -translations, and then start the service again. | |
406 | - | |
407 | -Note 1: make sure your local git repository is following the "stable" branch, | |
408 | -just like the instructions above. The "master" branch is not recommended for | |
409 | -use in production environments. | |
410 | - | |
411 | -Note 2: always read the release notes before upgrading. Sometimes there will be | |
412 | -steps that must be performed manually. If that is the case, you can invoke the | |
413 | -git-upgrade script with the special parameter "--shell" that will give you a | |
414 | -shell after the upgrade, which you can use to perform any manual steps | |
415 | -required: | |
416 | - | |
417 | -$ ./script/git-upgrade --shell |
INSTALL.awstats
... | ... | @@ -1,78 +0,0 @@ |
1 | -= AWStats setup for Noosfero | |
2 | - | |
3 | -AWStats is a free powerful and featureful tool that generates advanced web, | |
4 | -streaming, ftp or mail server statistics, graphically. | |
5 | - | |
6 | -See http://awstats.sourceforge.net/ | |
7 | - | |
8 | -This guide supposes that the Noosfero server is running GNU/Linux Debian Squeeze. | |
9 | - | |
10 | -1. Install AWStats | |
11 | - | |
12 | -# apt-get install awstats libgeo-ip-perl geoip-database | |
13 | - | |
14 | -2. Basic setup | |
15 | - | |
16 | -Create AWStats config file: | |
17 | - | |
18 | - * /etc/awstats/awstats.<domain>.conf | |
19 | - | |
20 | -Include "/etc/awstats/awstats.conf" | |
21 | -Include "/etc/noosfero/awstats-noosfero.conf" | |
22 | -SiteDomain="<domain>" | |
23 | -HostAliases="<domain-aliases>" | |
24 | - | |
25 | -<domain> should be the domain used in your Noosfero server (eg.: | |
26 | -softwarelivre.org) and the <domain-aliases> should be a list with all aliases | |
27 | -that you configured in apache (eg.: www.softwarelivre.org | |
28 | -www2.softwarelivre.org etc). | |
29 | - | |
30 | -This setup is considering that the Noosfero server is running varnish (see | |
31 | -INSTALL.varnish) and varnishncsa-vhost [1]. | |
32 | - | |
33 | -[1] http://gitorious.org/varnisnncsa-vhost | |
34 | - | |
35 | -3. Running AWStats for the first time | |
36 | - | |
37 | -Run awstats by hand via command line: | |
38 | - | |
39 | -# /usr/lib/cgi-bin/awstats.pl -config=<domain> | |
40 | - | |
41 | -You should see something as below as output of this command: | |
42 | - | |
43 | -# /usr/lib/cgi-bin/awstats.pl -config=softwarelivre.org | |
44 | -Create/Update database for config "/etc/awstats/awstats.softwarelivre.org.conf" by AWStats version 6.7 (build 1.892) | |
45 | -From data in log file "/var/log/varnish/varnishncsa-vhost.log"... | |
46 | -Phase 1 : First bypass old records, searching new record... | |
47 | -Searching new records from beginning of log file... | |
48 | -Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... | |
49 | -Jumped lines in file: 0 | |
50 | -Parsed lines in file: 452 | |
51 | - Found 0 dropped records, | |
52 | - Found 0 corrupted records, | |
53 | - Found 0 old records, | |
54 | - Found 452 new qualified records. | |
55 | - | |
56 | -4. Setup frontend | |
57 | - | |
58 | -You should create a new subdomain to have access to the AWStats, usually | |
59 | -something like tools.<domain> (eg.: tools.softwarelivre.org). Don't include | |
60 | -this subdomain in HostAliases in the AWStats neither in SiteAlias in the | |
61 | -Apache. | |
62 | - | |
63 | -# cp /usr/share/doc/awstats/examples/apache.conf /etc/apache2/conf.d/awstats.conf | |
64 | -# invoke-rc.d apache2 restart | |
65 | - | |
66 | -ps.: Don't forget to change the port /etc/apache/sites-enabled/000-default to | |
67 | -8080. | |
68 | - | |
69 | -Try: http://tools.<domain>/cgi-bin/awstats.pl?config=<domain> | |
70 | -(eg.: http://tools.softwarelivre.org/cgi-bin/awstats.pl?config=softwarelivre.org). | |
71 | - | |
72 | -5. Schedule AWStats in crontab | |
73 | - | |
74 | - * /etc/cron.d/awstats | |
75 | - | |
76 | -0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.<domain>.conf -a -r /var/log/apache/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=<domain> -update >/dev/null | |
77 | - | |
78 | -Done, check the AWStats frontend after one or two days to see if everything is working properly. |
... | ... | @@ -0,0 +1,67 @@ |
1 | +AWStats setup for Noosfero | |
2 | +========================== | |
3 | + | |
4 | +AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically. | |
5 | + | |
6 | +See http://awstats.sourceforge.net | |
7 | + | |
8 | +This guide supposes that the Noosfero server is running GNU/Linux Debian Squeeze. | |
9 | + | |
10 | +### 1. Install AWStats | |
11 | + | |
12 | + # apt-get install awstats libgeo-ip-perl geoip-database | |
13 | + | |
14 | +### 2. Basic setup | |
15 | + | |
16 | +Create AWStats config file: | |
17 | +`/etc/awstats/awstats.<domain>.conf` | |
18 | + | |
19 | + Include "/etc/awstats/awstats.conf" | |
20 | + Include "/etc/noosfero/awstats-noosfero.conf" | |
21 | + SiteDomain="<domain>" | |
22 | + HostAliases="<domain-aliases>" | |
23 | + | |
24 | +`<domain>` should be the domain used in your Noosfero server (eg.: `softwarelivre.org`) and the `<domain-aliases>` should be a list with all aliases that you configured in apache (eg.: `www.softwarelivre.org`, `www2.softwarelivre.org`, etc). | |
25 | + | |
26 | +This setup is considering that the Noosfero server is running varnish (see `INSTALL.varnish`) and [varnishncsa-vhost](http://gitorious.org/varnisnncsa-vhost). | |
27 | + | |
28 | +### 3. Running AWStats for the first time | |
29 | + | |
30 | +Run awstats by hand via command line: | |
31 | + | |
32 | + # /usr/lib/cgi-bin/awstats.pl -config=<domain> | |
33 | + | |
34 | +You should see something as below as output of this command: | |
35 | + | |
36 | + # /usr/lib/cgi-bin/awstats.pl -config=softwarelivre.org | |
37 | + Create/Update database for config "/etc/awstats/awstats.softwarelivre.org.conf" by AWStats version 6.7 (build 1.892) | |
38 | + From data in log file "/var/log/varnish/varnishncsa-vhost.log"... | |
39 | + Phase 1 : First bypass old records, searching new record... | |
40 | + Searching new records from beginning of log file... | |
41 | + Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... | |
42 | + Jumped lines in file: 0 | |
43 | + Parsed lines in file: 452 | |
44 | + Found 0 dropped records, | |
45 | + Found 0 corrupted records, | |
46 | + Found 0 old records, | |
47 | + Found 452 new qualified records. | |
48 | + | |
49 | +### 4. Setup frontend | |
50 | + | |
51 | +You should create a new subdomain to have access to the AWStats, usually something like tools.<domain> (eg.: tools.softwarelivre.org). Don't include this subdomain in HostAliases in the AWStats neither in SiteAlias in the Apache. | |
52 | + | |
53 | + # cp /usr/share/doc/awstats/examples/apache.conf /etc/apache2/conf.d/awstats.conf | |
54 | + # invoke-rc.d apache2 restart | |
55 | + | |
56 | +ps.: Don't forget to change the port `/etc/apache/sites-enabled/000-default` to `8080`. | |
57 | + | |
58 | +Try: `http://tools.<domain>/cgi-bin/awstats.pl?config=<domain>` | |
59 | +(eg.: `http://tools.softwarelivre.org/cgi-bin/awstats.pl?config=softwarelivre.org`). | |
60 | + | |
61 | +### 5. Schedule AWStats in crontab | |
62 | + | |
63 | +`/etc/cron.d/awstats` | |
64 | + | |
65 | + 0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.<domain>.conf -a -r /var/log/apache/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=<domain> -update >/dev/null | |
66 | + | |
67 | +Done, check the AWStats frontend after one or two days to see if everything is working properly. | ... | ... |
INSTALL.chat
... | ... | @@ -1,258 +0,0 @@ |
1 | -== XMPP/Chat Client Setup | |
2 | - | |
3 | -To configure XMPP/BOSH in Noosfero you need: | |
4 | - | |
5 | -* REST Client - http://github.com/archiloque/rest-client | |
6 | -* SystemTimer - http://ph7spot.com/musings/system-timer | |
7 | -* Pidgin data files - http://www.pidgin.im/ | |
8 | - | |
9 | -If you use Debian 6.0 (squeeze): | |
10 | - | |
11 | -# apt-get install librestclient-ruby pidgin-data ruby1.8-dev | |
12 | -# gem install SystemTimer | |
13 | - | |
14 | -The samples of config file to configure a XMPP/BOSH server with | |
15 | -ejabberd, postgresql and apache2 can be found at util/chat directory. | |
16 | - | |
17 | -== XMPP/Chat Server Setup | |
18 | - | |
19 | -This is a step-by-step guide to get a XMPP service working, in a Debian system. | |
20 | - | |
21 | -1. Install the required packages | |
22 | - | |
23 | -# apt-get install ejabberd odbc-postgresql | |
24 | - | |
25 | -2. Ejabberd configuration | |
26 | - | |
27 | -All the following changes must be done in config file: | |
28 | - | |
29 | - /etc/ejabberd/ejabberd.cfg | |
30 | - | |
31 | - 2.1. Set the default admin user | |
32 | - | |
33 | -{ acl, admin, { user, "john", "www.example.com" } }. | |
34 | -{ acl, admin, { user, "bart", "www.example.com" } }. | |
35 | - | |
36 | - 2.2. Set the default host | |
37 | - | |
38 | -{ hosts, [ "www.example.com" ] }. | |
39 | - | |
40 | - 2.3. Http-Bind activation | |
41 | - | |
42 | -{ 5280, ejabberd_http, [ | |
43 | - http_bind, | |
44 | - web_admin | |
45 | - ] | |
46 | -} | |
47 | - | |
48 | -(...) | |
49 | - | |
50 | -{ modules, [ | |
51 | - {mod_http_bind, []}, | |
52 | - ... | |
53 | -] }. | |
54 | - | |
55 | -Ejabberd creates semi-anonymous rooms by default, but Noosfero's Jabber client | |
56 | -needs non-anonymous room, then we need to change default params of creation | |
57 | -rooms in ejabberd to create non-anonymous rooms. | |
58 | - | |
59 | -In non-anonymous rooms the jabber service sends the new occupant's full JID to | |
60 | -all occupants in the room[1]. | |
61 | - | |
62 | -Add option "{default_room_options, [{anonymous, false}]}" to | |
63 | -/etc/ejabberd/ejabberd.cfg in mod_muc session. See below: | |
64 | - | |
65 | -{ mod_muc, [ | |
66 | - %%{host, "conference.@HOST@"}, | |
67 | - {access, muc}, | |
68 | - {access_create, muc}, | |
69 | - {access_persistent, muc}, | |
70 | - {access_admin, muc_admin}, | |
71 | - {max_users, 500}, | |
72 | - {default_room_options, [{anonymous, false}]} | |
73 | -]}, | |
74 | - | |
75 | -[1] - http://xmpp.org/extensions/xep-0045.html#enter-nonanon | |
76 | - | |
77 | - | |
78 | - 2.4. Authentication method | |
79 | - | |
80 | -To use Postgresql through ODBC, the following modifications must be done: | |
81 | - | |
82 | - * Disable the default method: | |
83 | - | |
84 | -{auth_method, internal}. | |
85 | - | |
86 | - * Enable autheticantion through ODBC: | |
87 | - | |
88 | -{auth_method, odbc}. | |
89 | - | |
90 | - * Set database server name | |
91 | - | |
92 | -{odbc_server, "DSN=PostgreSQLEjabberdNoosfero"}. | |
93 | - | |
94 | - | |
95 | - 2.5. Increase the shaper traffic limit | |
96 | - | |
97 | -{ shaper, normal, { maxrate, 10000000 } }. | |
98 | - | |
99 | - | |
100 | - 2.6. Disable unused modules | |
101 | - | |
102 | -Unused modules can be disabled, for example: | |
103 | - | |
104 | - * s2s | |
105 | - * web_admin | |
106 | - * mod_pubsub | |
107 | - * mod_irc | |
108 | - * mod_offline | |
109 | - * mod_admin_extra | |
110 | - * mod_register | |
111 | - | |
112 | - | |
113 | - 2.7. Enable ODBC modules | |
114 | - | |
115 | - * mod_privacy -> mod_privacy_odbc | |
116 | - * mod_private -> mod_private_odbc | |
117 | - * mod_roster -> mod_roster_odbc | |
118 | - | |
119 | -3. Configuring Postgresql | |
120 | - | |
121 | -Login as noosfero user, and execute: | |
122 | - | |
123 | - $ psql noosfero < /path/to/noosfero/util/chat/postgresql/ejabberd.sql | |
124 | - | |
125 | -Where 'noosfero' may need to be replace by the name of the database used for | |
126 | -Noosfero. | |
127 | - | |
128 | -This will create a new schema inside the noosfero database, called 'ejabberd'. | |
129 | - | |
130 | -Note 'noosfero' user should have permission to create Postgresql schemas. Also, | |
131 | -there should be at least one domain with 'is_default = true' in 'domains' | |
132 | -table, otherwise people won't be able to see their friends online. | |
133 | - | |
134 | - | |
135 | -4. ODBC configuration | |
136 | - | |
137 | -The following files must be created: | |
138 | - | |
139 | - * /etc/odbc.ini | |
140 | - | |
141 | -[PostgreSQLEjabberdNoosfero] | |
142 | -Description = PostgreSQL Noosfero ejabberd database | |
143 | -Driver = PostgreSQL Unicode | |
144 | -Trace = No | |
145 | -TraceFile = /tmp/psqlodbc.log | |
146 | -Database = noosfero | |
147 | -Servername = localhost | |
148 | -UserName = <DBUSER> | |
149 | -Password = <DBPASS> | |
150 | -Port = | |
151 | -ReadOnly = No | |
152 | -RowVersioning = No | |
153 | -ShowSystemTables = No | |
154 | -ShowOidColumn = No | |
155 | -FakeOidIndex = No | |
156 | -ConnSettings = SET search_path TO ejabberd | |
157 | - | |
158 | - * /etc/odbcinst.ini | |
159 | - | |
160 | -[PostgreSQL Unicode] | |
161 | -Description = PostgreSQL ODBC driver (Unicode version) | |
162 | -Driver = /usr/lib/odbc/psqlodbcw.so | |
163 | -Setup = /usr/lib/odbc/libodbcpsqlS.so | |
164 | -Debug = 0 | |
165 | -CommLog = 1 | |
166 | -UsageCount = 3 | |
167 | - | |
168 | - 4.1 testing all: | |
169 | - | |
170 | -# isql 'PostgreSQLEjabberdNoosfero' | |
171 | - | |
172 | -If the configuration was done right, the message "Connected!" | |
173 | -will be displayed. | |
174 | - | |
175 | - | |
176 | -5. Enabling kernel polling and SMP in /etc/default/ejabberd | |
177 | - | |
178 | -POLL=true | |
179 | -SMP=auto | |
180 | - | |
181 | - | |
182 | -6. Increase the file descriptors limit for user ejabberd | |
183 | - | |
184 | - 6.1. Uncomment this line in file /etc/pam.d/su: | |
185 | - | |
186 | -session required pam_limits.so | |
187 | - | |
188 | - | |
189 | - 6.2. Add this lines to file /etc/security/limits.conf: | |
190 | - | |
191 | -ejabberd hard nofile 65536 | |
192 | -ejabberd soft nofile 65536 | |
193 | - | |
194 | -Now, test the configuration: | |
195 | - | |
196 | -# cat /proc/<EJABBERD_BEAM_PROCESS_PID>/limits | |
197 | - | |
198 | - | |
199 | -7. Apache Configuration | |
200 | - | |
201 | -Apache server must be configurated as follow: | |
202 | - | |
203 | - * /etc/apache2/sites-enabled/noosfero | |
204 | - | |
205 | -RewriteEngine On | |
206 | -Include /usr/share/noosfero/util/chat/apache/xmpp.conf | |
207 | - | |
208 | - * /etc/apache2/apache2.conf: | |
209 | - | |
210 | -<IfModule mpm_worker_module> | |
211 | - StartServers 8 | |
212 | - MinSpareThreads 25 | |
213 | - MaxSpareThreads 75 | |
214 | - ThreadLimit 128 | |
215 | - ThreadsPerChild 128 | |
216 | - MaxClients 2048 | |
217 | - MaxRequestsPerChild 0 | |
218 | -</IfModule> | |
219 | - | |
220 | -Note: module proxy_http must be enabled: | |
221 | - | |
222 | -# a2enmod proxy_http | |
223 | - | |
224 | -8. DNS configuration | |
225 | - | |
226 | -For this point, we assume you are using BIND as your DNS server. You need to | |
227 | -add the following entries to the DNS zone file corresponding to the domain | |
228 | -of your noosfero site: | |
229 | - | |
230 | -_xmpp-client._tcp SRV 5 100 5222 master | |
231 | -conference CNAME master | |
232 | -_xmpp-client._tcp.conference SRV 5 100 5222 master | |
233 | - | |
234 | -If you are running a DNS server other than BIND, you will have to figure out | |
235 | -how to create equivalente rules for your zone file. Patches to this | |
236 | -documentation are welcome. | |
237 | - | |
238 | -9. Testing this Setup | |
239 | - | |
240 | -Adjust shell limits to proceed with some benchmarks and load tests: | |
241 | - | |
242 | -# ulimit −s 256 | |
243 | -# ulimit −n 8192 | |
244 | -# echo 10 > /proc/sys/net/ipv4/tcp_syn_retries | |
245 | - | |
246 | -To measure the bandwidth between server and client: | |
247 | - | |
248 | - * at server side: | |
249 | - | |
250 | -# iperf −s | |
251 | - | |
252 | - * at client side: | |
253 | - | |
254 | -# iperf −c server_ip | |
255 | - | |
256 | -For heavy load tests, clone and use this software: | |
257 | - | |
258 | -git clone http://git.holoscopio.com/git/metal/tester.git |
... | ... | @@ -0,0 +1,236 @@ |
1 | +XMPP/Chat Client Setup | |
2 | +====================== | |
3 | + | |
4 | +To configure XMPP/BOSH in Noosfero you need: | |
5 | + | |
6 | +* REST Client - http://github.com/archiloque/rest-client | |
7 | +* SystemTimer - http://ph7spot.com/musings/system-timer | |
8 | +* Pidgin data files - http://www.pidgin.im/ | |
9 | + | |
10 | +If you use Debian 6.0 (squeeze): | |
11 | + | |
12 | + # apt-get install librestclient-ruby pidgin-data ruby1.8-dev | |
13 | + # gem install SystemTimer | |
14 | + | |
15 | +The samples of config file to configure a XMPP/BOSH server with ejabberd, postgresql and apache2 can be found at util/chat directory. | |
16 | + | |
17 | +XMPP/Chat Server Setup | |
18 | +====================== | |
19 | + | |
20 | +This is a step-by-step guide to get a XMPP service working, in a Debian system. | |
21 | + | |
22 | +## 1. Install the required packages | |
23 | + | |
24 | + # apt-get install ejabberd odbc-postgresql | |
25 | + | |
26 | +## 2. Ejabberd configuration | |
27 | + | |
28 | +All the following changes must be done in config file: `/etc/ejabberd/ejabberd.cfg` | |
29 | + | |
30 | +### 2.1. Set the default admin user | |
31 | + | |
32 | + { acl, admin, { user, "john", "www.example.com" } }. | |
33 | + { acl, admin, { user, "bart", "www.example.com" } }. | |
34 | + | |
35 | +### 2.2. Set the default host | |
36 | + | |
37 | + { hosts, [ "www.example.com" ] }. | |
38 | + | |
39 | +### 2.3. Http-Bind activation | |
40 | + | |
41 | + { 5280, ejabberd_http, [ | |
42 | + http_bind, | |
43 | + web_admin | |
44 | + ] | |
45 | + } | |
46 | + | |
47 | + (...) | |
48 | + | |
49 | + { modules, [ | |
50 | + {mod_http_bind, []}, | |
51 | + ... | |
52 | + ] }. | |
53 | + | |
54 | +Ejabberd creates semi-anonymous rooms by default, but Noosfero's Jabber client needs non-anonymous room, then we need to change default params of creation rooms in ejabberd to create non-anonymous rooms. | |
55 | + | |
56 | +In non-anonymous rooms the jabber service sends the new occupant's full JID to all occupants in the room [[1]]. | |
57 | + | |
58 | +Add option "`{default_room_options, [{anonymous, false}]}`" to `/etc/ejabberd/ejabberd.cfg` in mod_muc session. See below: | |
59 | + | |
60 | + { mod_muc, [ | |
61 | + %%{host, "conference.@HOST@"}, | |
62 | + {access, muc}, | |
63 | + {access_create, muc}, | |
64 | + {access_persistent, muc}, | |
65 | + {access_admin, muc_admin}, | |
66 | + {max_users, 500}, | |
67 | + {default_room_options, [{anonymous, false}]} | |
68 | + ]}, | |
69 | + | |
70 | +[1]: http://xmpp.org/extensions/xep-0045.html#enter-nonanon | |
71 | + | |
72 | + | |
73 | +### 2.4. Authentication method | |
74 | + | |
75 | +To use Postgresql through ODBC, the following modifications must be done: | |
76 | + | |
77 | + * Disable the default method: | |
78 | + `{auth_method, internal}.` | |
79 | + | |
80 | + * Enable autheticantion through ODBC: | |
81 | + `{auth_method, odbc}.` | |
82 | + | |
83 | + * Set database server name | |
84 | + `{odbc_server, "DSN=PostgreSQLEjabberdNoosfero"}.` | |
85 | + | |
86 | + | |
87 | +### 2.5. Increase the shaper traffic limit | |
88 | + | |
89 | + { shaper, normal, { maxrate, 10000000 } }. | |
90 | + | |
91 | + | |
92 | +### 2.6. Disable unused modules | |
93 | + | |
94 | +Unused modules can be disabled, for example: | |
95 | + | |
96 | + * s2s | |
97 | + * web_admin | |
98 | + * mod_pubsub | |
99 | + * mod_irc | |
100 | + * mod_offline | |
101 | + * mod_admin_extra | |
102 | + * mod_register | |
103 | + | |
104 | + | |
105 | +### 2.7. Enable ODBC modules | |
106 | + | |
107 | + * mod_privacy -> mod_privacy_odbc | |
108 | + * mod_private -> mod_private_odbc | |
109 | + * mod_roster -> mod_roster_odbc | |
110 | + | |
111 | +## 3. Configuring Postgresql | |
112 | + | |
113 | +Login as noosfero user, and execute: | |
114 | + | |
115 | + $ psql noosfero < /path/to/noosfero/util/chat/postgresql/ejabberd.sql | |
116 | + | |
117 | +Where `noosfero` may need to be replace by the name of the database used for Noosfero. | |
118 | + | |
119 | +This will create a new schema inside the noosfero database, called `ejabberd`. | |
120 | + | |
121 | +Note `noosfero` user should have permission to create Postgresql schemas. Also, there should be at least one domain with `is_default = true` in `domains` table, otherwise people won't be able to see their friends online. | |
122 | + | |
123 | +## 4. ODBC configuration | |
124 | + | |
125 | +The following files must be created: | |
126 | + | |
127 | +`/etc/odbc.ini`: | |
128 | + | |
129 | + [PostgreSQLEjabberdNoosfero] | |
130 | + Description = PostgreSQL Noosfero ejabberd database | |
131 | + Driver = PostgreSQL Unicode | |
132 | + Trace = No | |
133 | + TraceFile = /tmp/psqlodbc.log | |
134 | + Database = noosfero | |
135 | + Servername = localhost | |
136 | + UserName = <DBUSER> | |
137 | + Password = <DBPASS> | |
138 | + Port = | |
139 | + ReadOnly = No | |
140 | + RowVersioning = No | |
141 | + ShowSystemTables = No | |
142 | + ShowOidColumn = No | |
143 | + FakeOidIndex = No | |
144 | + ConnSettings = SET search_path TO ejabberd | |
145 | + | |
146 | +`/etc/odbcinst.ini`: | |
147 | + | |
148 | + [PostgreSQL Unicode] | |
149 | + Description = PostgreSQL ODBC driver (Unicode version) | |
150 | + Driver = /usr/lib/odbc/psqlodbcw.so | |
151 | + Setup = /usr/lib/odbc/libodbcpsqlS.so | |
152 | + Debug = 0 | |
153 | + CommLog = 1 | |
154 | + UsageCount = 3 | |
155 | + | |
156 | +## 4.1 testing all: | |
157 | + | |
158 | + # isql 'PostgreSQLEjabberdNoosfero' | |
159 | + | |
160 | +If the configuration was done right, the message "Connected!" will be displayed. | |
161 | + | |
162 | + | |
163 | +## 5. Enabling kernel polling and SMP in `/etc/default/ejabberd` | |
164 | + | |
165 | + POLL=true | |
166 | + SMP=auto | |
167 | + | |
168 | +## 6. Increase the file descriptors limit for user ejabberd | |
169 | + | |
170 | +### 6.1. Uncomment this line in file `/etc/pam.d/su`: | |
171 | + | |
172 | + session required pam_limits.so | |
173 | + | |
174 | +### 6.2. Add this lines to file `/etc/security/limits.conf`: | |
175 | + | |
176 | + ejabberd hard nofile 65536 | |
177 | + ejabberd soft nofile 65536 | |
178 | + | |
179 | +Now, test the configuration: | |
180 | + | |
181 | + # cat /proc/<EJABBERD_BEAM_PROCESS_PID>/limits | |
182 | + | |
183 | +## 7. Apache Configuration | |
184 | + | |
185 | +Apache server must be configurated as follow: | |
186 | + | |
187 | +`/etc/apache2/sites-enabled/noosfero`: | |
188 | + | |
189 | + RewriteEngine On | |
190 | + Include /usr/share/noosfero/util/chat/apache/xmpp.conf | |
191 | + | |
192 | +`/etc/apache2/apache2.conf`: | |
193 | + | |
194 | + <IfModule mpm_worker_module> | |
195 | + StartServers 8 | |
196 | + MinSpareThreads 25 | |
197 | + MaxSpareThreads 75 | |
198 | + ThreadLimit 128 | |
199 | + ThreadsPerChild 128 | |
200 | + MaxClients 2048 | |
201 | + MaxRequestsPerChild 0 | |
202 | + </IfModule> | |
203 | + | |
204 | +Note: module proxy_http must be enabled: | |
205 | + | |
206 | + # a2enmod proxy_http | |
207 | + | |
208 | +## 8. DNS configuration | |
209 | + | |
210 | +For this point, we assume you are using BIND as your DNS server. You need to add the following entries to the DNS zone file corresponding to the domain of your noosfero site: | |
211 | + | |
212 | + _xmpp-client._tcp SRV 5 100 5222 master | |
213 | + conference CNAME master | |
214 | + _xmpp-client._tcp.conference SRV 5 100 5222 master | |
215 | + | |
216 | +If you are running a DNS server other than BIND, you will have to figure out how to create equivalente rules for your zone file. Patches to this documentation are welcome. | |
217 | + | |
218 | +## 9. Testing this Setup | |
219 | + | |
220 | +Adjust shell limits to proceed with some benchmarks and load tests: | |
221 | + | |
222 | + # ulimit −s 256 | |
223 | + # ulimit −n 8192 | |
224 | + # echo 10 > /proc/sys/net/ipv4/tcp_syn_retries | |
225 | + | |
226 | +To measure the bandwidth between server and client: | |
227 | + | |
228 | + * at server side: | |
229 | + `# iperf −s` | |
230 | + | |
231 | + * at client side: | |
232 | + `# iperf −c server_ip` | |
233 | + | |
234 | +For heavy load tests, clone and use this software: | |
235 | + | |
236 | + $ git clone http://git.holoscopio.com/git/metal/tester.git | ... | ... |
INSTALL.email
... | ... | @@ -1,43 +0,0 @@ |
1 | -= Noosfero email setup | |
2 | - | |
3 | -If you know mail systems well, you just need to make sure that the local MTA, | |
4 | -listening on localhost:25, is able to deliver e-mails to the internet. Any mail | |
5 | -server will do it. You can stop reading now. | |
6 | - | |
7 | -If you are not an email specialist, then follow the instructions below. We | |
8 | -suggest that you use the Postfix mail server, since it is easy to configure and | |
9 | -very reliable. Just follow the instructions below. | |
10 | - | |
11 | -To install Postfix: | |
12 | - | |
13 | -# apt-get install postfix | |
14 | - | |
15 | -During the installation process, you will be asked a few questions. Your answer | |
16 | -to them will vary in 2 cases: | |
17 | - | |
18 | -Case 1: you can send e-mails directly to the internet. This will be the case | |
19 | -for most commercial private servers. Your answers should be: | |
20 | - | |
21 | - General type of mail configuration: Internet site | |
22 | - System mail name: the name of your domain, e.g. "mysocialnetwork.com" | |
23 | - | |
24 | -Case 2: you cannot, or don't want to, send e-mail directly to the internet. | |
25 | -This happens for example if your server is not allowed to make outbound | |
26 | -connections on port 25, or if you want to concentrate all your outbound mail | |
27 | -through a single SMTP server. Your answers in this case should be: | |
28 | - | |
29 | - General type of mail configuration: Internet with smarthost | |
30 | - System mail name: the name of your domain, e.g. "mysocialnetwork.com" | |
31 | - SMTP relay host: smtp.yourprovider.com | |
32 | - | |
33 | -Note that smtp.yourprovider.com must allow your server to deliver e-mails | |
34 | -through it. You should probably ask your servive provider about this. | |
35 | - | |
36 | -There is another possibility: if you are installing on a shared server, and | |
37 | -don't have permission to configure the local MTA, you can instruct Noosfero to | |
38 | -send e-mails directly through an external server. Please note that this should | |
39 | -be your last option, since contacting an external SMTP server directly may slow | |
40 | -down your Noosfero application server. To configure Noosfero to send e-mails | |
41 | -through an external SMTP server, follow the instructions on | |
42 | -http://noosfero.org/Development/SMTPMailSending | |
43 | - |
... | ... | @@ -0,0 +1,28 @@ |
1 | +Noosfero email setup | |
2 | +==================== | |
3 | + | |
4 | +If you know mail systems well, you just need to make sure that the local MTA, listening on localhost:25, is able to deliver e-mails to the internet. Any mail server will do it. You can stop reading now. | |
5 | + | |
6 | +If you are not an email specialist, then follow the instructions below. We suggest that you use the Postfix mail server, since it is easy to configure and very reliable. Just follow the instructions below. | |
7 | + | |
8 | +To install Postfix: | |
9 | + | |
10 | + # apt-get install postfix | |
11 | + | |
12 | +During the installation process, you will be asked a few questions. Your answer to them will vary in 2 cases: | |
13 | + | |
14 | +**Case 1**: you can send e-mails directly to the internet. This will be the case for most commercial private servers. Your answers should be: | |
15 | + | |
16 | + * General type of mail configuration: Internet site | |
17 | + * System mail name: the name of your domain, e.g. "mysocialnetwork.com" | |
18 | + | |
19 | +**Case 2**: you cannot, or don't want to, send e-mail directly to the internet. This happens for example if your server is not allowed to make outbound connections on port 25, or if you want to concentrate all your outbound mail through a single SMTP server. Your answers in this case should be: | |
20 | + | |
21 | + * General type of mail configuration: Internet with smarthost | |
22 | + * System mail name: the name of your domain, e.g. "mysocialnetwork.com" | |
23 | + * SMTP relay host: smtp.yourprovider.com | |
24 | + | |
25 | +Note that smtp.yourprovider.com must allow your server to deliver e-mails through it. You should probably ask your servive provider about this. | |
26 | + | |
27 | +There is another possibility: if you are installing on a shared server, and don't have permission to configure the local MTA, you can instruct Noosfero to send e-mails directly through an external server. Please note that this should be your last option, since contacting an external SMTP server directly may slow down your Noosfero application server. To configure Noosfero to send e-mails through an external SMTP server, follow the instructions on http://noosfero.org/Development/SMTPMailSending | |
28 | + | ... | ... |
... | ... | @@ -0,0 +1,334 @@ |
1 | +Noosfero installation instructions from source for production environments | |
2 | +========================================================================== | |
3 | + | |
4 | +The instructions below can be used for setting up a Noosfero production environment from the Noosfero sources. | |
5 | + | |
6 | +Before you start installing Noosfero manually, see the information about the Noosfero Debian package at http://noosfero.org/Development/DebianPackage. Using the Debian packages on a Debian stable system is the recommended method for installing production environments. | |
7 | + | |
8 | +If you want to setup a development environment instead of a production one, stop reading this file right now and read the file `HACKING.md` instead. | |
9 | + | |
10 | +For a complete installation guide, please see the following web page: http://noosfero.org/Development/HowToInstall | |
11 | + | |
12 | +If you have problems with the setup, please feel free to ask questions in the development mailing list. | |
13 | + | |
14 | +Requirements | |
15 | +------------ | |
16 | + | |
17 | +**DISCLAIMER**: this installation procedure is tested with Debian stable, which is currently the only recommended operating system for production usage. It is possible that you can install it on other systems, and if you do so, please report it on one of the Noosfero mailing lists, and please send a patch updating these instructions. | |
18 | + | |
19 | +Noosfero is written in Ruby with the "[Rails framework](http://www.rubyonrails.org)", so the process of setting it up is pretty similar to other Rails applications. | |
20 | + | |
21 | +You need to install some packages Noosfero depends on. On Debian GNU/Linux or Debian-based systems, all of these packages are available through the Debian archive. You can install them with the following command: | |
22 | + | |
23 | + # apt-get install ruby rake po4a libgettext-ruby-util libgettext-ruby1.8 \ | |
24 | + libsqlite3-ruby rcov librmagick-ruby libredcloth-ruby libhpricot-ruby \ | |
25 | + libwill-paginate-ruby iso-codes libfeedparser-ruby libdaemons-ruby thin \ | |
26 | + tango-icon-theme | |
27 | + | |
28 | +On other systems, they may or may not be available through your regular package management system. Below are the links to their homepages. | |
29 | + | |
30 | +* Ruby: http://www.ruby-lang.org | |
31 | +* Rake: http://rake.rubyforge.org | |
32 | +* po4a: http://po4a.alioth.debian.org | |
33 | +* Ruby-sqlite3: http://rubyforge.org/projects/sqlite-ruby | |
34 | +* rcov: http://eigenclass.org/hiki/rcov | |
35 | +* RMagick: http://rmagick.rubyforge.org | |
36 | +* RedCloth: http://redcloth.org | |
37 | +* will_paginate: http://github.com/mislav/will_paginate/wikis | |
38 | +* iso-codes: http://pkg-isocodes.alioth.debian.org | |
39 | +* feedparser: http://packages.debian.org/sid/libfeedparser-ruby | |
40 | +* Daemons - http://daemons.rubyforge.org | |
41 | +* Thin: http://code.macournoyer.com/thin | |
42 | +* tango-icon-theme: http://tango.freedesktop.org/Tango_Icon_Library | |
43 | +* Hpricot: http://hpricot.com | |
44 | + | |
45 | +If you manage to install Noosfero successfully on other systems than Debian, | |
46 | +please feel free to contact the Noosfero development mailing with the | |
47 | +instructions for doing so, and we'll include it here. | |
48 | + | |
49 | +As root user | |
50 | +============ | |
51 | + | |
52 | +Install memcached. On Debian: | |
53 | + | |
54 | + # apt-get install memcached | |
55 | + | |
56 | +Study whether you need to raise the ammount of memory it uses for caching, depending on the demand you expect for your site. If you are going to run a high-traffic site, you will want to raise the ammount of memory reserved for caching. | |
57 | + | |
58 | +It is recommended that you run noosfero with its own user account. To create such an account, please do the following: | |
59 | + | |
60 | + # adduser --system --group noosfero --shell /bin/sh --home /var/lib/noosfero | |
61 | + | |
62 | +(note that you can change the `$HOME` directory of the user if you wish, here we are using `/var/lib/noosfero`) | |
63 | + | |
64 | +The `--system` option will tell adduser to create a system user, i.e. this user will not have a password and cannot login to the system directly. To become this user, you have to use sudo: | |
65 | + | |
66 | + # sudo -u noosfero -i | |
67 | + or | |
68 | + # su - noosfero | |
69 | + | |
70 | +As noosfero user | |
71 | +================ | |
72 | + | |
73 | +downloading from git | |
74 | +-------------------- | |
75 | + | |
76 | +Here we are cloning the noosfero repository from git. Note: you will need to install git before. | |
77 | + | |
78 | + $ git clone git://gitorious.org/noosfero/noosfero.git current | |
79 | + $ cd current | |
80 | + $ git checkout -b stable origin/stable | |
81 | + | |
82 | +downloading tarball | |
83 | +------------------- | |
84 | + | |
85 | +Note: replace 0.39.0 below from the latest stable version. | |
86 | + | |
87 | + $ wget http://noosfero.org/pub/Development/NoosferoVersion00x39x00/noosfero-0.39.0.tar.gz | |
88 | + $ tar -zxvf noosfero-0.39.0.tar.gz | |
89 | + $ ln -s noosfero-0.39.0 current | |
90 | + $ cd current | |
91 | + | |
92 | +Create the thin configuration file: | |
93 | + | |
94 | + $ thin -C config/thin.yml -e production config | |
95 | + | |
96 | +Edit config/thin.yml to suit your needs. Make sure your apache configuration matches the thin cluster configuration, specially in respect to the ports and numbers of thin instances. | |
97 | + | |
98 | +*Note*: currently Noosfero only supports Rails 2.3.5, which is the version in Debian Squeeze. If you have a Rails version newer than that, Noosfero will probably not work. You can install Rails 2.3.5 into your Noosfero installation with the following procedure: | |
99 | + | |
100 | + $ cd /var/lib/noosfero/current/vendor | |
101 | + $ wget http://ftp.de.debian.org/debian/pool/main/r/rails/rails_2.3.5.orig.tar.gz | |
102 | + $ tar xzf rails_2.3.5.orig.tar.gz | |
103 | + $ ln -s rails-2.3.5 rails | |
104 | + | |
105 | +As root user | |
106 | +============ | |
107 | + | |
108 | +Setup Noosfero log and tmp directories: | |
109 | + | |
110 | + # cd /var/lib/noosfero/current | |
111 | + # ./etc/init.d/noosfero setup | |
112 | + | |
113 | +Now it's time to setup the database. In this example we are using PostgreSQL, so if you are planning to use a different database this steps won't apply. | |
114 | + | |
115 | + # apt-get install postgresql libpgsql-ruby | |
116 | + # su postgres -c 'createuser noosfero -S -d -R' | |
117 | + | |
118 | +By default Rails will try to connect on postgresql through 5432 port, you can check it on `/etc/postgresql/8.4/main/postgresql.conf` file. | |
119 | + | |
120 | +Restart postgresql: | |
121 | + # invoke-rc.d postgresql restart | |
122 | + | |
123 | +Noosfero needs a functional e-mail setup to work: the local mail system should be able to deliver e-mail to the internet, either directly or through an external SMTP server. Please check the documentation at the INSTALL.email file. | |
124 | + | |
125 | +As noosfero user | |
126 | +================ | |
127 | + | |
128 | +Now create the databases: | |
129 | + | |
130 | + $ cd /var/lib/noosfero/current | |
131 | + $ createdb noosfero_production | |
132 | + $ createdb noosfero_development | |
133 | + $ createdb noosfero_test | |
134 | + | |
135 | +The development and test databases are actually optional. If you are creating a stricly production server, you will probably not need them. | |
136 | + | |
137 | +Now we want to configure Noosfero for accessing the database we just created. To do that, you can 1) copy `config/database.yml.pgsql` to `config/database.yml`, or create `config/database.yml` from scratch with the following content: | |
138 | + | |
139 | + production: | |
140 | + adapter: postgresql | |
141 | + encoding: unicode | |
142 | + database: noosfero_production | |
143 | + username: noosfero | |
144 | + | |
145 | +Now, to test the database access, you can fire the Rails database console: | |
146 | + | |
147 | + $ ./script/dbconsole production | |
148 | + | |
149 | +If it connects to your database, then everything is fine. If you got an error message, then you have to check your database configuration. | |
150 | + | |
151 | +Create the database structure: | |
152 | + | |
153 | + $ RAILS_ENV=production rake db:schema:load | |
154 | + | |
155 | +Compile the translations: | |
156 | + | |
157 | + $ RAILS_ENV=production rake noosfero:translations:compile | |
158 | + | |
159 | +Now we must create some initial data. To create your default environment (the first one), run the command below: | |
160 | + | |
161 | + $ RAILS_ENV=production ./script/runner 'Environment.create!(:name => "My environment", :is_default => true)' | |
162 | + | |
163 | +(of course, replace "My environment" with your environment's name!) | |
164 | + | |
165 | +And now you have to add the domain name you will be using for your noosfero site to the list of domains of that default environment you just created: | |
166 | + | |
167 | + $ RAILS_ENV=production ./script/runner "Environment.default.domains << Domain.new(:name => 'your.domain.com')" | |
168 | + | |
169 | +(replace "your.domain.com" with your actual domain name) | |
170 | + | |
171 | +Add at least one user as admin of environment: | |
172 | + | |
173 | + $ RAILS_ENV=production ./script/runner "User.create(:login => 'adminuser', :email => 'admin@example.com', :password => 'admin', :password_confirmation => 'admin', :environment => Environment.default, :activated_at => Time.new)" | |
174 | + | |
175 | +(replace "adminuser", "admin@example.com", "admin" with the login, email and password of your environment administrator) | |
176 | + | |
177 | +To start the Noosfero application servers: | |
178 | + | |
179 | + $ ./script/production start | |
180 | + | |
181 | +At this point you have a functional Noosfero installation running, the only thing left is to configure your webserver as a reverse proxy to pass requests to them. | |
182 | + | |
183 | + | |
184 | +Apache instalation | |
185 | +================== | |
186 | + | |
187 | + # apt-get install apache2 | |
188 | + | |
189 | +Apache configuration | |
190 | +-------------------- | |
191 | + | |
192 | +First you have to enable the following some apache modules: | |
193 | + | |
194 | + * deflate | |
195 | + * expires | |
196 | + * proxy | |
197 | + * proxy_balancer | |
198 | + * proxy_http | |
199 | + * rewrite | |
200 | + | |
201 | +On Debian GNU/Linux system, these modules can be enabled with the following command line, as root: | |
202 | + | |
203 | + # a2enmod deflate expires proxy proxy_balancer proxy_http rewrite | |
204 | + | |
205 | +In other systems the way by which you enable apache modules may be different. | |
206 | + | |
207 | +Now with the Apache configuration. You can use the template below, replacing `/var/lib/noosfero/current` with the directory in which your noosfero installation is, your.domain.com with the domain name of your noosfero site. We are assuming that you are running two thin instances on ports 3000 and 3001. If your setup is different you'll need to adjust `<Proxy>` section. If you don't understand something in the configuration, please refer to the apache documentation. | |
208 | + | |
209 | +Add a file called "mysite" (or whatever name you want to give to your noosfero site) to `/etc/apache2/sites-available` with the following content, and customize as needed (as usual, make sure you replace "your.domain.com" with you actual domain name, and "`/var/lib/noosfero/current`" with the directory where Noosfero is installed): | |
210 | + | |
211 | + <VirtualHost *:80> | |
212 | + ServerName your.domain.com | |
213 | + | |
214 | + DocumentRoot "/var/lib/noosfero/current/public" | |
215 | + <Directory "/var/lib/noosfero/current/public"> | |
216 | + Options FollowSymLinks | |
217 | + AllowOverride None | |
218 | + Order Allow,Deny | |
219 | + Allow from all | |
220 | + </Directory> | |
221 | + | |
222 | + RewriteEngine On | |
223 | + | |
224 | + # Rewrite index to check for static index.html | |
225 | + RewriteRule ^/$ /index.html [QSA] | |
226 | + | |
227 | + # Rewrite to check for Rails cached page | |
228 | + RewriteRule ^([^.]+)$ $1.html [QSA] | |
229 | + | |
230 | + RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f | |
231 | + RewriteRule ^.*$ balancer://noosfero%{REQUEST_URI} [P,QSA,L] | |
232 | + | |
233 | + ErrorDocument 503 /503.html | |
234 | + | |
235 | + ErrorLog /var/log/apache2/noosfero.log | |
236 | + LogLevel warn | |
237 | + CustomLog /var/log/apache2/noosfero.access.log combined | |
238 | + | |
239 | + Include /var/lib/noosfero/current/etc/noosfero/apache/cache.conf | |
240 | + | |
241 | + </VirtualHost> | |
242 | + | |
243 | + <Proxy balancer://noosfero> | |
244 | + BalancerMember http://127.0.0.1:3000 | |
245 | + BalancerMember http://127.0.0.1:3001 | |
246 | + Order Allow,Deny | |
247 | + Allow from All | |
248 | + </Proxy> | |
249 | + | |
250 | +The cache.conf file included in the end of the <VirtualHost> section is important, since it will tell apache to pass expiration and cache headers to clients so that the site feels faster for users. Do we need to say that using that configuration is strongly recommended? | |
251 | + | |
252 | +Enable that site with (as root, replace "mysite" with the actual name you gave to your site configuration): | |
253 | + | |
254 | + # a2ensite mysite | |
255 | + | |
256 | +Now restart your apache server (as root): | |
257 | + | |
258 | + # invoke-rc.d apache2 restart | |
259 | + | |
260 | + | |
261 | +Enabling exception notifications | |
262 | +================================ | |
263 | + | |
264 | +This is an optional step. You will need it only if you want to receive e-mail notifications when some exception occurs on Noosfero. | |
265 | + | |
266 | +First, install this version of the gem. Others versions may not be compatible with Noosfero: | |
267 | + | |
268 | + # gem install exception_notification -v 1.0.20090728 | |
269 | + | |
270 | +You can configure the e-mails that will receive the notifications. Change the file config/noosfero.yml as the following example, replacing the e-mails by real ones: | |
271 | + | |
272 | + production: | |
273 | + exception_recipients: [admin@example.com, you@example.com] | |
274 | + | |
275 | + | |
276 | +Maintainance | |
277 | +============ | |
278 | + | |
279 | +To ease the maintainance, install a symbolic link for the Noosfero startup script in your server and add it to the system initialization and shutdown sequences (as root): | |
280 | + | |
281 | + # ln -s /var/lib/noosfero/current/etc/init.d/noosfero /etc/init.d/noosfero | |
282 | + # update-rc.d noosfero defaults | |
283 | + Adding system startup for /etc/init.d/noosfero ... | |
284 | + /etc/rc0.d/K20noosfero -> ../init.d/noosfero | |
285 | + /etc/rc1.d/K20noosfero -> ../init.d/noosfero | |
286 | + /etc/rc6.d/K20noosfero -> ../init.d/noosfero | |
287 | + /etc/rc2.d/S20noosfero -> ../init.d/noosfero | |
288 | + /etc/rc3.d/S20noosfero -> ../init.d/noosfero | |
289 | + /etc/rc4.d/S20noosfero -> ../init.d/noosfero | |
290 | + /etc/rc5.d/S20noosfero -> ../init.d/noosfero | |
291 | + | |
292 | +Now to start Noosfero, you do as root: | |
293 | + | |
294 | + # invoke-rc.d noosfero start | |
295 | + | |
296 | +To stop Noosfero: | |
297 | + | |
298 | + # invoke-rc.d noosfero start | |
299 | + | |
300 | +To restart Noosfero: | |
301 | + | |
302 | + # invoke-rc.d noosfero restart | |
303 | + | |
304 | +Noosfero will be automatically started during system boot, and automatically stopped if the system shuts down for some reason (or during the shutdown part of a reboot). | |
305 | + | |
306 | +Rotating logs | |
307 | +============= | |
308 | + | |
309 | +Noosfero provides an example logrotate configuation to rotate its logs. To use it, create a symbolic link in `/etc/logrotate.d/`: | |
310 | + | |
311 | + # cd /etc/logrotate.d/ | |
312 | + # ln -s /var/lib/noosfero/current/etc/logrotate.d/noosfero | |
313 | + | |
314 | +Note that the provided file assumes Noosfero logging is being done in `/var/log/noosfero` (which is the case if you followed the instructions above correctly). If the logs are stored elsewhere, it's recommended that you copy the file over to `/etc/logrotate.d/` and modify it to point to your local log directly. | |
315 | + | |
316 | +Upgrading | |
317 | +========= | |
318 | + | |
319 | +If you followed the steps in this document and installed Noosfero from the git repository, then upgrading is easy. First, you need to allow the noosfero user to restart the memcached server with sudo, by adding the following line in `/etc/sudoers`: | |
320 | + | |
321 | + noosfero ALL=NOPASSWD: /etc/init.d/memcached | |
322 | + | |
323 | +Then, to perform an upgrade, do the following as the noosfero user: | |
324 | + | |
325 | + $ cd /var/lib/noosfero/current | |
326 | + $ ./script/git-upgrade | |
327 | + | |
328 | +The `git-upgrade` script will take care of everything for you. It will first stop the service, then fetch the current source code, upgrade database, compile translations, and then start the service again. | |
329 | + | |
330 | +*Note 1*: make sure your local git repository is following the "stable" branch, just like the instructions above. The `master` branch is **not** recommended for use in production environments. | |
331 | + | |
332 | +*Note 2*: always read the release notes before upgrading. Sometimes there will be steps that must be performed manually. If that is the case, you can invoke the `git-upgrade` script with the special parameter `--shell` that will give you a shell after the upgrade, which you can use to perform any manual steps required: | |
333 | + | |
334 | + $ ./script/git-upgrade --shell | ... | ... |
INSTALL.multitenancy
... | ... | @@ -1,163 +0,0 @@ |
1 | -== Multitenancy support | |
2 | - | |
3 | -Multitenancy refers to a principle in software architecture where a | |
4 | -single instance of the software runs on a server, serving multiple | |
5 | -client organizations (tenants). Multitenancy is contrasted with a | |
6 | -multi-instance architecture where separate software instances (or | |
7 | -hardware systems) are set up for different client organizations. With | |
8 | -a multitenant architecture, a software application is designed to | |
9 | -virtually partition its data and configuration, and each client | |
10 | -organization works with a customized virtual application instance. | |
11 | - | |
12 | -Today this feature is available only for PostgreSQL databases. | |
13 | - | |
14 | -This document assumes that you have a new fully PostgresSQL default Noosfero | |
15 | -installation as explained at the INSTALL file. | |
16 | - | |
17 | -== Separated data | |
18 | - | |
19 | -The items below are separated for each hosted environment: | |
20 | - | |
21 | -* Uploaded files | |
22 | -* Database | |
23 | -* Solr index | |
24 | -* ActiveRecord#cache_key | |
25 | -* Feed updater | |
26 | -* Delayed Job Workers | |
27 | - | |
28 | -== Database configuration file | |
29 | - | |
30 | -The file config/database.yml must follow a structure in order to | |
31 | -achieve multitenancy support. In this example, we will set 3 | |
32 | -different environments: env1, env2 and env3. | |
33 | - | |
34 | -Each "hosted" environment must have an entry like this: | |
35 | - | |
36 | -env1_production: | |
37 | - adapter: postgresql | |
38 | - encoding: unicode | |
39 | - database: noosfero | |
40 | - schema_search_path: public | |
41 | - username: noosfero | |
42 | - domains: | |
43 | - - env1.com | |
44 | - - env1.org | |
45 | - | |
46 | -env2_production: | |
47 | - adapter: postgresql | |
48 | - encoding: unicode | |
49 | - database: noosfero | |
50 | - schema_search_path: env2 | |
51 | - username: noosfero | |
52 | - domains: | |
53 | - - env2.com | |
54 | - - env2.org | |
55 | - | |
56 | -env3_production: | |
57 | - adapter: postgresql | |
58 | - encoding: unicode | |
59 | - database: noosfero | |
60 | - schema_search_path: env3 | |
61 | - username: noosfero | |
62 | - domains: | |
63 | - - env3.com | |
64 | - - env3.net | |
65 | - | |
66 | -The "hosted" environments define, besides the schema_search_path, a | |
67 | -list of domains that, when accessed, tells which database the | |
68 | -application should use. Also, the environment name must end with | |
69 | -'_hosting', where 'hosting' is the name of the hosting environment. | |
70 | - | |
71 | -You must also tell the application which is the default environment. | |
72 | - | |
73 | -production: | |
74 | - env1_production | |
75 | - | |
76 | -On the example above there are only three hosted environments, but it | |
77 | -can be more than three. The schemas 'env2' and 'env3' must already | |
78 | -exist in the same database of the hosting environment. As postgres | |
79 | -user, you can create them typing: | |
80 | - | |
81 | -$ psql database_name -c "CREATE SCHEMA env2 AUTHORIZATION database_user" | |
82 | -$ psql database_name -c "CREATE SCHEMA env3 AUTHORIZATION database_user" | |
83 | - | |
84 | -Replace database_name and database_user above with your stuff. | |
85 | - | |
86 | -So, yet on this same example, when a user accesses http://env2.com or | |
87 | -http://env2.org, the Noosfero application running on production will | |
88 | -turn the database schema to 'env2'. When the access is from domains | |
89 | -http://env3.com or http://env3.net, the schema to be loaded will be | |
90 | -'env3'. | |
91 | - | |
92 | -There is an example of this file in config/database.yml.multitenancy | |
93 | - | |
94 | -== Preparing the database | |
95 | - | |
96 | -Now create the environments: | |
97 | - | |
98 | -$ RAILS_ENV=production rake multitenancy:create | |
99 | - | |
100 | -This command above will create the hosted environment files equal to | |
101 | -their hosting environment, here called 'production'. | |
102 | - | |
103 | -Run db:schema:load for each other environment: | |
104 | - | |
105 | -$ RAILS_ENV=env2_production rake db:schema:load | |
106 | -$ RAILS_ENV=env3_production rake db:schema:load | |
107 | - | |
108 | -Then run the migrations for the hosting environment, and it will | |
109 | -run for each of its hosted environments: | |
110 | - | |
111 | -RAILS_ENV=production rake db:migrate | |
112 | - | |
113 | -== Start Noosfero | |
114 | - | |
115 | -Run Noosfero init file as root: | |
116 | - | |
117 | -# invoke-rc.d noosfero start | |
118 | - | |
119 | -== Solr | |
120 | - | |
121 | -It's necessary to run only one instance of Solr. Don't worry | |
122 | -about this, Noosfero initializer had already done this for you. | |
123 | - | |
124 | -== Feed updater & Delayed job | |
125 | - | |
126 | -Just for your information, a daemon of feed-updater and delayed_job | |
127 | -must be running for each environment. Noosfero initializer do this, | |
128 | -relax. | |
129 | - | |
130 | -== Uploaded files | |
131 | - | |
132 | -When running with PostgreSQL, Noosfero uploads stuff to a folder named | |
133 | -the same way as the running schema. Inside the upload folder root, for | |
134 | -example, will be public/image_uploads/env2 and public/image_uploads/env3. | |
135 | - | |
136 | -== Adding multitenancy support to an existing Noosfero environment | |
137 | - | |
138 | -If you already have a Noosfero environment, you can turn it multitenant | |
139 | -by following the steps below in addition to the previous steps: | |
140 | - | |
141 | -1. Reindex your database | |
142 | - | |
143 | -Rebuild the Solr index by running the following task just | |
144 | -for your hosting environment, do this as noosfero user: | |
145 | - | |
146 | -$ RAILS_ENV=production rake multitenancy:reindex | |
147 | - | |
148 | -2. Move the uploaded files to the right place | |
149 | - | |
150 | -Add a directory with the same name as your schema name (by default this | |
151 | -name is 'public') in the root of each upload directory, for example, | |
152 | -public/articles/0000 will be moved to public/articles/public/0000. Do this | |
153 | -with the directories public/image_uploads, public/articles and public/thumbnails. | |
154 | - | |
155 | -3. Fix paths on activities | |
156 | - | |
157 | -The profile activities store static paths to the images, so it's necessary to fix | |
158 | -these paths. You can do this easily by setting an alias on your webserver. | |
159 | -On Apache you can add the three rules below, where 'public' is the schema name: | |
160 | - | |
161 | - RewriteRule ^/articles(.+) /articles/public$1 | |
162 | - RewriteRule ^/image_uploads(.+) /image_uploads/public$1 | |
163 | - RewriteRule ^/thumbnails(.+) /thumbnails/public$1 |
... | ... | @@ -0,0 +1,133 @@ |
1 | +Multitenancy support | |
2 | +==================== | |
3 | + | |
4 | +Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance. | |
5 | + | |
6 | +Today this feature is available only for PostgreSQL databases. | |
7 | + | |
8 | +This document assumes that you have a new fully PostgresSQL default Noosfero installation as explained at the `INSTALL.md` file. | |
9 | + | |
10 | +Separated data | |
11 | +-------------- | |
12 | + | |
13 | +The items below are separated for each hosted environment: | |
14 | + | |
15 | +* Uploaded files | |
16 | +* Database | |
17 | +* Solr index | |
18 | +* ActiveRecord#cache_key | |
19 | +* Feed updater | |
20 | +* Delayed Job Workers | |
21 | + | |
22 | +Database configuration file | |
23 | +--------------------------- | |
24 | + | |
25 | +The file config/database.yml must follow a structure in order to achieve multitenancy support. In this example, we will set 3 different environments: env1, env2 and env3. | |
26 | + | |
27 | +Each "hosted" environment must have an entry like this: | |
28 | + | |
29 | + env1_production: | |
30 | + adapter: postgresql | |
31 | + encoding: unicode | |
32 | + database: noosfero | |
33 | + schema_search_path: public | |
34 | + username: noosfero | |
35 | + domains: | |
36 | + - env1.com | |
37 | + - env1.org | |
38 | + | |
39 | + env2_production: | |
40 | + adapter: postgresql | |
41 | + encoding: unicode | |
42 | + database: noosfero | |
43 | + schema_search_path: env2 | |
44 | + username: noosfero | |
45 | + domains: | |
46 | + - env2.com | |
47 | + - env2.org | |
48 | + | |
49 | + env3_production: | |
50 | + adapter: postgresql | |
51 | + encoding: unicode | |
52 | + database: noosfero | |
53 | + schema_search_path: env3 | |
54 | + username: noosfero | |
55 | + domains: | |
56 | + - env3.com | |
57 | + - env3.net | |
58 | + | |
59 | +The "hosted" environments define, besides the `schema_search_path`, a list of domains that, when accessed, tells which database the application should use. Also, the environment name must end with "`_<hosting>`", where `<hosting>` is the name of the hosting environment. | |
60 | + | |
61 | +You must also tell the application which is the default environment. | |
62 | + | |
63 | + production: | |
64 | + env1_production | |
65 | + | |
66 | +On the example above there are only three hosted environments, but it can be more than three. The schemas `env2` and `env3` must already exist in the same database of the hosting environment. As postgres user, you can create them typing: | |
67 | + | |
68 | + $ psql database_name -c "CREATE SCHEMA env2 AUTHORIZATION database_user" | |
69 | + $ psql database_name -c "CREATE SCHEMA env3 AUTHORIZATION database_user" | |
70 | + | |
71 | +Replace `database_name` and `database_user` above with your stuff. | |
72 | + | |
73 | +So, yet on this same example, when a user accesses http://env2.com or http://env2.org, the Noosfero application running on production will turn the database schema to `env2`. When the access is from domains http://env3.com or http://env3.net, the schema to be loaded will be `env3`. | |
74 | + | |
75 | +There is an example of this file in `config/database.yml.multitenancy` | |
76 | + | |
77 | +Preparing the database | |
78 | +---------------------- | |
79 | + | |
80 | +Now create the environments: | |
81 | + | |
82 | + $ RAILS_ENV=production rake multitenancy:create | |
83 | + | |
84 | +This command above will create the hosted environment files equal to their hosting environment, here called 'production'. | |
85 | + | |
86 | +Run db:schema:load for each other environment: | |
87 | + | |
88 | + $ RAILS_ENV=env2_production rake db:schema:load | |
89 | + $ RAILS_ENV=env3_production rake db:schema:load | |
90 | + | |
91 | +Then run the migrations for the hosting environment, and it will run for each of its hosted environments: | |
92 | + | |
93 | + RAILS_ENV=production rake db:migrate | |
94 | + | |
95 | +Start Noosfero | |
96 | +-------------- | |
97 | + | |
98 | +Run Noosfero init file as root: | |
99 | + | |
100 | + # invoke-rc.d noosfero start | |
101 | + | |
102 | +Feed updater & Delayed job | |
103 | +-------------------------- | |
104 | + | |
105 | +Just for your information, a daemon of `feed-updater` and `delayed_job` must be running for each environment. Noosfero initializer do this, relax. | |
106 | + | |
107 | +Uploaded files | |
108 | +-------------- | |
109 | + | |
110 | +When running with PostgreSQL, Noosfero uploads stuff to a folder named the same way as the running schema. Inside the upload folder root, for example, will be `public/image_uploads/env2` and `public/image_uploads/env3`. | |
111 | + | |
112 | +Adding multitenancy support to an existing Noosfero environment | |
113 | +--------------------------------------------------------------- | |
114 | + | |
115 | +If you already have a Noosfero environment, you can turn it multitenant by following the steps below in addition to the previous steps: | |
116 | + | |
117 | +### 1. Reindex your database | |
118 | + | |
119 | +Rebuild the Solr index by running the following task just for your hosting environment, do this as noosfero user: | |
120 | + | |
121 | + $ RAILS_ENV=production rake multitenancy:reindex | |
122 | + | |
123 | +### 2. Move the uploaded files to the right place | |
124 | + | |
125 | +Add a directory with the same name as your schema name (by default this name is `public`) in the root of each upload directory, for example, `public/articles/0000` will be moved to `public/articles/public/0000`. Do this with the directories `public/image_uploads`, `public/articles` and `public/thumbnails`. | |
126 | + | |
127 | +### 3. Fix paths on activities | |
128 | + | |
129 | +The profile activities store static paths to the images, so it's necessary to fix these paths. You can do this easily by setting an alias on your webserver. On Apache you can add the three rules below, where 'public' is the schema name: | |
130 | + | |
131 | + RewriteRule ^/articles(.+) /articles/public$1 | |
132 | + RewriteRule ^/image_uploads(.+) /image_uploads/public$1 | |
133 | + RewriteRule ^/thumbnails(.+) /thumbnails/public$1 | ... | ... |
INSTALL.varnish
... | ... | @@ -1,71 +0,0 @@ |
1 | -= Setting up Varnish for your Noosfero site | |
2 | - | |
3 | -Varnish is a HTTP caching server, and using it together with Noosfero is highly | |
4 | -recommended. See http://www.varnish-cache.org/ for more information on Varnish. | |
5 | - | |
6 | -Varnish can be set up to use with Noosfero with the following steps: | |
7 | - | |
8 | -1) setup Noosfero with apache according to the INSTALL file. If you used the | |
9 | -Debian package to install noosfero, you don't need to do anything about this. | |
10 | - | |
11 | -2) install Varnish | |
12 | - | |
13 | - # apt-get install varnish | |
14 | - | |
15 | -Install the RPAF apache module (or skip this step if not using apache): | |
16 | - | |
17 | - # apt-get install libapache2-mod-rpaf | |
18 | - | |
19 | -3) Change Apache to listen on port 8080 instead of 80 | |
20 | - | |
21 | -3a) Edit /etc/apache2/ports.conf, and: | |
22 | - | |
23 | - * change 'NameVirtualHost *:80' to 'NameVirtualHost *:8080' | |
24 | - * change 'Listen 80' to 'Listen 127.0.0.1:8080' | |
25 | - | |
26 | -3b) Edit /etc/apache2/sites-enabled/*, and change '<VirtualHost *:80>' to | |
27 | -'<VirtualHost *:8080>' | |
28 | - | |
29 | -3c) Restart apache | |
30 | - | |
31 | - # invoke-rc.d apache2 restart | |
32 | - | |
33 | -4) Varnish configuration | |
34 | - | |
35 | -4a) Edit /etc/default/varnish | |
36 | - | |
37 | - * change the line that says "START=no" to say "START=yes" | |
38 | - * change '-a :6081' to '-a :80' | |
39 | - | |
40 | -4b) Edit /etc/varnish/default.vcl and add the following lines at the end: | |
41 | - | |
42 | - include "/etc/noosfero/varnish-noosfero.vcl"; | |
43 | - include "/etc/noosfero/varnish-accept-language.vcl"; | |
44 | - | |
45 | -On manual installations, change "/etc/noosfero/*" to | |
46 | -"{Rails.root}/etc/noosfero/*" | |
47 | - | |
48 | -NOTE: it is very important that the *.vcl files are included in that order, | |
49 | -i.e. *first* include "varnish-noosfero.vcl", and *after* | |
50 | -"noosfero-accept-language.cvl". | |
51 | - | |
52 | -4c) Restart Varnish | |
53 | - | |
54 | - # invoke-rc.d varnish restart | |
55 | - | |
56 | -5) Enable varnish logging: | |
57 | - | |
58 | -5a) Edit /etc/default/varnishncsa and uncomment the line that contains: | |
59 | - | |
60 | -VARNISHNCSA_ENABLED=1 | |
61 | - | |
62 | -The varnish log will be written to /var/log/varnish/varnishncsa.log in an | |
63 | -apache-compatible format. You should change your statistics generation software | |
64 | -(e.g. awstats) to use that instead of apache logs. | |
65 | - | |
66 | -5b) Restart Varnish Logging service | |
67 | - | |
68 | - # invoke-rc.d varnishncsa restart | |
69 | - | |
70 | -Thanks to Cosimo Streppone for varnish-accept-language. See | |
71 | -http://github.com/cosimo/varnish-accept-language for more information. |
... | ... | @@ -0,0 +1,63 @@ |
1 | +Setting up Varnish for your Noosfero site | |
2 | +========================================= | |
3 | + | |
4 | +Varnish is a HTTP caching server, and using it together with Noosfero is highly recommended. See http://www.varnish-cache.org/ for more information on Varnish. | |
5 | + | |
6 | +Varnish can be set up to use with Noosfero with the following steps: | |
7 | + | |
8 | +1) setup Noosfero with apache according to the `INSTALL.md` file. If you used the Debian package to install noosfero, you don't need to do anything about this. | |
9 | + | |
10 | +2) install Varnish | |
11 | + | |
12 | + # apt-get install varnish | |
13 | + | |
14 | +Install the RPAF apache module (or skip this step if not using apache): | |
15 | + | |
16 | + # apt-get install libapache2-mod-rpaf | |
17 | + | |
18 | +3) Change Apache to listen on port `8080` instead of `80` | |
19 | + | |
20 | +3a) Edit `/etc/apache2/ports.conf`, and: | |
21 | + | |
22 | + * change `NameVirtualHost *:80` to `NameVirtualHost *:8080` | |
23 | + * change `Listen 80` to `Listen 127.0.0.1:8080` | |
24 | + | |
25 | +3b) Edit `/etc/apache2/sites-enabled/*`, and change `<VirtualHost *:80>` to `<VirtualHost *:8080>` | |
26 | + | |
27 | +3c) Restart apache | |
28 | + | |
29 | + # invoke-rc.d apache2 restart | |
30 | + | |
31 | +4) Varnish configuration | |
32 | + | |
33 | +4a) Edit `/etc/default/varnish` | |
34 | + | |
35 | + * change the line that says `START=no` to say `START=yes` | |
36 | + * change `-a :6081` to `-a :80` | |
37 | + | |
38 | +4b) Edit `/etc/varnish/default.vcl` and add the following lines at the end: | |
39 | + | |
40 | + include "/etc/noosfero/varnish-noosfero.vcl"; | |
41 | + include "/etc/noosfero/varnish-accept-language.vcl"; | |
42 | + | |
43 | +On manual installations, change `/etc/noosfero/*` to `{Rails.root}/etc/noosfero/*` | |
44 | + | |
45 | +**NOTE**: it is very important that the `*.vcl` files are included in that order, i.e. *first* include `varnish-noosfero.vcl`, and *after* `noosfero-accept-language.cvl`. | |
46 | + | |
47 | +4c) Restart Varnish | |
48 | + | |
49 | + # invoke-rc.d varnish restart | |
50 | + | |
51 | +5) Enable varnish logging: | |
52 | + | |
53 | +5a) Edit `/etc/default/varnishncsa` and uncomment the line that contains: | |
54 | + | |
55 | + VARNISHNCSA_ENABLED=1 | |
56 | + | |
57 | +The varnish log will be written to `/var/log/varnish/varnishncsa.log` in an apache-compatible format. You should change your statistics generation software (e.g. awstats) to use that instead of apache logs. | |
58 | + | |
59 | +5b) Restart Varnish Logging service | |
60 | + | |
61 | + # invoke-rc.d varnishncsa restart | |
62 | + | |
63 | +Thanks to Cosimo Streppone for varnish-accept-language. See http://github.com/cosimo/varnish-accept-language for more information. | ... | ... |
README
... | ... | @@ -1,33 +0,0 @@ |
1 | -Noosfero - a web-based social platform | |
2 | -====================================== | |
3 | - | |
4 | -http://www.noosfero.org/ | |
5 | - | |
6 | -Documentation | |
7 | -------------- | |
8 | - | |
9 | -The following documentation is available: | |
10 | - | |
11 | -File Purpose | |
12 | -~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
13 | -INSTALL install instructions | |
14 | -INSTALL.awstats install instructions - access statistics service | |
15 | -INSTALL.chat install instructions - chat service | |
16 | -INSTALL.email install instructions - email service | |
17 | -INSTALL.multitenancy install instructions - multiple sites | |
18 | -INSTALL.varnish install instructions - varnish HTTP caching (recommended) | |
19 | -HACKING development instruction | |
20 | -RELEASING instructions for doing releases | |
21 | -doc/noosfero/* user documentation (available through the app itself) | |
22 | - | |
23 | - | |
24 | -Authors and copyright | |
25 | ---------------------- | |
26 | - | |
27 | -Authorship and copyright information is available in the files listed below. | |
28 | - | |
29 | -File Purpose | |
30 | -~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
31 | -AUTHORS list of authors (updated at each release) | |
32 | -COPYRIGHT Copyright statement for the project | |
33 | -COPYING Full text of the project license |
... | ... | @@ -0,0 +1,33 @@ |
1 | +Noosfero - a web-based social platform | |
2 | +====================================== | |
3 | + | |
4 | +http://www.noosfero.org | |
5 | + | |
6 | +Documentation | |
7 | +------------- | |
8 | + | |
9 | +The following documentation is available: | |
10 | + | |
11 | + File Purpose | |
12 | + ----------------------- -------------------------------------------------------- | |
13 | + INSTALL.md install instructions | |
14 | + INSTALL.awstats.md install instructions - access statistics service | |
15 | + INSTALL.chat.md install instructions - chat service | |
16 | + INSTALL.email.md install instructions - email service | |
17 | + INSTALL.multitenancy.md install instructions - multiple sites | |
18 | + INSTALL.varnish.md install instructions - varnish HTTP caching (recommended) | |
19 | + HACKING.md development instruction | |
20 | + RELEASING.md instructions for doing releases | |
21 | + doc/noosfero/* user documentation (available through the app itself) | |
22 | + | |
23 | + | |
24 | +Authors and copyright | |
25 | +--------------------- | |
26 | + | |
27 | +Authorship and copyright information is available in the files listed below. | |
28 | + | |
29 | + File Purpose | |
30 | + -------------------- ----------------------------------------- | |
31 | + AUTHORS.md list of authors (updated at each release) | |
32 | + COPYRIGHT Copyright statement for the project | |
33 | + COPYING Full text of the project license | ... | ... |
README.rails
... | ... | @@ -1,183 +0,0 @@ |
1 | -== Welcome to Rails | |
2 | - | |
3 | -Rails is a web-application and persistence framework that includes everything | |
4 | -needed to create database-backed web-applications according to the | |
5 | -Model-View-Control pattern of separation. This pattern splits the view (also | |
6 | -called the presentation) into "dumb" templates that are primarily responsible | |
7 | -for inserting pre-built data in between HTML tags. The model contains the | |
8 | -"smart" domain objects (such as Account, Product, Person, Post) that holds all | |
9 | -the business logic and knows how to persist themselves to a database. The | |
10 | -controller handles the incoming requests (such as Save New Account, Update | |
11 | -Product, Show Post) by manipulating the model and directing data to the view. | |
12 | - | |
13 | -In Rails, the model is handled by what's called an object-relational mapping | |
14 | -layer entitled Active Record. This layer allows you to present the data from | |
15 | -database rows as objects and embellish these data objects with business logic | |
16 | -methods. You can read more about Active Record in | |
17 | -link:files/vendor/rails/activerecord/README.html. | |
18 | - | |
19 | -The controller and view are handled by the Action Pack, which handles both | |
20 | -layers by its two parts: Action View and Action Controller. These two layers | |
21 | -are bundled in a single package due to their heavy interdependence. This is | |
22 | -unlike the relationship between the Active Record and Action Pack that is much | |
23 | -more separate. Each of these packages can be used independently outside of | |
24 | -Rails. You can read more about Action Pack in | |
25 | -link:files/vendor/rails/actionpack/README.html. | |
26 | - | |
27 | - | |
28 | -== Getting started | |
29 | - | |
30 | -1. Start the web server: <tt>ruby script/server</tt> (run with --help for options) | |
31 | -2. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!" | |
32 | -3. Follow the guidelines to start developing your application | |
33 | - | |
34 | - | |
35 | -== Web servers | |
36 | - | |
37 | -Rails uses the built-in web server in Ruby called WEBrick by default, so you don't | |
38 | -have to install or configure anything to play around. | |
39 | - | |
40 | -If you have lighttpd installed, though, it'll be used instead when running script/server. | |
41 | -It's considerably faster than WEBrick and suited for production use, but requires additional | |
42 | -installation and currently only works well on OS X/Unix (Windows users are encouraged | |
43 | -to start with WEBrick). We recommend version 1.4.11 and higher. You can download it from | |
44 | -http://www.lighttpd.net. | |
45 | - | |
46 | -If you want something that's halfway between WEBrick and lighttpd, we heartily recommend | |
47 | -Mongrel. It's a Ruby-based web server with a C-component (so it requires compilation) that | |
48 | -also works very well with Windows. See more at http://mongrel.rubyforge.org/. | |
49 | - | |
50 | -But of course its also possible to run Rails with the premiere open source web server Apache. | |
51 | -To get decent performance, though, you'll need to install FastCGI. For Apache 1.3, you want | |
52 | -to use mod_fastcgi. For Apache 2.0+, you want to use mod_fcgid. | |
53 | - | |
54 | -See http://wiki.rubyonrails.com/rails/pages/FastCGI for more information on FastCGI. | |
55 | - | |
56 | -== Example for Apache conf | |
57 | - | |
58 | - <VirtualHost *:80> | |
59 | - ServerName rails | |
60 | - DocumentRoot /path/application/public/ | |
61 | - ErrorLog /path/application/log/server.log | |
62 | - | |
63 | - <Directory /path/application/public/> | |
64 | - Options ExecCGI FollowSymLinks | |
65 | - AllowOverride all | |
66 | - Allow from all | |
67 | - Order allow,deny | |
68 | - </Directory> | |
69 | - </VirtualHost> | |
70 | - | |
71 | -NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI | |
72 | -should be on and ".cgi" should respond. All requests from 127.0.0.1 go | |
73 | -through CGI, so no Apache restart is necessary for changes. All other requests | |
74 | -go through FCGI (or mod_ruby), which requires a restart to show changes. | |
75 | - | |
76 | - | |
77 | -== Debugging Rails | |
78 | - | |
79 | -Have "tail -f" commands running on both the server.log, production.log, and | |
80 | -test.log files. Rails will automatically display debugging and runtime | |
81 | -information to these files. Debugging info will also be shown in the browser | |
82 | -on requests from 127.0.0.1. | |
83 | - | |
84 | - | |
85 | -== Breakpoints | |
86 | - | |
87 | -Breakpoint support is available through the script/breakpointer client. This | |
88 | -means that you can break out of execution at any point in the code, investigate | |
89 | -and change the model, AND then resume execution! Example: | |
90 | - | |
91 | - class WeblogController < ActionController::Base | |
92 | - def index | |
93 | - @posts = Post.find_all | |
94 | - breakpoint "Breaking out from the list" | |
95 | - end | |
96 | - end | |
97 | - | |
98 | -So the controller will accept the action, run the first line, then present you | |
99 | -with a IRB prompt in the breakpointer window. Here you can do things like: | |
100 | - | |
101 | -Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' | |
102 | - | |
103 | - >> @posts.inspect | |
104 | - => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, | |
105 | - #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" | |
106 | - >> @posts.first.title = "hello from a breakpoint" | |
107 | - => "hello from a breakpoint" | |
108 | - | |
109 | -...and even better is that you can examine how your runtime objects actually work: | |
110 | - | |
111 | - >> f = @posts.first | |
112 | - => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | |
113 | - >> f. | |
114 | - Display all 152 possibilities? (y or n) | |
115 | - | |
116 | -Finally, when you're ready to resume execution, you press CTRL-D | |
117 | - | |
118 | - | |
119 | -== Console | |
120 | - | |
121 | -You can interact with the domain model by starting the console through script/console. | |
122 | -Here you'll have all parts of the application configured, just like it is when the | |
123 | -application is running. You can inspect domain models, change values, and save to the | |
124 | -database. Starting the script without arguments will launch it in the development environment. | |
125 | -Passing an argument will specify a different environment, like <tt>script/console production</tt>. | |
126 | - | |
127 | -To reload your controllers and models after launching the console run <tt>reload!</tt> | |
128 | - | |
129 | - | |
130 | - | |
131 | -== Description of contents | |
132 | - | |
133 | -app | |
134 | - Holds all the code that's specific to this particular application. | |
135 | - | |
136 | -app/controllers | |
137 | - Holds controllers that should be named like weblog_controller.rb for | |
138 | - automated URL mapping. All controllers should descend from | |
139 | - ActionController::Base. | |
140 | - | |
141 | -app/models | |
142 | - Holds models that should be named like post.rb. | |
143 | - Most models will descend from ActiveRecord::Base. | |
144 | - | |
145 | -app/views | |
146 | - Holds the template files for the view that should be named like | |
147 | - weblog/index.rhtml for the WeblogController#index action. All views use eRuby | |
148 | - syntax. This directory can also be used to keep stylesheets, images, and so on | |
149 | - that can be symlinked to public. | |
150 | - | |
151 | -app/helpers | |
152 | - Holds view helpers that should be named like weblog_helper.rb. | |
153 | - | |
154 | -app/apis | |
155 | - Holds API classes for web services. | |
156 | - | |
157 | -config | |
158 | - Configuration files for the Rails environment, the routing map, the database, and other dependencies. | |
159 | - | |
160 | -components | |
161 | - Self-contained mini-applications that can bundle together controllers, models, and views. | |
162 | - | |
163 | -db | |
164 | - Contains the database schema in schema.rb. db/migrate contains all | |
165 | - the sequence of Migrations for your schema. | |
166 | - | |
167 | -lib | |
168 | - Application specific libraries. Basically, any kind of custom code that doesn't | |
169 | - belong under controllers, models, or helpers. This directory is in the load path. | |
170 | - | |
171 | -public | |
172 | - The directory available for the web server. Contains subdirectories for images, stylesheets, | |
173 | - and javascripts. Also contains the dispatchers and the default HTML files. | |
174 | - | |
175 | -script | |
176 | - Helper scripts for automation and generation. | |
177 | - | |
178 | -test | |
179 | - Unit and functional tests along with fixtures. | |
180 | - | |
181 | -vendor | |
182 | - External libraries that the application depends on. Also includes the plugins subdirectory. | |
183 | - This directory is in the load path. |
... | ... | @@ -0,0 +1,138 @@ |
1 | +Welcome to Rails | |
2 | +================ | |
3 | + | |
4 | +Rails is a web-application and persistence framework that includes everything needed to create database-backed web-applications according to the Model-View-Control pattern of separation. This pattern splits the view (also called the presentation) into "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view. | |
5 | + | |
6 | +In Rails, the model is handled by what's called an object-relational mapping layer entitled Active Record. This layer allows you to present the data from database rows as objects and embellish these data objects with business logic methods. You can read more about Active Record in `.../rails/activerecord/README.html`. | |
7 | + | |
8 | +The controller and view are handled by the Action Pack, which handles both layers by its two parts: Action View and Action Controller. These two layers are bundled in a single package due to their heavy interdependence. This is unlike the relationship between the Active Record and Action Pack that is much more separate. Each of these packages can be used independently outside of Rails. You can read more about Action Pack in `.../rails/actionpack/README.html`. | |
9 | + | |
10 | + | |
11 | +Getting started | |
12 | +--------------- | |
13 | + | |
14 | +1. Start the web server: `ruby script/server` (run with `--help` for options) | |
15 | +2. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!" | |
16 | +3. Follow the guidelines to start developing your application | |
17 | + | |
18 | +Web servers | |
19 | +----------- | |
20 | + | |
21 | +Rails uses the built-in web server in Ruby called WEBrick by default, so you don't have to install or configure anything to play around. | |
22 | + | |
23 | +If you have lighttpd installed, though, it'll be used instead when running script/server. It's considerably faster than WEBrick and suited for production use, but requires additional installation and currently only works well on OS X/Unix (Windows users are encouraged to start with WEBrick). We recommend version 1.4.11 and higher. You can download it from http://www.lighttpd.net. | |
24 | + | |
25 | +If you want something that's halfway between WEBrick and lighttpd, we heartily recommend Mongrel. It's a Ruby-based web server with a C-component (so it requires compilation) that also works very well with Windows. See more at http://mongrel.rubyforge.org/. | |
26 | + | |
27 | +But of course its also possible to run Rails with the premiere open source web server Apache. To get decent performance, though, you'll need to install FastCGI. For Apache 1.3, you want to use mod_fastcgi. For Apache 2.0+, you want to use mod_fcgid. | |
28 | + | |
29 | +See http://wiki.rubyonrails.com/rails/pages/FastCGI for more information on FastCGI. | |
30 | + | |
31 | +Example for Apache conf | |
32 | +----------------------- | |
33 | + | |
34 | + <VirtualHost *:80> | |
35 | + ServerName rails | |
36 | + DocumentRoot /path/application/public/ | |
37 | + ErrorLog /path/application/log/server.log | |
38 | + | |
39 | + <Directory /path/application/public/> | |
40 | + Options ExecCGI FollowSymLinks | |
41 | + AllowOverride all | |
42 | + Allow from all | |
43 | + Order allow,deny | |
44 | + </Directory> | |
45 | + </VirtualHost> | |
46 | + | |
47 | +NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI should be on and ".cgi" should respond. All requests from 127.0.0.1 go through CGI, so no Apache restart is necessary for changes. All other requests go through FCGI (or mod_ruby), which requires a restart to show changes. | |
48 | + | |
49 | +Debugging Rails | |
50 | +--------------- | |
51 | + | |
52 | +Have "tail -f" commands running on both the server.log, production.log, and test.log files. Rails will automatically display debugging and runtime information to these files. Debugging info will also be shown in the browser on requests from 127.0.0.1. | |
53 | + | |
54 | +Breakpoints | |
55 | +----------- | |
56 | + | |
57 | +Breakpoint support is available through the script/breakpointer client. This means that you can break out of execution at any point in the code, investigate and change the model, AND then resume execution! Example: | |
58 | + | |
59 | + class WeblogController < ActionController::Base | |
60 | + def index | |
61 | + @posts = Post.find_all | |
62 | + breakpoint "Breaking out from the list" | |
63 | + end | |
64 | + end | |
65 | + | |
66 | +So the controller will accept the action, run the first line, then present you with a IRB prompt in the breakpointer window. Here you can do things like: | |
67 | + | |
68 | +Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' | |
69 | + | |
70 | + >> @posts.inspect | |
71 | + => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, | |
72 | + #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" | |
73 | + >> @posts.first.title = "hello from a breakpoint" | |
74 | + => "hello from a breakpoint" | |
75 | + | |
76 | +...and even better is that you can examine how your runtime objects actually work: | |
77 | + | |
78 | + >> f = @posts.first | |
79 | + => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> | |
80 | + >> f. | |
81 | + Display all 152 possibilities? (y or n) | |
82 | + | |
83 | +Finally, when you're ready to resume execution, you press CTRL-D | |
84 | + | |
85 | +Console | |
86 | +------- | |
87 | + | |
88 | +You can interact with the domain model by starting the console through script/console. Here you'll have all parts of the application configured, just like it is when the application is running. You can inspect domain models, change values, and save to the database. Starting the script without arguments will launch it in the development environment. Passing an argument will specify a different environment, like `script/console production`. | |
89 | + | |
90 | +To reload your controllers and models after launching the console run `reload!` | |
91 | + | |
92 | +Description of contents | |
93 | +----------------------- | |
94 | + | |
95 | +* `app` | |
96 | + Holds all the code that's specific to this particular application. | |
97 | + | |
98 | +* `app/controllers` | |
99 | + Holds controllers that should be named like weblog_controller.rb for automated URL mapping. All controllers should descend from `ActionController::Base`. | |
100 | + | |
101 | +* `app/models` | |
102 | + Holds models that should be named like post.rb. Most models will descend from `ActiveRecord::Base`. | |
103 | + | |
104 | +* `app/views` | |
105 | + Holds the template files for the view that should be named like `weblog/index.rhtml` for the `WeblogController#index` action. All views use eRuby syntax. This directory can also be used to keep stylesheets, images, and so on that can be symlinked to public. | |
106 | + | |
107 | +* `app/helpers` | |
108 | + Holds view helpers that should be named like `weblog_helper.rb`. | |
109 | + | |
110 | +* `app/apis` | |
111 | + Holds API classes for web services. | |
112 | + | |
113 | +* `config` | |
114 | + Configuration files for the Rails environment, the routing map, the database, and other dependencies. | |
115 | + | |
116 | +* `components` | |
117 | + Self-contained mini-applications that can bundle together controllers, models, and views. | |
118 | + | |
119 | +* `db` | |
120 | + Contains the database schema in `schema.rb`. | |
121 | + | |
122 | +* `db/migrate` | |
123 | + Contains all the sequence of Migrations for your schema. | |
124 | + | |
125 | +* `lib` | |
126 | + Application specific libraries. Basically, any kind of custom code that doesn't belong under controllers, models, or helpers. This directory is in the load path. | |
127 | + | |
128 | +* `public` | |
129 | + The directory available for the web server. Contains subdirectories for images, stylesheets, and javascripts. Also contains the dispatchers and the default HTML files. | |
130 | + | |
131 | +* `script` | |
132 | + Helper scripts for automation and generation. | |
133 | + | |
134 | +* `test` | |
135 | + Unit and functional tests along with fixtures. | |
136 | + | |
137 | +* `vendor` | |
138 | + External libraries that the application depends on. Also includes the plugins subdirectory. This directory is in the load path. | ... | ... |
RELEASING
... | ... | @@ -1,40 +0,0 @@ |
1 | -= Noosfero release tasks | |
2 | - | |
3 | -This file documents release-related activities. | |
4 | - | |
5 | -== Working with translations | |
6 | - | |
7 | -* Update translation files: <tt>rake updatepo</tt>. Then <tt>git commit</tt> them. | |
8 | -* Send the PO files to the translators. | |
9 | -* Get the PO files back from translators, put in po/ under the correct language | |
10 | - name (e.,g. po/pt_BR/) and <tt>git commit</tt>. | |
11 | -* test translations: <tt>rake makemo</tt> and browse the application on the web. | |
12 | - | |
13 | -== Releasing noosfero | |
14 | - | |
15 | -Considering you are on a Debian GNU/Linux or Debian-based system | |
16 | - # apt-get install devscripts debhelper | |
17 | - | |
18 | -To prepare a release of noosfero, you must follow the steps below: | |
19 | - | |
20 | -* Finish all requirements and bugs assigned to the to-be-released version | |
21 | -* Make sure all tests pass | |
22 | -* Write release notes at the version's wiki topic | |
23 | -* Generate packages with <tt>rake noosfero:release[(stable|test)]</tt>. This task will: | |
24 | - * Update the version in lib/noosfero.rb and debian/changelog. | |
25 | - * Create the tarbal and the deb pkg under pkg/ directory. | |
26 | - * Create a git tag and push it. | |
27 | - * Upload the pkg to the configured repository (if configured) on ~/.dput.cf. | |
28 | -* Test that the tarball and deb package are ok | |
29 | -* Go to the version's wiki topic and edit it to reflect the new reality | |
30 | -* Edit the topic WebPreferences and update DEBIAN_REPOSITORY_TOPICS setting | |
31 | -* Attach the generated packages to that topic. Before attaching calculate the | |
32 | - sha1 of the package (with sha1sum and paste the SHA1 hash as comment in the | |
33 | - attachment form) | |
34 | -* Download the attached and verify the MD5 hash | |
35 | -* Update an eventual demonstration version that you run. | |
36 | -* Write an announcement e-mail to the relevant mailing lists pointing to the | |
37 | - release notes, and maybe to the demonstration version. | |
38 | - | |
39 | -If you had any problem during these steps, you can do <tt>rake clobber_package</tt> to | |
40 | -completely delete the generated packages and start the process again. |
... | ... | @@ -0,0 +1,39 @@ |
1 | +Noosfero release tasks | |
2 | +====================== | |
3 | + | |
4 | +This file documents release-related activities. | |
5 | + | |
6 | +Working with translations | |
7 | +------------------------- | |
8 | + | |
9 | +* Update translation files: `rake updatepo`. Then `git commit` them. | |
10 | +* Send the PO files to the translators. | |
11 | +* Get the PO files back from translators, put in `po/` under the correct language name (e.,g. `po/pt_BR/`) and `git commit`. | |
12 | +* test translations: `rake makemo` and browse the application on the web. | |
13 | + | |
14 | +Releasing noosfero | |
15 | +------------------ | |
16 | + | |
17 | +Considering you are on a Debian GNU/Linux or Debian-based system | |
18 | + | |
19 | + # apt-get install devscripts debhelper | |
20 | + | |
21 | +To prepare a release of noosfero, you must follow the steps below: | |
22 | + | |
23 | +* Finish all requirements and bugs assigned to the to-be-released version | |
24 | +* Make sure all tests pass | |
25 | +* Write release notes at the version's wiki topic | |
26 | +* Generate packages with `rake noosfero:release[(stable|test)]`. This task will: | |
27 | + * Update the version in lib/noosfero.rb and debian/changelog. | |
28 | + * Create the tarbal and the deb pkg under pkg/ directory. | |
29 | + * Create a git tag and push it. | |
30 | + * Upload the pkg to the configured repository (if configured) on ~/.dput.cf. | |
31 | +* Test that the tarball and deb package are ok | |
32 | +* Go to the version's wiki topic and edit it to reflect the new reality | |
33 | +* Edit the topic WebPreferences and update DEBIAN_REPOSITORY_TOPICS setting | |
34 | +* Attach the generated packages to that topic. Before attaching calculate the sha1 of the package (with sha1sum and paste the SHA1 hash as comment in the attachment form) | |
35 | +* Download the attached and verify the MD5 hash | |
36 | +* Update an eventual demonstration version that you run. | |
37 | +* Write an announcement e-mail to the relevant mailing lists pointing to the release notes, and maybe to the demonstration version. | |
38 | + | |
39 | +If you had any problem during these steps, you can do `rake clobber_package` to completely delete the generated packages and start the process again. | ... | ... |
plugins/anti_spam/README
... | ... | @@ -1,33 +0,0 @@ |
1 | -README - AntiSpam (AntiSpam Plugin) | |
2 | -======================================= | |
3 | - | |
4 | -Plugin that checks comments against a spam checking service compatible | |
5 | -with the Akismet API. | |
6 | - | |
7 | - | |
8 | -Enable Plugin | |
9 | -------------- | |
10 | - | |
11 | -Also, you need to enable AntiSpam Plugin at your Noosfero: | |
12 | - | |
13 | -cd <your_noosfero_dir> | |
14 | -./script/noosfero-plugins enable anti_spam | |
15 | - | |
16 | - | |
17 | -Activate Plugin | |
18 | -------------- | |
19 | - | |
20 | -As a Noosfero administrator user, go to administrator panel: | |
21 | - | |
22 | -- Click on "Plugins" option | |
23 | -- Click on "AntiSpam Plugin" check-box | |
24 | - | |
25 | -Configure Plugin | |
26 | ----------------- | |
27 | - | |
28 | -As a Noosfero administrator user, go to administrator panel: | |
29 | - | |
30 | -- Click on "Configuration" below the "AntiSpam Plugin" | |
31 | -- Fill in the "API key" field with the key generated after signing up to | |
32 | - akismet: https://akismet.com/signup/ | |
33 | -- Save your changes |
... | ... | @@ -0,0 +1,32 @@ |
1 | +README - AntiSpam (AntiSpam Plugin) | |
2 | +=================================== | |
3 | + | |
4 | +Plugin that checks comments against a spam checking service compatible with the Akismet API. | |
5 | + | |
6 | + | |
7 | +Enable Plugin | |
8 | +------------- | |
9 | + | |
10 | +Also, you need to enable AntiSpam Plugin at your Noosfero: | |
11 | + | |
12 | + cd <your_noosfero_dir> | |
13 | + ./script/noosfero-plugins enable anti_spam | |
14 | + | |
15 | + | |
16 | +Activate Plugin | |
17 | +--------------- | |
18 | + | |
19 | +As a Noosfero administrator user, go to administrator panel: | |
20 | + | |
21 | +- Click on "Plugins" option | |
22 | +- Click on "AntiSpam Plugin" check-box | |
23 | + | |
24 | +Configure Plugin | |
25 | +---------------- | |
26 | + | |
27 | +As a Noosfero administrator user, go to administrator panel: | |
28 | + | |
29 | +- Click on "Configuration" below the "AntiSpam Plugin" | |
30 | +- Fill in the "API key" field with the key generated after signing up to | |
31 | + akismet: https://akismet.com/signup/ | |
32 | +- Save your changes | ... | ... |
plugins/display_content/README
... | ... | @@ -1,70 +0,0 @@ |
1 | -README - DisplayContent (DisplayContent Plugin) | |
2 | -================================ | |
3 | - | |
4 | -DisplayContent is a plugin to allow the user adds a block where you could choose any of your content for display it. | |
5 | - | |
6 | -The DisplayContent block will be available for all layout columns of communities, peole, enterprises and environments. | |
7 | - | |
8 | -All the articles choosen are displayed as a list with a link for the title and the lead content. | |
9 | - | |
10 | -If a Blog or a Folder is choosen the block will display all articles inside the blog or the folder. | |
11 | - | |
12 | -Galleries are not displayed in this block. | |
13 | - | |
14 | -INSTALL | |
15 | -======= | |
16 | - | |
17 | -Enable Plugin | |
18 | -------------- | |
19 | - | |
20 | -Also, you need to enable DisplayContent Plugin at you Noosfero: | |
21 | - | |
22 | -cd <your_noosfero_dir> | |
23 | -./script/noosfero-plugins enable display_content | |
24 | - | |
25 | -Active Plugin | |
26 | -------------- | |
27 | - | |
28 | -As a Noosfero administrator user, go to administrator panel: | |
29 | - | |
30 | -- Click on "Enable/disable plugins" option | |
31 | -- Click on "Display Content Plugin" check-box | |
32 | - | |
33 | -DEVELOPMENT | |
34 | -=========== | |
35 | - | |
36 | -Noosfero uses jQuery 1.5.1 and the jsTree doesn't works fine with this jQuery version. | |
37 | -Until Noosfero upgrade its JQuery version to a newer one is necessary to load jQuery 1.8.3 inside plugin and apply some changes in jsTree to avoid jQuery conflit. | |
38 | - | |
39 | -Get the Display Content (Noosfero with Display Content Plugin) development repository: | |
40 | - | |
41 | -$ git clone https://gitorious.org/+noosfero/noosfero/display_content | |
42 | - | |
43 | -Running DisplayContent tests | |
44 | --------------------- | |
45 | - | |
46 | -$ rake test:noosfero_plugins:display_content | |
47 | - | |
48 | - | |
49 | -Get Involved | |
50 | -============ | |
51 | - | |
52 | -If you found any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
53 | - | |
54 | -LICENSE | |
55 | -======= | |
56 | - | |
57 | -Copyright (c) The Author developers. | |
58 | - | |
59 | -See Noosfero license. | |
60 | - | |
61 | - | |
62 | -AUTHORS | |
63 | -======= | |
64 | - | |
65 | - Leandro Nunes dos Santos (leandronunes at gmail.com) | |
66 | - | |
67 | -ACKNOWLEDGMENTS | |
68 | -=============== | |
69 | - | |
70 | -The author have been supported by Serpro |
... | ... | @@ -0,0 +1,70 @@ |
1 | +README - DisplayContent (DisplayContent Plugin) | |
2 | +================================ | |
3 | + | |
4 | +DisplayContent is a plugin to allow the user adds a block where you could choose any of your content for display it. | |
5 | + | |
6 | +The DisplayContent block will be available for all layout columns of communities, peole, enterprises and environments. | |
7 | + | |
8 | +All the articles choosen are displayed as a list with a link for the title and the lead content. | |
9 | + | |
10 | +If a Blog or a Folder is choosen the block will display all articles inside the blog or the folder. | |
11 | + | |
12 | +Galleries are not displayed in this block. | |
13 | + | |
14 | +INSTALL | |
15 | +======= | |
16 | + | |
17 | +Enable Plugin | |
18 | +------------- | |
19 | + | |
20 | +Also, you need to enable DisplayContent Plugin at you Noosfero: | |
21 | + | |
22 | +cd <your_noosfero_dir> | |
23 | +./script/noosfero-plugins enable display_content | |
24 | + | |
25 | +Active Plugin | |
26 | +------------- | |
27 | + | |
28 | +As a Noosfero administrator user, go to administrator panel: | |
29 | + | |
30 | +- Click on "Enable/disable plugins" option | |
31 | +- Click on "Display Content Plugin" check-box | |
32 | + | |
33 | +DEVELOPMENT | |
34 | +=========== | |
35 | + | |
36 | +Noosfero uses jQuery 1.5.1 and the jsTree doesn't works fine with this jQuery version. | |
37 | +Until Noosfero upgrade its JQuery version to a newer one is necessary to load jQuery 1.8.3 inside plugin and apply some changes in jsTree to avoid jQuery conflit. | |
38 | + | |
39 | +Get the Display Content (Noosfero with Display Content Plugin) development repository: | |
40 | + | |
41 | +$ git clone https://gitorious.org/+noosfero/noosfero/display_content | |
42 | + | |
43 | +Running DisplayContent tests | |
44 | +-------------------- | |
45 | + | |
46 | +$ rake test:noosfero_plugins:display_content | |
47 | + | |
48 | + | |
49 | +Get Involved | |
50 | +============ | |
51 | + | |
52 | +If you found any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
53 | + | |
54 | +LICENSE | |
55 | +======= | |
56 | + | |
57 | +Copyright (c) The Author developers. | |
58 | + | |
59 | +See Noosfero license. | |
60 | + | |
61 | + | |
62 | +AUTHORS | |
63 | +======= | |
64 | + | |
65 | + Leandro Nunes dos Santos (leandronunes at gmail.com) | |
66 | + | |
67 | +ACKNOWLEDGMENTS | |
68 | +=============== | |
69 | + | |
70 | +The author have been supported by Serpro | ... | ... |
plugins/ldap/README
... | ... | @@ -1,71 +0,0 @@ |
1 | -README - LDAP (LDAP Plugin) | |
2 | -================================ | |
3 | - | |
4 | -LDAP is a plugin to allow ldap authentication to noosfero | |
5 | - | |
6 | - | |
7 | -INSTALL | |
8 | -======= | |
9 | - | |
10 | -Dependences | |
11 | ------------ | |
12 | - | |
13 | -See the Noosfero install file. After install Noosfero, install LDAP dependences: | |
14 | - | |
15 | -$ gem install net-ldap -v 0.3.1 | |
16 | - | |
17 | -Enable Plugin | |
18 | -------------- | |
19 | - | |
20 | -Also, you need to enable LDAP Plugin at you Noosfero: | |
21 | - | |
22 | -cd <your_noosfero_dir> | |
23 | -./script/noosfero-plugins enable ldap | |
24 | - | |
25 | -Active Plugin | |
26 | -------------- | |
27 | - | |
28 | -As a Noosfero administrator user, go to administrator panel: | |
29 | - | |
30 | -- Click on "Enable/disable plugins" option | |
31 | -- Click on "LDAP Plugin" check-box | |
32 | - | |
33 | - | |
34 | -DEVELOPMENT | |
35 | -=========== | |
36 | - | |
37 | -Get the LDAP (Noosfero with LDAP Plugin) development repository: | |
38 | - | |
39 | -$ git clone https://gitorious.org/+noosfero/noosfero/ldap | |
40 | - | |
41 | -Running LDAP tests | |
42 | --------------------- | |
43 | - | |
44 | -Configure the ldap server creating the file 'plugins/ldap/fixtures/ldap.yml'. | |
45 | -A sample file is offered in 'plugins/ldap/fixtures/ldap.yml.dist' | |
46 | - | |
47 | -$ rake test:noosfero_plugins:ldap | |
48 | - | |
49 | - | |
50 | -Get Involved | |
51 | -============ | |
52 | - | |
53 | -If you found any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
54 | - | |
55 | -LICENSE | |
56 | -======= | |
57 | - | |
58 | -Copyright (c) The Author developers. | |
59 | - | |
60 | -See Noosfero license. | |
61 | - | |
62 | - | |
63 | -AUTHORS | |
64 | -======= | |
65 | - | |
66 | - Leandro Nunes dos Santos (leandronunes at gmail.com) | |
67 | - | |
68 | -ACKNOWLEDGMENTS | |
69 | -=============== | |
70 | - | |
71 | -The author have been supported by Serpro |
... | ... | @@ -0,0 +1,71 @@ |
1 | +README - LDAP (LDAP Plugin) | |
2 | +================================ | |
3 | + | |
4 | +LDAP is a plugin to allow ldap authentication to noosfero | |
5 | + | |
6 | + | |
7 | +INSTALL | |
8 | +======= | |
9 | + | |
10 | +Dependences | |
11 | +----------- | |
12 | + | |
13 | +See the Noosfero install file. After install Noosfero, install LDAP dependences: | |
14 | + | |
15 | +$ gem install net-ldap -v 0.3.1 | |
16 | + | |
17 | +Enable Plugin | |
18 | +------------- | |
19 | + | |
20 | +Also, you need to enable LDAP Plugin at you Noosfero: | |
21 | + | |
22 | +cd <your_noosfero_dir> | |
23 | +./script/noosfero-plugins enable ldap | |
24 | + | |
25 | +Active Plugin | |
26 | +------------- | |
27 | + | |
28 | +As a Noosfero administrator user, go to administrator panel: | |
29 | + | |
30 | +- Click on "Enable/disable plugins" option | |
31 | +- Click on "LDAP Plugin" check-box | |
32 | + | |
33 | + | |
34 | +DEVELOPMENT | |
35 | +=========== | |
36 | + | |
37 | +Get the LDAP (Noosfero with LDAP Plugin) development repository: | |
38 | + | |
39 | +$ git clone https://gitorious.org/+noosfero/noosfero/ldap | |
40 | + | |
41 | +Running LDAP tests | |
42 | +-------------------- | |
43 | + | |
44 | +Configure the ldap server creating the file 'plugins/ldap/fixtures/ldap.yml'. | |
45 | +A sample file is offered in 'plugins/ldap/fixtures/ldap.yml.dist' | |
46 | + | |
47 | +$ rake test:noosfero_plugins:ldap | |
48 | + | |
49 | + | |
50 | +Get Involved | |
51 | +============ | |
52 | + | |
53 | +If you found any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
54 | + | |
55 | +LICENSE | |
56 | +======= | |
57 | + | |
58 | +Copyright (c) The Author developers. | |
59 | + | |
60 | +See Noosfero license. | |
61 | + | |
62 | + | |
63 | +AUTHORS | |
64 | +======= | |
65 | + | |
66 | + Leandro Nunes dos Santos (leandronunes at gmail.com) | |
67 | + | |
68 | +ACKNOWLEDGMENTS | |
69 | +=============== | |
70 | + | |
71 | +The author have been supported by Serpro | ... | ... |
plugins/mezuro/README
... | ... | @@ -1,144 +0,0 @@ |
1 | -README - Mezuro Plugin | |
2 | -====================== | |
3 | - | |
4 | -Mezuro is a source code tracking platform based on Noosfero social networking | |
5 | -platform with Mezuro Plugin actived to access Kalibro Web Service. | |
6 | - | |
7 | - | |
8 | -INSTALL | |
9 | -======= | |
10 | - | |
11 | -Dependences | |
12 | ------------ | |
13 | - | |
14 | -See the Noosfero INSTALL (and HACKING) file. After install Noosfero, you must | |
15 | -install Mezuro dependences: | |
16 | - | |
17 | -$ gem install --no-ri --no-rdoc nokogiri -v 1.5.0 | |
18 | -$ gem install --no-ri --no-rdoc wasabi -v 2.0.0 | |
19 | -$ gem install --no-ri --no-rdoc savon -v 0.9.7 | |
20 | -$ gem install --no-ri --no-rdoc googlecharts | |
21 | - | |
22 | -$ gem uninstall rack | |
23 | -$ gem install --no-ri --no-rdoc rack -v 1.0.1 | |
24 | - | |
25 | - | |
26 | -*with RVM* | |
27 | - | |
28 | -if you want to use RVM (Ruby Version Manager) environment, just run: | |
29 | - | |
30 | -$ plugins/mezuro/script/install/install-rvm.sh | |
31 | - | |
32 | - | |
33 | -Enable Mezuro Plugin | |
34 | --------------------- | |
35 | - | |
36 | -Also, you need to enable Mezuro Plugin at your Noosfero installation: | |
37 | - | |
38 | -cd <your_noosfero_dir> | |
39 | -./script/noosfero-plugins enable mezuro | |
40 | - | |
41 | - | |
42 | -Install Service | |
43 | ---------------- | |
44 | - | |
45 | -To run Mezuro (Noosfero with Mezuro Plugin), you need to install the Kalibro | |
46 | -Service. For that, see: | |
47 | -https://gitorious.org/kalibro/kalibro/blobs/master/INSTALL | |
48 | - | |
49 | - | |
50 | -Configure Service Address | |
51 | -------------------------- | |
52 | - | |
53 | -Addictionaly, copy service.yml.example to service.yml and define your Kalibro | |
54 | -Service address: | |
55 | - | |
56 | -$ cd <your_noosfero_dir>/plugin/mezuro | |
57 | -$ cp service.yml.example service.yml | |
58 | - | |
59 | -If you install Kalibro Service at localhost, just keep the default | |
60 | -adress: | |
61 | - | |
62 | -http://localhost:8080/KalibroService/ | |
63 | - | |
64 | - | |
65 | -Set Licences list | |
66 | ------------------ | |
67 | - | |
68 | -$ cd <your_noosfero_dir>/plugin/mezuro | |
69 | -$ cp licence.yml.example licence.yml | |
70 | - | |
71 | - | |
72 | -Apply Mezuro Theme | |
73 | ---------------------- | |
74 | - | |
75 | -(Our RVM install script already do that) | |
76 | - | |
77 | -If you want, you can use the Mezuro default theme: | |
78 | - | |
79 | -$ cd public/designs/themes && rm -f default | |
80 | -$ git clone git://gitorious.org/mezuro/mezuro-theme.git | |
81 | -$ ln -s mezuro-theme/ default && cd ../../../ | |
82 | - | |
83 | - | |
84 | -Active Mezuro Plugin on Noosfero Environment | |
85 | --------------------------------------------- | |
86 | - | |
87 | -As a Noosfero administrator user, go to administrator panel: | |
88 | - | |
89 | -- Click on "Enable/disable plugins" option | |
90 | -- Click on "Mezuro Plugin" check-box | |
91 | - | |
92 | - | |
93 | -DEVELOPMENT | |
94 | -=========== | |
95 | - | |
96 | -Get the Mezuro (Noosfero with Mezuro Plugin) development repository: | |
97 | - | |
98 | -$ git clone https://gitorious.org/+mezuro/noosfero/mezuro | |
99 | -$ cd mezuro | |
100 | -$ git checkout mezuro | |
101 | - | |
102 | -Running Mezuro tests | |
103 | --------------------- | |
104 | - | |
105 | -$ rake test:noosfero_plugins:mezuro | |
106 | - | |
107 | -or just: | |
108 | - | |
109 | -$ rake test:noosfero_plugin_mezuro:units | |
110 | -$ rake test:noosfero_plugin:mezuro:functionals | |
111 | - | |
112 | - | |
113 | -Get Involved | |
114 | -============ | |
115 | - | |
116 | -If you found any bug and/or want to collaborate, please send an e-mail to | |
117 | -paulo@softwarelivre.org | |
118 | - | |
119 | - | |
120 | -LICENSE | |
121 | -======= | |
122 | - | |
123 | -Copyright (c) The Author developers. | |
124 | - | |
125 | -See Noosfero license. | |
126 | - | |
127 | - | |
128 | -AUTHORS | |
129 | -======= | |
130 | - | |
131 | -Please, see the Mezuro AUTHORS file. | |
132 | - | |
133 | - | |
134 | -ACKNOWLEDGMENTS | |
135 | -=============== | |
136 | - | |
137 | -The authors have been supported by organizations: | |
138 | - | |
139 | -University of São Paulo (USP) | |
140 | -FLOSS Competence Center | |
141 | -http://ccsl.ime.usp.br | |
142 | - | |
143 | -Brazilian National Research Council (CNPQ) | |
144 | -http://www.cnpq.br/ |
... | ... | @@ -0,0 +1,144 @@ |
1 | +README - Mezuro Plugin | |
2 | +====================== | |
3 | + | |
4 | +Mezuro is a source code tracking platform based on Noosfero social networking | |
5 | +platform with Mezuro Plugin actived to access Kalibro Web Service. | |
6 | + | |
7 | + | |
8 | +INSTALL | |
9 | +======= | |
10 | + | |
11 | +Dependences | |
12 | +----------- | |
13 | + | |
14 | +See the Noosfero INSTALL (and HACKING) file. After install Noosfero, you must | |
15 | +install Mezuro dependences: | |
16 | + | |
17 | +$ gem install --no-ri --no-rdoc nokogiri -v 1.5.0 | |
18 | +$ gem install --no-ri --no-rdoc wasabi -v 2.0.0 | |
19 | +$ gem install --no-ri --no-rdoc savon -v 0.9.7 | |
20 | +$ gem install --no-ri --no-rdoc googlecharts | |
21 | + | |
22 | +$ gem uninstall rack | |
23 | +$ gem install --no-ri --no-rdoc rack -v 1.0.1 | |
24 | + | |
25 | + | |
26 | +*with RVM* | |
27 | + | |
28 | +if you want to use RVM (Ruby Version Manager) environment, just run: | |
29 | + | |
30 | +$ plugins/mezuro/script/install/install-rvm.sh | |
31 | + | |
32 | + | |
33 | +Enable Mezuro Plugin | |
34 | +-------------------- | |
35 | + | |
36 | +Also, you need to enable Mezuro Plugin at your Noosfero installation: | |
37 | + | |
38 | +cd <your_noosfero_dir> | |
39 | +./script/noosfero-plugins enable mezuro | |
40 | + | |
41 | + | |
42 | +Install Service | |
43 | +--------------- | |
44 | + | |
45 | +To run Mezuro (Noosfero with Mezuro Plugin), you need to install the Kalibro | |
46 | +Service. For that, see: | |
47 | +https://gitorious.org/kalibro/kalibro/blobs/master/INSTALL | |
48 | + | |
49 | + | |
50 | +Configure Service Address | |
51 | +------------------------- | |
52 | + | |
53 | +Addictionaly, copy service.yml.example to service.yml and define your Kalibro | |
54 | +Service address: | |
55 | + | |
56 | +$ cd <your_noosfero_dir>/plugin/mezuro | |
57 | +$ cp service.yml.example service.yml | |
58 | + | |
59 | +If you install Kalibro Service at localhost, just keep the default | |
60 | +adress: | |
61 | + | |
62 | +http://localhost:8080/KalibroService/ | |
63 | + | |
64 | + | |
65 | +Set Licences list | |
66 | +----------------- | |
67 | + | |
68 | +$ cd <your_noosfero_dir>/plugin/mezuro | |
69 | +$ cp licence.yml.example licence.yml | |
70 | + | |
71 | + | |
72 | +Apply Mezuro Theme | |
73 | +--------------------- | |
74 | + | |
75 | +(Our RVM install script already do that) | |
76 | + | |
77 | +If you want, you can use the Mezuro default theme: | |
78 | + | |
79 | +$ cd public/designs/themes && rm -f default | |
80 | +$ git clone git://gitorious.org/mezuro/mezuro-theme.git | |
81 | +$ ln -s mezuro-theme/ default && cd ../../../ | |
82 | + | |
83 | + | |
84 | +Active Mezuro Plugin on Noosfero Environment | |
85 | +-------------------------------------------- | |
86 | + | |
87 | +As a Noosfero administrator user, go to administrator panel: | |
88 | + | |
89 | +- Click on "Enable/disable plugins" option | |
90 | +- Click on "Mezuro Plugin" check-box | |
91 | + | |
92 | + | |
93 | +DEVELOPMENT | |
94 | +=========== | |
95 | + | |
96 | +Get the Mezuro (Noosfero with Mezuro Plugin) development repository: | |
97 | + | |
98 | +$ git clone https://gitorious.org/+mezuro/noosfero/mezuro | |
99 | +$ cd mezuro | |
100 | +$ git checkout mezuro | |
101 | + | |
102 | +Running Mezuro tests | |
103 | +-------------------- | |
104 | + | |
105 | +$ rake test:noosfero_plugins:mezuro | |
106 | + | |
107 | +or just: | |
108 | + | |
109 | +$ rake test:noosfero_plugin_mezuro:units | |
110 | +$ rake test:noosfero_plugin:mezuro:functionals | |
111 | + | |
112 | + | |
113 | +Get Involved | |
114 | +============ | |
115 | + | |
116 | +If you found any bug and/or want to collaborate, please send an e-mail to | |
117 | +paulo@softwarelivre.org | |
118 | + | |
119 | + | |
120 | +LICENSE | |
121 | +======= | |
122 | + | |
123 | +Copyright (c) The Author developers. | |
124 | + | |
125 | +See Noosfero license. | |
126 | + | |
127 | + | |
128 | +AUTHORS | |
129 | +======= | |
130 | + | |
131 | +Please, see the Mezuro AUTHORS file. | |
132 | + | |
133 | + | |
134 | +ACKNOWLEDGMENTS | |
135 | +=============== | |
136 | + | |
137 | +The authors have been supported by organizations: | |
138 | + | |
139 | +University of São Paulo (USP) | |
140 | +FLOSS Competence Center | |
141 | +http://ccsl.ime.usp.br | |
142 | + | |
143 | +Brazilian National Research Council (CNPQ) | |
144 | +http://www.cnpq.br/ | ... | ... |
plugins/recent_content/README
... | ... | @@ -1,69 +0,0 @@ |
1 | -README - RecentContent (RecentContent Plugin) | |
2 | -================================ | |
3 | - | |
4 | -RecentContent is a plugin that provides a blog which displays the content posted inside a blog chosen by the user. | |
5 | - | |
6 | -The RecentContent block will be available for all layout columns of communities, people, enterprises and environments. | |
7 | - | |
8 | -The articles posted from the chosen blog are displayed as a list with a link for the title and optionally the abstract/lead content. | |
9 | - | |
10 | -If the chosen blog has a cover image, the user can configure the block to show the same image displayed on that blog. | |
11 | - | |
12 | -Galleries and folders are not displayed in this block. | |
13 | - | |
14 | -INSTALL | |
15 | -======= | |
16 | - | |
17 | -Enable Plugin | |
18 | -------------- | |
19 | - | |
20 | -Also, you need to enable RecentContent Plugin at your Noosfero: | |
21 | - | |
22 | -cd <your_noosfero_dir> | |
23 | -./script/noosfero-plugins enable recent_content | |
24 | - | |
25 | -Active Plugin | |
26 | -------------- | |
27 | - | |
28 | -As a Noosfero administrator user, go to administrator panel: | |
29 | - | |
30 | -- Click on "Enable/disable plugins" option | |
31 | -- Click on "Recent Content Plugin" check-box | |
32 | - | |
33 | -DEVELOPMENT | |
34 | -=========== | |
35 | - | |
36 | -Get the Recent Content (Noosfero with Recent Content Plugin) development repository: | |
37 | - | |
38 | -$ git clone https://github.com/fga-unb/noosfero/tree/AI2848-block_recent_articles | |
39 | - | |
40 | -Running RecentContent tests | |
41 | --------------------- | |
42 | - | |
43 | -$ rake test:noosfero_plugins:recent_content | |
44 | - | |
45 | - | |
46 | -Get Involved | |
47 | -============ | |
48 | - | |
49 | -If you found any bug and/or want to collaborate, please send an e-mail to contato@valessiobrito.com.br | |
50 | - | |
51 | -LICENSE | |
52 | -======= | |
53 | - | |
54 | -Copyright (c) The Author developers. | |
55 | - | |
56 | -See Noosfero license. | |
57 | - | |
58 | - | |
59 | -AUTHORS | |
60 | -======= | |
61 | - David Carlos (ddavidcarlos1392 at gmail.com) | |
62 | - Gabriela Navarro (navarro1703 at gmail.com) | |
63 | - Marcos Ramos (ms.ramos at outlook.com) | |
64 | - Valessio Brito (contato at valessiobrito.com.br) | |
65 | - | |
66 | -ACKNOWLEDGMENTS | |
67 | -=============== | |
68 | - | |
69 | -The author have been supported by FGA - UnB and Lappis |
... | ... | @@ -0,0 +1,69 @@ |
1 | +README - RecentContent (RecentContent Plugin) | |
2 | +================================ | |
3 | + | |
4 | +RecentContent is a plugin that provides a blog which displays the content posted inside a blog chosen by the user. | |
5 | + | |
6 | +The RecentContent block will be available for all layout columns of communities, people, enterprises and environments. | |
7 | + | |
8 | +The articles posted from the chosen blog are displayed as a list with a link for the title and optionally the abstract/lead content. | |
9 | + | |
10 | +If the chosen blog has a cover image, the user can configure the block to show the same image displayed on that blog. | |
11 | + | |
12 | +Galleries and folders are not displayed in this block. | |
13 | + | |
14 | +INSTALL | |
15 | +======= | |
16 | + | |
17 | +Enable Plugin | |
18 | +------------- | |
19 | + | |
20 | +Also, you need to enable RecentContent Plugin at your Noosfero: | |
21 | + | |
22 | +cd <your_noosfero_dir> | |
23 | +./script/noosfero-plugins enable recent_content | |
24 | + | |
25 | +Active Plugin | |
26 | +------------- | |
27 | + | |
28 | +As a Noosfero administrator user, go to administrator panel: | |
29 | + | |
30 | +- Click on "Enable/disable plugins" option | |
31 | +- Click on "Recent Content Plugin" check-box | |
32 | + | |
33 | +DEVELOPMENT | |
34 | +=========== | |
35 | + | |
36 | +Get the Recent Content (Noosfero with Recent Content Plugin) development repository: | |
37 | + | |
38 | +$ git clone https://github.com/fga-unb/noosfero/tree/AI2848-block_recent_articles | |
39 | + | |
40 | +Running RecentContent tests | |
41 | +-------------------- | |
42 | + | |
43 | +$ rake test:noosfero_plugins:recent_content | |
44 | + | |
45 | + | |
46 | +Get Involved | |
47 | +============ | |
48 | + | |
49 | +If you found any bug and/or want to collaborate, please send an e-mail to contato@valessiobrito.com.br | |
50 | + | |
51 | +LICENSE | |
52 | +======= | |
53 | + | |
54 | +Copyright (c) The Author developers. | |
55 | + | |
56 | +See Noosfero license. | |
57 | + | |
58 | + | |
59 | +AUTHORS | |
60 | +======= | |
61 | + David Carlos (ddavidcarlos1392 at gmail.com) | |
62 | + Gabriela Navarro (navarro1703 at gmail.com) | |
63 | + Marcos Ramos (ms.ramos at outlook.com) | |
64 | + Valessio Brito (contato at valessiobrito.com.br) | |
65 | + | |
66 | +ACKNOWLEDGMENTS | |
67 | +=============== | |
68 | + | |
69 | +The author have been supported by FGA - UnB and Lappis | ... | ... |
plugins/solr/INSTALL
... | ... | @@ -1,19 +0,0 @@ |
1 | -(THIS INSTALL IS INCOMPLETE) | |
2 | - | |
3 | -Dependencies | |
4 | -============ | |
5 | - | |
6 | -apt-get install openjdk-6-jre | |
7 | - | |
8 | -* Solr: http://lucene.apache.org/solr | |
9 | - | |
10 | -Instalation | |
11 | -=========== | |
12 | - | |
13 | -$ rake solr:download | |
14 | - | |
15 | -Running the server | |
16 | -================== | |
17 | -Run Solr | |
18 | - | |
19 | -$ rake solr:start |
... | ... | @@ -0,0 +1,19 @@ |
1 | +(THIS INSTALL IS INCOMPLETE) | |
2 | + | |
3 | +Dependencies | |
4 | +============ | |
5 | + | |
6 | +apt-get install openjdk-6-jre | |
7 | + | |
8 | +* Solr: http://lucene.apache.org/solr | |
9 | + | |
10 | +Instalation | |
11 | +=========== | |
12 | + | |
13 | +$ rake solr:download | |
14 | + | |
15 | +Running the server | |
16 | +================== | |
17 | +Run Solr | |
18 | + | |
19 | +$ rake solr:start | ... | ... |
plugins/solr/README
plugins/spaminator/README
... | ... | @@ -1,44 +0,0 @@ |
1 | -README - Spaminator (Spaminator Plugin) | |
2 | -======================================= | |
3 | - | |
4 | -Plugin that search and destroy spams and spammers. | |
5 | - | |
6 | - | |
7 | -Enable Plugin | |
8 | -------------- | |
9 | - | |
10 | -Also, you need to enable Spaminator Plugin at your Noosfero: | |
11 | - | |
12 | -cd <your_noosfero_dir> | |
13 | -./script/noosfero-plugins enable spaminator | |
14 | - | |
15 | -And run the migrations for Spaminator Plugin at your Noosfero: | |
16 | -cd <your_noosfero_dir> | |
17 | - | |
18 | -- Development environment: | |
19 | -rake db:migrate | |
20 | - | |
21 | -- Production environment: | |
22 | -RAILS_ENV=production rake db:migrate | |
23 | - | |
24 | - | |
25 | -Activate Plugin | |
26 | -------------- | |
27 | - | |
28 | -As a Noosfero administrator user, go to administrator panel: | |
29 | - | |
30 | -- Click on "Plugins" option | |
31 | -- Click on "Spaminator Plugin" check-box | |
32 | - | |
33 | -Configure Plugin | |
34 | ----------------- | |
35 | - | |
36 | -As a Noosfero administrator user, go to administrator panel: | |
37 | - | |
38 | -- Click on "Configuration" below the "Spaminator Plugin" | |
39 | -- Define how often the plugin will run on "Period (days) for scanning spammers" | |
40 | -- Save your changes | |
41 | - | |
42 | -The "Scan now!" button will run spaminator plugin when clicked. | |
43 | -The "Deploy" button will schedule scanning to run after the period | |
44 | -defined on "Period (days) for scanning spammers". |
... | ... | @@ -0,0 +1,44 @@ |
1 | +README - Spaminator (Spaminator Plugin) | |
2 | +======================================= | |
3 | + | |
4 | +Plugin that search and destroy spams and spammers. | |
5 | + | |
6 | + | |
7 | +Enable Plugin | |
8 | +------------- | |
9 | + | |
10 | +Also, you need to enable Spaminator Plugin at your Noosfero: | |
11 | + | |
12 | +cd <your_noosfero_dir> | |
13 | +./script/noosfero-plugins enable spaminator | |
14 | + | |
15 | +And run the migrations for Spaminator Plugin at your Noosfero: | |
16 | +cd <your_noosfero_dir> | |
17 | + | |
18 | +- Development environment: | |
19 | +rake db:migrate | |
20 | + | |
21 | +- Production environment: | |
22 | +RAILS_ENV=production rake db:migrate | |
23 | + | |
24 | + | |
25 | +Activate Plugin | |
26 | +------------- | |
27 | + | |
28 | +As a Noosfero administrator user, go to administrator panel: | |
29 | + | |
30 | +- Click on "Plugins" option | |
31 | +- Click on "Spaminator Plugin" check-box | |
32 | + | |
33 | +Configure Plugin | |
34 | +---------------- | |
35 | + | |
36 | +As a Noosfero administrator user, go to administrator panel: | |
37 | + | |
38 | +- Click on "Configuration" below the "Spaminator Plugin" | |
39 | +- Define how often the plugin will run on "Period (days) for scanning spammers" | |
40 | +- Save your changes | |
41 | + | |
42 | +The "Scan now!" button will run spaminator plugin when clicked. | |
43 | +The "Deploy" button will schedule scanning to run after the period | |
44 | +defined on "Period (days) for scanning spammers". | ... | ... |
plugins/stoa/README
... | ... | @@ -1,28 +0,0 @@ |
1 | -README - Stoa (Stoa Plugin) | |
2 | -================================ | |
3 | - | |
4 | -Plugin that includes features to Stoa, USP's social network | |
5 | - | |
6 | -More informartion about Stoa: http://wiki.stoa.usp.br/Stoa:Sobre | |
7 | - | |
8 | -DATABASE | |
9 | -======== | |
10 | - | |
11 | -First you need to configure Noosfero to connect with the database users from USP. | |
12 | -For that, add a section setting the connection on file config/database.yml with the the identifier "stoa". | |
13 | - | |
14 | -Example: | |
15 | --------- | |
16 | - | |
17 | -stoa: | |
18 | - adapter: mysql | |
19 | - host: db2.stoa.usp.br | |
20 | - database: usp | |
21 | - username: <usuario> | |
22 | - password: <senha> | |
23 | - | |
24 | -CONFIGURATION | |
25 | -============= | |
26 | - | |
27 | -Copy config.yml.dist to config.yml on Stoa plugin's folder. | |
28 | -You need to customize this configuration, adding a Salt ( http://en.wikipedia.org/wiki/Salt_(cryptography) ). |
... | ... | @@ -0,0 +1,28 @@ |
1 | +README - Stoa (Stoa Plugin) | |
2 | +================================ | |
3 | + | |
4 | +Plugin that includes features to Stoa, USP's social network | |
5 | + | |
6 | +More informartion about Stoa: http://wiki.stoa.usp.br/Stoa:Sobre | |
7 | + | |
8 | +DATABASE | |
9 | +======== | |
10 | + | |
11 | +First you need to configure Noosfero to connect with the database users from USP. | |
12 | +For that, add a section setting the connection on file config/database.yml with the the identifier "stoa". | |
13 | + | |
14 | +Example: | |
15 | +-------- | |
16 | + | |
17 | +stoa: | |
18 | + adapter: mysql | |
19 | + host: db2.stoa.usp.br | |
20 | + database: usp | |
21 | + username: <usuario> | |
22 | + password: <senha> | |
23 | + | |
24 | +CONFIGURATION | |
25 | +============= | |
26 | + | |
27 | +Copy config.yml.dist to config.yml on Stoa plugin's folder. | |
28 | +You need to customize this configuration, adding a Salt ( http://en.wikipedia.org/wiki/Salt_(cryptography) ). | ... | ... |
plugins/video/README
... | ... | @@ -1,57 +0,0 @@ |
1 | -README - Video (Video Plugin) | |
2 | -================================ | |
3 | - | |
4 | -Video is a plugin that allow users to add a block where you can choose | |
5 | -any url from youtube, vimeo and url's of the following file formats: | |
6 | -mp4, ogg, ogv and webm. | |
7 | - | |
8 | -The Video block will be available for all layout columns of communities, | |
9 | -people, enterprises and environments. | |
10 | - | |
11 | -INSTALL | |
12 | -======= | |
13 | - | |
14 | -Enable Plugin | |
15 | -------------- | |
16 | - | |
17 | -Also, you need to enable Video Plugin on your Noosfero: | |
18 | - | |
19 | -cd <your_noosfero_dir> | |
20 | -./script/noosfero-plugins enable video | |
21 | - | |
22 | -Active Plugin | |
23 | -------------- | |
24 | - | |
25 | -As a Noosfero administrator user, go to administrator panel: | |
26 | - | |
27 | -- Click on "Enable/disable plugins" option | |
28 | -- Click on "Display Content Plugin" check-box | |
29 | - | |
30 | -Running Video tests | |
31 | --------------------- | |
32 | - | |
33 | -$ rake test:noosfero_plugins:video | |
34 | - | |
35 | - | |
36 | -Get Involved | |
37 | -============ | |
38 | - | |
39 | -If you find any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
40 | - | |
41 | -LICENSE | |
42 | -======= | |
43 | - | |
44 | -Copyright (c) The Author developers. | |
45 | - | |
46 | -See Noosfero license. | |
47 | - | |
48 | - | |
49 | -AUTHORS | |
50 | -======= | |
51 | - | |
52 | - Leandro Nunes dos Santos (leandronunes at gmail.com) | |
53 | - | |
54 | -ACKNOWLEDGMENTS | |
55 | -=============== | |
56 | - | |
57 | -The author have been supported by Serpro |
... | ... | @@ -0,0 +1,57 @@ |
1 | +README - Video (Video Plugin) | |
2 | +================================ | |
3 | + | |
4 | +Video is a plugin that allow users to add a block where you can choose | |
5 | +any url from youtube, vimeo and url's of the following file formats: | |
6 | +mp4, ogg, ogv and webm. | |
7 | + | |
8 | +The Video block will be available for all layout columns of communities, | |
9 | +people, enterprises and environments. | |
10 | + | |
11 | +INSTALL | |
12 | +======= | |
13 | + | |
14 | +Enable Plugin | |
15 | +------------- | |
16 | + | |
17 | +Also, you need to enable Video Plugin on your Noosfero: | |
18 | + | |
19 | +cd <your_noosfero_dir> | |
20 | +./script/noosfero-plugins enable video | |
21 | + | |
22 | +Active Plugin | |
23 | +------------- | |
24 | + | |
25 | +As a Noosfero administrator user, go to administrator panel: | |
26 | + | |
27 | +- Click on "Enable/disable plugins" option | |
28 | +- Click on "Display Content Plugin" check-box | |
29 | + | |
30 | +Running Video tests | |
31 | +-------------------- | |
32 | + | |
33 | +$ rake test:noosfero_plugins:video | |
34 | + | |
35 | + | |
36 | +Get Involved | |
37 | +============ | |
38 | + | |
39 | +If you find any bug and/or want to collaborate, please send an e-mail to leandronunes@gmail.com | |
40 | + | |
41 | +LICENSE | |
42 | +======= | |
43 | + | |
44 | +Copyright (c) The Author developers. | |
45 | + | |
46 | +See Noosfero license. | |
47 | + | |
48 | + | |
49 | +AUTHORS | |
50 | +======= | |
51 | + | |
52 | + Leandro Nunes dos Santos (leandronunes at gmail.com) | |
53 | + | |
54 | +ACKNOWLEDGMENTS | |
55 | +=============== | |
56 | + | |
57 | +The author have been supported by Serpro | ... | ... |