|
@@ -1,443 +1,443 @@
|
1
|
|
-[](https://travis-ci.org/tracim/tracim) [](https://coveralls.io/r/tracim/tracim) [](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
|
+[](https://travis-ci.org/tracim/tracim) [](https://coveralls.io/r/tracim/tracim) [](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
|