Bläddra i källkod

fix README encoding

Bastien Sevajol (Algoo) 7 år sedan
förälder
incheckning
2f9ad0eaa1
1 ändrade filer med 443 tillägg och 443 borttagningar
  1. 443 443
      README.md

+ 443 - 443
README.md Visa fil

@@ -1,443 +1,443 @@
1
-[![Build Status](https://travis-ci.org/tracim/tracim.svg?branch=master)](https://travis-ci.org/tracim/tracim) [![Coverage Status](https://img.shields.io/coveralls/tracim/tracim.svg)](https://coveralls.io/r/tracim/tracim) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/tracim/tracim/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/tracim/tracim/?branch=master)
2
-
3
-# Tracim - Introduction #
4
-
5
-Tracim is a collaborative software designed to allow people to share and work on various data and document types.
6
-
7
-If you hesitate to install a wiki, a forum or a file management software, stop hesitating and install Tracim.
8
-
9
-With Tracim, you manage in the same place:
10
-
11
-- forum-like threads,
12
-- files and automatic versionning,
13
-- wiki-like pages for online information,
14
-
15
-All data offers:
16
-
17
-- information status: open / resolved / cancelled / deprecated
18
-- native versionning
19
-- comment threads making tracim knowledge-growth ready.
20
-
21
-Join Tracim community : http://tracim.org
22
-
23
-## Use-cases ##
24
-
25
-### Collaborate with clients ###
26
-
27
-Share information with your clients.
28
-
29
-In the same place you will be able to share trouble-shooting threads, files and general information. You can define who the information is shared with.
30
-
31
-Example: share the documentation with all your users, run a forum open to your clients, another forum for your collaborators and share troubleshooting threads with each of your clients in a private workspace.
32
-
33
-### Run a community of experts or passionate people ###
34
-
35
-Collaborate and share experience and stimulate knowledge growth.
36
-
37
-In a unique place, you centralize files and threads, and raw information too. Every collaborator can update the information status.
38
-Stop worrying about information loss: the traceability is at the hearth of Tracim.
39
-
40
-The newcomers knowledge growth is easy because all information has a status and full history.
41
-You get the status of information and know how it got there.
42
-
43
-### Work on quality-driven projects ###
44
-
45
-In quality-driven projects like research and development, knowledge and quality are more important that task ownership and deadlines.
46
-
47
-With Tracim, you centralize information, you can stay in touch by configuring your email notifications and work on several projects.
48
-
49
-### Manage documents and files ###
50
-
51
-Traceability and versionning are very important for high-quality processes. Unfortunately, specialized software are hard to setup and to use.
52
-
53
-Let's try Tracim ! You define access-control for each workspace and store documents and file there. Users can't delete information: everything is versionned and never deleted.
54
-
55
-The user interface is easy to use: it's based on the well-known folders and files explorer paradigm.
56
-
57
-----
58
-
59
-# Tracim - the software #
60
-
61
-## Licence ##
62
-
63
-Tracim is licensed under the terms of the 
64
-[GNU Affero General Public License](http://www.gnu.org/licenses/agpl.txt) as published by the [Free Software Foundation](http://www.fsf.org/).
65
-
66
-## Technical information ##
67
-
68
-Tracim is a web application:
69
-
70
-* developed with python >=3.4.
71
-* based on the [TurboGears](http://www.turbogears.org/) web framework.
72
-* relying on [PostgreSQL](http://www.postgresql.org/) or [MySQL](https://www.mysql.fr/) as the storage engine.
73
-
74
-The user interface is based on the following resources and technologies:
75
-
76
-* [Mako](http://www.makotemplates.org/) templating engine (server-side)
77
-* [Bootstrap 3](http://getbootstrap.com/)
78
-* [jQuery](http://wwwjquery.corm)
79
-* Icons are taken from [Tango Icons](http://tango.freedesktop.org/) and [Font Awesome](http://fortawesome.github.io/Font-Awesome/)
80
-* The design is based on the [Bootstrap dashboard example](http://getbootstrap.com/examples/dashboard/) and uses some images from [Start Boostrap free templates](http://startbootstrap.com/)
81
-
82
-It runs on [Debian GNU/Linux](http://www.debian.org/), it should work out-of-the-box on [Ubuntu](http://www.ubuntu.com/) and also on other GNU/Linux distributions.
83
-
84
-Hopefully it works on BSD and Windows OSes (but this has not been tested yet).
85
-
86
-----
87
-
88
-# Use it (or give it a try) #
89
-
90
-## Online Demo ##
91
-
92
-The easiest way to test Tracim is to test it through the online demo:
93
-
94
-* [http://demo.tracim.fr](http://demo.tracim.fr)
95
-* login as admin: admin@admin.admin
96
-* password: admin@admin.admin
97
-
98
-## Ask for a dedicated instance ##
99
-
100
-If you want your own dedicated instance but do not want to manage it by yourself, let's contact me at damien.accorsi@free.fr
101
-
102
-## Install Tracim on your server ##
103
-
104
-Following the installation documentation below, you'll be able to run your own instance on your server.
105
-
106
-----
107
-
108
-# Installation #
109
-
110
-## Dependencies ##
111
-
112
-_Note: the following information is for Debian. For other OS, adapt the package names._
113
-
114
-You'll need to install the following packages on your Operating System:
115
-
116
-    apt-get install git realpath python3 python-virtualenv python3-dev python-pip build-essential libxml2-dev libxslt1-dev python-lxml
117
-
118
-## Database ##
119
-
120
-If you want use PostgreSQL as database engine:
121
-
122
-    apt-get install postgresql-server-dev-all postgresql postgresql-client
123
-
124
-Or if you want to use MySQL as database engine
125
-
126
-    apt-get install mysql-server mysql-client libmysqlclient-dev 
127
-
128
-## Installation ##
129
-
130
-### Get the source ###
131
-
132
-Get the sources from github with git:
133
-
134
-    git clone https://github.com/tracim/tracim.git
135
-    cd tracim/
136
-
137
-*Note: Now everything is documented to be executed from the tracim directory newly created.*
138
-
139
-### Setting-up python virtualenv ###
140
-
141
-_Reminder : Tracim is developed and tested using python3.4._
142
-
143
-We strongly recommend to use virtualenv as deployment environment. This ensure that there will be no conflict between system-wide python installation and Tracim required ones. To Create the virtual environment:
144
-
145
-    virtualenv -p /usr/bin/python3.4 tg2env
146
-
147
-And to activate it in your terminal session (**all tracim command execution must be executed under this virtual environment**)):
148
-
149
-    source tg2env/bin/activate
150
- 
151
-To install tracim and it's dependencies:
152
- 
153
-    cd tracim && python setup.py develop && cd -
154
-    pip install -r install/requirements.txt
155
-
156
-**Note**: If you want to use MySQL database, please refer to Configuration/database schema note to install required package.
157
-
158
-## Database Setup ##
159
-
160
-### Minimalist introduction to PostgreSQL ###
161
-
162
-If you already use/know PostgreSQL, you can directly go to *Test the database access*.
163
-
164
-#### Allowing local connections on PostgreSQL ####
165
-
166
-PostgreSQL stores connections ahtorization in *pg\_hba.conf*
167
-
168
-Edit the pg_hba.conf file and check that connectionx from 127.0.0.1 are allowed using user/password. You should find the following line in the file:
169
-
170
-    # IPv4 local connections:
171
-    host    all             all             127.0.0.1/32            md5
172
-
173
-Note: on Debian, the *pg\_hba.conf* file is found at */etc/postgresql/9.1/main/pg\_hba.conf*
174
-
175
-If you changed the file, reload PostgreSQL:
176
-
177
-    service postgresql reload
178
-
179
-#### Creating a user and associated database ####
180
-
181
-You need a database and associated user/password.
182
-
183
-Tracim comes with a tool that will make this step easy : pgtool.
184
-
185
-    ~/tracim$ ./bin/pgtool help
186
-
187
-login as *postgres* user and run the follwoing commands (which are self explanatory)
188
-
189
-    ./bin/pgtool create_user tracimuser tracimpassword
190
-    ./bin/pgtool create_database tracimdb
191
-    ./bin/pgtool grant_all_privileges tracimdb tracimuser
192
-
193
-Notes :
194
-
195
-* in order to login as postgres user, su as root (with your password) then su postgres.
196
-* pgtool also offers options to delete users / databases. Run *./bin/pgtool help* for more information
197
-
198
-#### Test the database access ####
199
-
200
-So, now you have a database and an associated user/password.
201
-
202
-A good habit is to test things before to use them, that's why we want to test the database access now. This is easily done with tracim pgtool :
203
-
204
-    ./bin/pgtool test_connection tracimdb tracimuser tracimpassword 127.0.0.1
205
-
206
-The result is similar to the following :
207
-
208
-    PG # CONNECT TO DATABASE
209
-    ------------------------
210
-    server:     127.0.0.1
211
-    database:   tracimdb
212
-    username:   bibi
213
-
214
-                  now              
215
-    -------------------------------
216
-     2014-11-10 09:40:23.306199+01
217
-    (1 row)
218
-
219
-In case of failure, you would get something like this:
220
-
221
-    PG # CONNECT TO DATABASE
222
-    ------------------------
223
-    server:     127.0.0.1
224
-    database:   tracimdb
225
-    username:   bibi
226
-
227
-    psql: FATAL:  password authentication failed for user "bibi"
228
-    FATAL:  password authentication failed for user "bibi"
229
-    ERRROR
230
-
231
-In this case, delete the user and database you previously created (using pgtool) and do it again. Do not forget to run the grant_all_rights command!
232
-
233
-### Minimalist introduction to MySQL ###
234
-
235
-## Create database ##
236
-
237
-Connect to mysql with root user (password has been set at "Installation" -> "Dependencies" chapter, when installing package)
238
-
239
-    mysql -u root -p
240
-
241
-Create a database with following command:
242
-
243
-    CREATE DATABASE tracimdb;
244
-
245
-Create a user with following command:
246
-
247
-    CREATE USER 'tracimuser'@'localhost' IDENTIFIED BY 'tracimpassword';
248
-
249
-And allow him to manipulate created database with following command:
250
-
251
-    GRANT ALL PRIVILEGES ON tracimdb . * TO 'tracimuser'@'localhost';
252
-
253
-Then flush privileges:
254
-
255
-    FLUSH PRIVILEGES;
256
-
257
-You can now quit mysql prompt:
258
-
259
-    \q
260
-
261
-## Configuration ##
262
-
263
-At this point, you have :
264
-
265
-* an installation of Tracim with its dedicated python3-ready virtualenv
266
-* a PostgreSQL/MySQL server and dedicated database
267
-
268
-What you have to do now is to configure the application and to initialize the database content.
269
-
270
-### Create configuration ###
271
-
272
-    cp tracim/development.ini.base tracim/development.ini
273
-
274
-You can now edit the file and setup required files. Here are the main ones:
275
-
276
-#### Database access ####
277
-
278
-Configure database in the development.ini file. This is defined as sqlalchemy.url. There is an example value for PostgreSQL below:
279
-
280
-    sqlalchemy.url = postgresql://tracimuser:tracimpassword@127.0.0.1:5432/tracimdb?client_encoding=utf8
281
-
282
-There is an example value for MySQL below (please refer to Configuration/database schema note to install required package):
283
-
284
-    sqlalchemy.url = mysql+oursql://tracimuser:tracimpassword@127.0.0.1/tracimdb
285
-
286
-#### Listening port
287
-
288
-Default configuration is to listen on port 8080. If you want to adapt this to your environment, edit the .ini file and setup the port you want:
289
-
290
-    port = 8080
291
-
292
-#### Interface language
293
-
294
-The default language is English. You can change it to French by uncommenting the following line in the .ini file:
295
-
296
-    lang = fr
297
-
298
-#### SMTP parameters for resetpassword and notifications
299
-
300
-for technical reason, you have to configure SMTP parameters for rest password process and SMTP parameters for notifications in separate places.
301
-
302
-The reset password related parameters are the follwoing ones :
303
-
304
-    resetpassword.email_sender = tracim@mycompany.com
305
-    resetpassword.smtp_host = smtp.mycompany.com
306
-    resetpassword.smtp_port = 25
307
-    resetpassword.smtp_login = username
308
-    resetpassword.smtp_passwd = password
309
-
310
-The main parameters for notifications are the following ones:
311
-
312
-    email.notification.activated = true
313
-    email.notification.from = Tracim Notification <tracim@tmycompany.com>
314
-    email.notification.smtp.server = smtp.mycompany.com
315
-    email.notification.smtp.port = 25
316
-    email.notification.smtp.user = username
317
-    email.notification.smtp.password = password
318
-
319
-#### Website ####
320
-
321
-You must define general parameters like the base_url and the website title which are required for home page and email notification links
322
-
323
-    website.title = My Company Intranet
324
-    website.base_url = http://intranet.mycompany.com:8080
325
-
326
-#### LDAP ####
327
-
328
-To use LDAP authentication, set ``auth_type`` parameter to "ldap":
329
-
330
-    auth_type = ldap
331
-
332
-Then add LDAP parameters
333
-
334
-    # LDAP server address
335
-    ldap_url = ldap://localhost:389
336
-
337
-    # Base dn to make queries
338
-    ldap_base_dn = dc=directory,dc=fsf,dc=org
339
-
340
-    # Bind dn to identify the search
341
-    ldap_bind_dn = cn=admin,dc=directory,dc=fsf,dc=org
342
-
343
-    # The bind password
344
-    ldap_bind_pass = toor
345
-
346
-    # Attribute name of user record who contain user login (email)
347
-    ldap_ldap_naming_attribute = uid
348
-
349
-    # Matching between ldap attribute and ldap user field (ldap_attr1=user_field1,ldap_attr2=user_field2,...)
350
-    ldap_user_attributes = mail=email
351
-
352
-    # TLS usage to communicate with your LDAP server
353
-    ldap_tls = False
354
-
355
-    # If True, LDAP own tracim group managment (not available for now!)
356
-    ldap_group_enabled = False
357
-
358
-You may need an administrator account to manage Tracim. Use the following command (from ``/install/dir/of/tracim/tracim``):
359
-
360
-    gearbox user create -l admin@admin.admin -p admin@admin.admin -g managers -g administrators
361
-
362
-Keep in mind ``admin-email@domain.com`` must match with LDAP user.
363
-
364
-#### Other parameters  ####
365
-
366
-There are other parameters which may be of some interest for you. For example, you can:
367
-
368
-* include a JS tracker like Piwik or Google Analytics,
369
-* define your own notification email subject
370
-* personalize notification email
371
-* personalize home page (background image, title color...)
372
-* ...
373
-
374
-### database schema ###
375
-
376
-The last step before to run the application is to initialize the database schema. This is done through the following command:
377
-
378
-**Note**: If you want to use MySQL database, please install this pip package: ```pip install https://launchpad.net/oursql/py3k/py3k-0.9.4/+download/oursql-0.9.4.zip```
379
-
380
-    cd tracim && gearbox setup-app && cd -
381
-
382
-## Running the server ##
383
-
384
-### Running Tracim in standalone mode ###
385
-
386
-Now you can run the standalone server:
387
-
388
-    ./bin/run.sh
389
-    
390
-Which should result in something like this:
391
-
392
-    13:53:49,982 INFO  [gearbox] Starting subprocess with file monitor
393
-    13:53:50,646 WARNI [py.warnings] /tmp/tracim/protov1/tg2env/lib/python3.2/site-packages/tw2/core/validation.py:12: ImportWarning: Not importing directory '/tmp/tracim/protov1/tg2env/lib/python3.2/site-packages/tw2/core/i18n': missing __init__.py
394
-      from .i18n import _
395
-    
396
-    13:53:50,862 INFO  [gearbox] Starting server in PID 11174.
397
-    Starting HTTP server on http://0.0.0.0:8080
398
-    
399
-You can now enter the application at [http://localhost:8080](http://localhost:8080) and login with admin user. 
400
-
401
- * user : admin@admin.admin
402
- * password : admin@admin.admin
403
-
404
-If admin user not created yet, execute following command:
405
-
406
-    gearbox user create -l admin@admin.admin -p admin@admin.admin -g managers -g administrators
407
-    
408
-Enjoy :)
409
-
410
-### Running Tracim through Apache WSGI ###
411
-
412
-#### Dependencies ####
413
-
414
-Install dependencies:
415
-
416
-    apt-get install apache2 libapache2-mod-wsgi-py3
417
-
418
-#### WSGI configuration ####
419
-
420
-Example of Apache WSGI configuration. This configuration refers to productionapp.wsgi which is a copy of the file *app.wsgi* available in the repo. (this file has to be updated to match with your environment and installation)
421
-
422
-    <VirtualHost *:80>
423
-        ServerAdmin webmaster@tracim.mycompany.com
424
-        ServerName tracim.mycompany.com
425
-
426
-        WSGIProcessGroup tracim
427
-        WSGIDaemonProcess tracim user=www-data group=adm threads=4 python-path=/opt/traciminstall/tg2env/lib/python3.2/site-packages
428
-        WSGIScriptAlias / /opt/traciminstall/tracim/productionapp.wsgi
429
-
430
-        #Serve static files directly without TurboGears
431
-        Alias /assets     /opt/traciminstall/tracim/tracim/public/assets
432
-        Alias /favicon.ico /opt/traciminstall/tracim/tracim/public/favicon.ico
433
-
434
-        CustomLog /var/log/apache2/demotracim-access.log combined
435
-        ErrorLog /var/log/apache2/demotracim-error.log
436
-        LogLevel debug
437
-    </VirtualHost>
438
-
439
-# Support and Community #
440
-
441
-Building the community is a work in progress.
442
-
443
-Need help ? Do not hesitate to contact me : damien.accorsi@free.fr
1
+[![Build Status](https://travis-ci.org/tracim/tracim.svg?branch=master)](https://travis-ci.org/tracim/tracim) [![Coverage Status](https://img.shields.io/coveralls/tracim/tracim.svg)](https://coveralls.io/r/tracim/tracim) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/tracim/tracim/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/tracim/tracim/?branch=master)
2
+
3
+# Tracim - Introduction #
4
+
5
+Tracim is a collaborative software designed to allow people to share and work on various data and document types.
6
+
7
+If you hesitate to install a wiki, a forum or a file management software, stop hesitating and install Tracim.
8
+
9
+With Tracim, you manage in the same place:
10
+
11
+- forum-like threads,
12
+- files and automatic versionning,
13
+- wiki-like pages for online information,
14
+
15
+All data offers:
16
+
17
+- information status: open / resolved / cancelled / deprecated
18
+- native versionning
19
+- comment threads making tracim knowledge-growth ready.
20
+
21
+Join Tracim community : http://tracim.org
22
+
23
+## Use-cases ##
24
+
25
+### Collaborate with clients ###
26
+
27
+Share information with your clients.
28
+
29
+In the same place you will be able to share trouble-shooting threads, files and general information. You can define who the information is shared with.
30
+
31
+Example: share the documentation with all your users, run a forum open to your clients, another forum for your collaborators and share troubleshooting threads with each of your clients in a private workspace.
32
+
33
+### Run a community of experts or passionate people ###
34
+
35
+Collaborate and share experience and stimulate knowledge growth.
36
+
37
+In a unique place, you centralize files and threads, and raw information too. Every collaborator can update the information status.
38
+Stop worrying about information loss: the traceability is at the hearth of Tracim.
39
+
40
+The newcomers knowledge growth is easy because all information has a status and full history.
41
+You get the status of information and know how it got there.
42
+
43
+### Work on quality-driven projects ###
44
+
45
+In quality-driven projects like research and development, knowledge and quality are more important that task ownership and deadlines.
46
+
47
+With Tracim, you centralize information, you can stay in touch by configuring your email notifications and work on several projects.
48
+
49
+### Manage documents and files ###
50
+
51
+Traceability and versionning are very important for high-quality processes. Unfortunately, specialized software are hard to setup and to use.
52
+
53
+Let's try Tracim ! You define access-control for each workspace and store documents and file there. Users can't delete information: everything is versionned and never deleted.
54
+
55
+The user interface is easy to use: it's based on the well-known folders and files explorer paradigm.
56
+
57
+----
58
+
59
+# Tracim - the software #
60
+
61
+## Licence ##
62
+
63
+Tracim is licensed under the terms of the
64
+[GNU Affero General Public License](http://www.gnu.org/licenses/agpl.txt) as published by the [Free Software Foundation](http://www.fsf.org/).
65
+
66
+## Technical information ##
67
+
68
+Tracim is a web application:
69
+
70
+* developed with python >=3.4.
71
+* based on the [TurboGears](http://www.turbogears.org/) web framework.
72
+* relying on [PostgreSQL](http://www.postgresql.org/) or [MySQL](https://www.mysql.fr/) as the storage engine.
73
+
74
+The user interface is based on the following resources and technologies:
75
+
76
+* [Mako](http://www.makotemplates.org/) templating engine (server-side)
77
+* [Bootstrap 3](http://getbootstrap.com/)
78
+* [jQuery](http://wwwjquery.corm)
79
+* Icons are taken from [Tango Icons](http://tango.freedesktop.org/) and [Font Awesome](http://fortawesome.github.io/Font-Awesome/)
80
+* The design is based on the [Bootstrap dashboard example](http://getbootstrap.com/examples/dashboard/) and uses some images from [Start Boostrap free templates](http://startbootstrap.com/)
81
+
82
+It runs on [Debian GNU/Linux](http://www.debian.org/), it should work out-of-the-box on [Ubuntu](http://www.ubuntu.com/) and also on other GNU/Linux distributions.
83
+
84
+Hopefully it works on BSD and Windows OSes (but this has not been tested yet).
85
+
86
+----
87
+
88
+# Use it (or give it a try) #
89
+
90
+## Online Demo ##
91
+
92
+The easiest way to test Tracim is to test it through the online demo:
93
+
94
+* [http://demo.tracim.fr](http://demo.tracim.fr)
95
+* login as admin: admin@admin.admin
96
+* password: admin@admin.admin
97
+
98
+## Ask for a dedicated instance ##
99
+
100
+If you want your own dedicated instance but do not want to manage it by yourself, let's contact me at damien.accorsi@free.fr
101
+
102
+## Install Tracim on your server ##
103
+
104
+Following the installation documentation below, you'll be able to run your own instance on your server.
105
+
106
+----
107
+
108
+# Installation #
109
+
110
+## Dependencies ##
111
+
112
+_Note: the following information is for Debian. For other OS, adapt the package names._
113
+
114
+You'll need to install the following packages on your Operating System:
115
+
116
+    apt-get install git realpath python3 python-virtualenv python3-dev python-pip build-essential libxml2-dev libxslt1-dev python-lxml
117
+
118
+## Database ##
119
+
120
+If you want use PostgreSQL as database engine:
121
+
122
+    apt-get install postgresql-server-dev-all postgresql postgresql-client
123
+
124
+Or if you want to use MySQL as database engine
125
+
126
+    apt-get install mysql-server mysql-client libmysqlclient-dev
127
+
128
+## Installation ##
129
+
130
+### Get the source ###
131
+
132
+Get the sources from github with git:
133
+
134
+    git clone https://github.com/tracim/tracim.git
135
+    cd tracim/
136
+
137
+*Note: Now everything is documented to be executed from the tracim directory newly created.*
138
+
139
+### Setting-up python virtualenv ###
140
+
141
+_Reminder : Tracim is developed and tested using python3.4._
142
+
143
+We strongly recommend to use virtualenv as deployment environment. This ensure that there will be no conflict between system-wide python installation and Tracim required ones. To Create the virtual environment:
144
+
145
+    virtualenv -p /usr/bin/python3.4 tg2env
146
+
147
+And to activate it in your terminal session (**all tracim command execution must be executed under this virtual environment**)):
148
+
149
+    source tg2env/bin/activate
150
+
151
+To install tracim and it's dependencies:
152
+
153
+    cd tracim && python setup.py develop && cd -
154
+    pip install -r install/requirements.txt
155
+
156
+**Note**: If you want to use MySQL database, please refer to Configuration/database schema note to install required package.
157
+
158
+## Database Setup ##
159
+
160
+### Minimalist introduction to PostgreSQL ###
161
+
162
+If you already use/know PostgreSQL, you can directly go to *Test the database access*.
163
+
164
+#### Allowing local connections on PostgreSQL ####
165
+
166
+PostgreSQL stores connections ahtorization in *pg\_hba.conf*
167
+
168
+Edit the pg_hba.conf file and check that connectionx from 127.0.0.1 are allowed using user/password. You should find the following line in the file:
169
+
170
+    # IPv4 local connections:
171
+    host    all             all             127.0.0.1/32            md5
172
+
173
+Note: on Debian, the *pg\_hba.conf* file is found at */etc/postgresql/9.1/main/pg\_hba.conf*
174
+
175
+If you changed the file, reload PostgreSQL:
176
+
177
+    service postgresql reload
178
+
179
+#### Creating a user and associated database ####
180
+
181
+You need a database and associated user/password.
182
+
183
+Tracim comes with a tool that will make this step easy : pgtool.
184
+
185
+    ~/tracim$ ./bin/pgtool help
186
+
187
+login as *postgres* user and run the follwoing commands (which are self explanatory)
188
+
189
+    ./bin/pgtool create_user tracimuser tracimpassword
190
+    ./bin/pgtool create_database tracimdb
191
+    ./bin/pgtool grant_all_privileges tracimdb tracimuser
192
+
193
+Notes :
194
+
195
+* in order to login as postgres user, su as root (with your password) then su postgres.
196
+* pgtool also offers options to delete users / databases. Run *./bin/pgtool help* for more information
197
+
198
+#### Test the database access ####
199
+
200
+So, now you have a database and an associated user/password.
201
+
202
+A good habit is to test things before to use them, that's why we want to test the database access now. This is easily done with tracim pgtool :
203
+
204
+    ./bin/pgtool test_connection tracimdb tracimuser tracimpassword 127.0.0.1
205
+
206
+The result is similar to the following :
207
+
208
+    PG # CONNECT TO DATABASE
209
+    ------------------------
210
+    server:     127.0.0.1
211
+    database:   tracimdb
212
+    username:   bibi
213
+
214
+                  now
215
+    -------------------------------
216
+     2014-11-10 09:40:23.306199+01
217
+    (1 row)
218
+
219
+In case of failure, you would get something like this:
220
+
221
+    PG # CONNECT TO DATABASE
222
+    ------------------------
223
+    server:     127.0.0.1
224
+    database:   tracimdb
225
+    username:   bibi
226
+
227
+    psql: FATAL:  password authentication failed for user "bibi"
228
+    FATAL:  password authentication failed for user "bibi"
229
+    ERRROR
230
+
231
+In this case, delete the user and database you previously created (using pgtool) and do it again. Do not forget to run the grant_all_rights command!
232
+
233
+### Minimalist introduction to MySQL ###
234
+
235
+## Create database ##
236
+
237
+Connect to mysql with root user (password has been set at "Installation" -> "Dependencies" chapter, when installing package)
238
+
239
+    mysql -u root -p
240
+
241
+Create a database with following command:
242
+
243
+    CREATE DATABASE tracimdb;
244
+
245
+Create a user with following command:
246
+
247
+    CREATE USER 'tracimuser'@'localhost' IDENTIFIED BY 'tracimpassword';
248
+
249
+And allow him to manipulate created database with following command:
250
+
251
+    GRANT ALL PRIVILEGES ON tracimdb . * TO 'tracimuser'@'localhost';
252
+
253
+Then flush privileges:
254
+
255
+    FLUSH PRIVILEGES;
256
+
257
+You can now quit mysql prompt:
258
+
259
+    \q
260
+
261
+## Configuration ##
262
+
263
+At this point, you have :
264
+
265
+* an installation of Tracim with its dedicated python3-ready virtualenv
266
+* a PostgreSQL/MySQL server and dedicated database
267
+
268
+What you have to do now is to configure the application and to initialize the database content.
269
+
270
+### Create configuration ###
271
+
272
+    cp tracim/development.ini.base tracim/development.ini
273
+
274
+You can now edit the file and setup required files. Here are the main ones:
275
+
276
+#### Database access ####
277
+
278
+Configure database in the development.ini file. This is defined as sqlalchemy.url. There is an example value for PostgreSQL below:
279
+
280
+    sqlalchemy.url = postgresql://tracimuser:tracimpassword@127.0.0.1:5432/tracimdb?client_encoding=utf8
281
+
282
+There is an example value for MySQL below (please refer to Configuration/database schema note to install required package):
283
+
284
+    sqlalchemy.url = mysql+oursql://tracimuser:tracimpassword@127.0.0.1/tracimdb
285
+
286
+#### Listening port
287
+
288
+Default configuration is to listen on port 8080. If you want to adapt this to your environment, edit the .ini file and setup the port you want:
289
+
290
+    port = 8080
291
+
292
+#### Interface language
293
+
294
+The default language is English. You can change it to French by uncommenting the following line in the .ini file:
295
+
296
+    lang = fr
297
+
298
+#### SMTP parameters for resetpassword and notifications
299
+
300
+for technical reason, you have to configure SMTP parameters for rest password process and SMTP parameters for notifications in separate places.
301
+
302
+The reset password related parameters are the follwoing ones :
303
+
304
+    resetpassword.email_sender = tracim@mycompany.com
305
+    resetpassword.smtp_host = smtp.mycompany.com
306
+    resetpassword.smtp_port = 25
307
+    resetpassword.smtp_login = username
308
+    resetpassword.smtp_passwd = password
309
+
310
+The main parameters for notifications are the following ones:
311
+
312
+    email.notification.activated = true
313
+    email.notification.from = Tracim Notification <tracim@tmycompany.com>
314
+    email.notification.smtp.server = smtp.mycompany.com
315
+    email.notification.smtp.port = 25
316
+    email.notification.smtp.user = username
317
+    email.notification.smtp.password = password
318
+
319
+#### Website ####
320
+
321
+You must define general parameters like the base_url and the website title which are required for home page and email notification links
322
+
323
+    website.title = My Company Intranet
324
+    website.base_url = http://intranet.mycompany.com:8080
325
+
326
+#### LDAP ####
327
+
328
+To use LDAP authentication, set ``auth_type`` parameter to "ldap":
329
+
330
+    auth_type = ldap
331
+
332
+Then add LDAP parameters
333
+
334
+    # LDAP server address
335
+    ldap_url = ldap://localhost:389
336
+
337
+    # Base dn to make queries
338
+    ldap_base_dn = dc=directory,dc=fsf,dc=org
339
+
340
+    # Bind dn to identify the search
341
+    ldap_bind_dn = cn=admin,dc=directory,dc=fsf,dc=org
342
+
343
+    # The bind password
344
+    ldap_bind_pass = toor
345
+
346
+    # Attribute name of user record who contain user login (email)
347
+    ldap_ldap_naming_attribute = uid
348
+
349
+    # Matching between ldap attribute and ldap user field (ldap_attr1=user_field1,ldap_attr2=user_field2,...)
350
+    ldap_user_attributes = mail=email
351
+
352
+    # TLS usage to communicate with your LDAP server
353
+    ldap_tls = False
354
+
355
+    # If True, LDAP own tracim group managment (not available for now!)
356
+    ldap_group_enabled = False
357
+
358
+You may need an administrator account to manage Tracim. Use the following command (from ``/install/dir/of/tracim/tracim``):
359
+
360
+    gearbox user create -l admin@admin.admin -p admin@admin.admin -g managers -g administrators
361
+
362
+Keep in mind ``admin-email@domain.com`` must match with LDAP user.
363
+
364
+#### Other parameters  ####
365
+
366
+There are other parameters which may be of some interest for you. For example, you can:
367
+
368
+* include a JS tracker like Piwik or Google Analytics,
369
+* define your own notification email subject
370
+* personalize notification email
371
+* personalize home page (background image, title color...)
372
+* ...
373
+
374
+### database schema ###
375
+
376
+The last step before to run the application is to initialize the database schema. This is done through the following command:
377
+
378
+**Note**: If you want to use MySQL database, please install this pip package: ```pip install https://launchpad.net/oursql/py3k/py3k-0.9.4/+download/oursql-0.9.4.zip```
379
+
380
+    cd tracim && gearbox setup-app && cd -
381
+
382
+## Running the server ##
383
+
384
+### Running Tracim in standalone mode ###
385
+
386
+Now you can run the standalone server:
387
+
388
+    ./bin/run.sh
389
+
390
+Which should result in something like this:
391
+
392
+    13:53:49,982 INFO  [gearbox] Starting subprocess with file monitor
393
+    13:53:50,646 WARNI [py.warnings] /tmp/tracim/protov1/tg2env/lib/python3.2/site-packages/tw2/core/validation.py:12: ImportWarning: Not importing directory '/tmp/tracim/protov1/tg2env/lib/python3.2/site-packages/tw2/core/i18n': missing __init__.py
394
+      from .i18n import _
395
+
396
+    13:53:50,862 INFO  [gearbox] Starting server in PID 11174.
397
+    Starting HTTP server on http://0.0.0.0:8080
398
+
399
+You can now enter the application at [http://localhost:8080](http://localhost:8080) and login with admin user.
400
+
401
+ * user : admin@admin.admin
402
+ * password : admin@admin.admin
403
+
404
+If admin user not created yet, execute following command:
405
+
406
+    gearbox user create -l admin@admin.admin -p admin@admin.admin -g managers -g administrators
407
+
408
+Enjoy :)
409
+
410
+### Running Tracim through Apache WSGI ###
411
+
412
+#### Dependencies ####
413
+
414
+Install dependencies:
415
+
416
+    apt-get install apache2 libapache2-mod-wsgi-py3
417
+
418
+#### WSGI configuration ####
419
+
420
+Example of Apache WSGI configuration. This configuration refers to productionapp.wsgi which is a copy of the file *app.wsgi* available in the repo. (this file has to be updated to match with your environment and installation)
421
+
422
+    <VirtualHost *:80>
423
+        ServerAdmin webmaster@tracim.mycompany.com
424
+        ServerName tracim.mycompany.com
425
+
426
+        WSGIProcessGroup tracim
427
+        WSGIDaemonProcess tracim user=www-data group=adm threads=4 python-path=/opt/traciminstall/tg2env/lib/python3.2/site-packages
428
+        WSGIScriptAlias / /opt/traciminstall/tracim/productionapp.wsgi
429
+
430
+        #Serve static files directly without TurboGears
431
+        Alias /assets     /opt/traciminstall/tracim/tracim/public/assets
432
+        Alias /favicon.ico /opt/traciminstall/tracim/tracim/public/favicon.ico
433
+
434
+        CustomLog /var/log/apache2/demotracim-access.log combined
435
+        ErrorLog /var/log/apache2/demotracim-error.log
436
+        LogLevel debug
437
+    </VirtualHost>
438
+
439
+# Support and Community #
440
+
441
+Building the community is a work in progress.
442
+
443
+Need help ? Do not hesitate to contact me : damien.accorsi@free.fr