|
@@ -2,45 +2,73 @@
|
2
|
2
|
|
3
|
3
|
### Installation ###
|
4
|
4
|
|
5
|
|
-Install `Apache` server and its [`WSGI` module](https://github.com/GrahamDumpleton/mod_wsgi):
|
|
5
|
+Install `tracim` first.
|
|
6
|
+Install `Apache` server and uwsgi its [`WSGI` module](https://github.com/GrahamDumpleton/mod_wsgi):
|
6
|
7
|
|
7
|
|
- sudo apt install apache2 libapache2-mod-wsgi-py3
|
|
8
|
+ sudo apt install apache2 libapache2-mod-wsgi-py3 uwsgi uwsgi-plugin-python3
|
8
|
9
|
|
9
|
10
|
### Configuration ###
|
10
|
11
|
|
11
|
12
|
Create a file named `/etc/apache2/sites-available/tracim.conf` containing:
|
12
|
13
|
|
13
|
|
- Listen 8080
|
|
14
|
+ Listen 80
|
14
|
15
|
|
15
|
|
- <VirtualHost *:8080>
|
|
16
|
+ <VirtualHost *:80>
|
16
|
17
|
ServerName tracim
|
17
|
18
|
|
18
|
|
- # Serve Tracim through WSGI
|
19
|
|
- WSGIDaemonProcess tracim user=[your_user] group=[your_user] threads=4 python-home=[tracim_path]/tg2env python-path=[tracim_path]/tracim lang='C.UTF-8' locale='C.UTF-8'
|
20
|
|
- WSGIProcessGroup tracim
|
21
|
|
- WSGIScriptAlias / [tracim_path]/tracim/app.wsgi process-group=tracim
|
22
|
|
- <Directory "[tracim_path]/tracim">
|
23
|
|
- <Files "app.wsgi">
|
24
|
|
- Require all granted
|
25
|
|
- </Files>
|
26
|
|
- </Directory>
|
27
|
|
-
|
28
|
|
- # Serve static files directly
|
29
|
|
- Alias /assets [tracim_path]/tracim/tracim/public/assets
|
30
|
|
- Alias /_caldavzap [tracim_path]/tracim/tracim/public/_caldavzap
|
31
|
|
- Alias /favicon.ico [tracim_path]/tracim/tracim/public/favicon.ico
|
32
|
|
- <Directory "[tracim_path]/tracim/tracim/public">
|
33
|
|
- Require all granted
|
34
|
|
- </Directory>
|
|
19
|
+ <Directory "/">
|
|
20
|
+ Require all granted
|
|
21
|
+ Dav On
|
|
22
|
+ </Directory>
|
|
23
|
+ ProxyPreserveHost On
|
|
24
|
+ CustomLog /var/log/apache2/algoo-access.log combined
|
|
25
|
+ ErrorLog /var/log/apache2/algoo-error.log
|
|
26
|
+ <Location "/webdav">
|
|
27
|
+ # Dav On
|
|
28
|
+ </Location>
|
|
29
|
+
|
|
30
|
+ # RemoteIPHeader X-Forwarded-For
|
|
31
|
+ ProxyPass /webdav http://127.0.0.1:3030/webdav
|
|
32
|
+ ProxyPassReverse /webdav http://127.0.0.1:3030/webdav
|
|
33
|
+ ProxyPass / http://127.0.0.1:8080/
|
|
34
|
+ ProxyPassReverse / http://127.0.0.1:8080/
|
|
35
|
+
|
35
|
36
|
</VirtualHost>
|
36
|
37
|
|
37
|
|
-Replace `[tracim_path]` and `[your_user]` above by your tracim installation path and your user.
|
|
38
|
+Enable this configuration file:
|
|
39
|
+
|
|
40
|
+ sudo ln -s /etc/apache2/sites-available/tracim.conf /etc/apache2/sites-enabled/
|
|
41
|
+
|
|
42
|
+Check if you just have `tracim.conf` in `/etc/apache2/sites-enabled`, if not, remove other file.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+Create the file named `/etc/uwsgi/apps-available/tracim.ini` containing:
|
|
46
|
+
|
|
47
|
+ [uwsgi]
|
|
48
|
+ plugins = python3
|
|
49
|
+ chdir = [tracim_path]/tracim
|
|
50
|
+ home = [tracim_path]/tg2env
|
|
51
|
+ wsgi-file = app.wsgi
|
|
52
|
+ callable = application
|
|
53
|
+ http-socket = 0.0.0.0:8080
|
|
54
|
+ enable-threads = true
|
|
55
|
+ env = PYTHON_EGG_CACHE=/tmp
|
|
56
|
+
|
|
57
|
+Replace [tracim_path] by your path of tracim
|
38
|
58
|
|
39
|
|
-Set the `APP_CONFIG` variable of the `tracim/app.wsgi` file to match your tracim installation path:
|
|
59
|
+Enable this configuration file:
|
|
60
|
+
|
|
61
|
+ sudo ln -s /etc/uwsgi/apps-available/tracim.ini /etc/uwsgi/apps-enabled/
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+Create file `tracim.log` in `/var/log/uwsgi/app/`
|
|
65
|
+
|
|
66
|
+Set the `APP_CONFIG` variable of the `[tracim_path]/tracim/app.wsgi` file to match your tracim installation path:
|
40
|
67
|
|
41
|
68
|
# -*- coding: utf-8 -*-
|
42
|
69
|
|
43
|
|
- APP_CONFIG = "[tracim_path]/tracim/development.ini"
|
|
70
|
+ APP_CONFIG = "[tracim_path]/tracim/development.ini"
|
|
71
|
+ #(in file: replace /var/www/tracim by your [tracim_path] )
|
44
|
72
|
|
45
|
73
|
#Setup logging
|
46
|
74
|
# import logging
|
|
@@ -51,17 +79,82 @@ Set the `APP_CONFIG` variable of the `tracim/app.wsgi` file to match your tracim
|
51
|
79
|
application = loadapp('config:%s' % APP_CONFIG)
|
52
|
80
|
application.debug = False
|
53
|
81
|
|
|
82
|
+
|
|
83
|
+Add `webdav` at `root_path` in the `[tracim_path]/tracim/wsgidav.conf`:
|
|
84
|
+
|
|
85
|
+ ################################################################################
|
|
86
|
+ # Sample WsgiDAV configuration file
|
|
87
|
+ #
|
|
88
|
+ # 1. Rename this file to `wsgidav.conf`
|
|
89
|
+ # 2. Adjust settings as appropriate
|
|
90
|
+ # 3. Run tracim as you always do :)
|
|
91
|
+ #
|
|
92
|
+ ################################################################################
|
|
93
|
+
|
|
94
|
+ ################################################################################
|
|
95
|
+ # SERVER OPTIONS
|
|
96
|
+ #===============================================================================
|
|
97
|
+
|
|
98
|
+ # host = "localhost"
|
|
99
|
+ # host = "192.168.0.1"
|
|
100
|
+ host = "0.0.0.0"
|
|
101
|
+
|
|
102
|
+ port = 3030
|
|
103
|
+
|
|
104
|
+ show_history = True
|
|
105
|
+ show_deleted = True
|
|
106
|
+ show_archived = True
|
|
107
|
+
|
|
108
|
+ manager_locks = True
|
|
109
|
+
|
|
110
|
+ root_path = ''
|
|
111
|
+
|
|
112
|
+ #===============================================================================
|
|
113
|
+ # Lock Manager
|
|
114
|
+ #
|
|
115
|
+ # Example: Use PERSISTENT shelve based lock manager
|
|
116
|
+ #from wsgidav.lock_storage import LockStorageShelve
|
|
117
|
+ #locksmanager = LockStorageShelve("wsgidav-locks.shelve")
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+Open `[tracim_path]/tracim/development.ini` and make some change:
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+ In [server:main] modify IP:
|
|
125
|
+ `host = 127.0.0.1` by `host = 0.0.0.0`
|
|
126
|
+
|
|
127
|
+ For Radical (CalDav server):
|
|
128
|
+ Uncomment `# radicale.server.host = 0.0.0.0`
|
|
129
|
+ Uncomment `# radicale.server.allow_origin = *`
|
|
130
|
+ Uncomment `# radicale.client.base_url.host = http://127.0.0.1:5232`
|
|
131
|
+ and modifiy IP `# radicale.client.base_url.host = http://127.0.0.1:5232`to `radicale.client.base_url.host = http://[Your_server_IP]:5232`
|
|
132
|
+
|
|
133
|
+ For WSGIDAV
|
|
134
|
+ Uncomment `# wsgidav.client.base_url = 127.0.0.1:<WSGIDAV_PORT>`
|
|
135
|
+ and modify IP and PORT `# wsgidav.client.base_url = 127.0.0.1:<WSGIDAV_PORT>` to `wsgidav.client.base_url = [Your_server_IP]/webdav`
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+Restart `uwsgi` configuration:
|
|
139
|
+
|
|
140
|
+ sudo systemctl restart uwsgi.service
|
|
141
|
+
|
54
|
142
|
Load needed proxy modules and enable this site configuration file:
|
55
|
143
|
|
56
|
|
- sudo a2enmod proxy proxy_http
|
|
144
|
+ sudo a2enmod dav_fs dav proxy proxy_http
|
57
|
145
|
sudo a2ensite tracim.conf
|
58
|
146
|
|
59
|
|
-Reload `Apache` configuration:
|
|
147
|
+Restart `Apache` configuration:
|
60
|
148
|
|
61
|
|
- sudo systemctl reload apache2.service
|
|
149
|
+ sudo systemctl restart apache2.service
|
|
150
|
+
|
|
151
|
+**Important**
|
|
152
|
+In case you have some permission problem, check if `www-data` can access to folder of tracim.
|
62
|
153
|
|
63
|
154
|
## Documentation Links ##
|
64
|
155
|
|
|
156
|
+[Apache]()
|
|
157
|
+
|
65
|
158
|
[TurboGears](http://turbogears.readthedocs.io/en/tg2.3.7/cookbook/deploy/mod_wsgi.html)
|
66
|
159
|
|
67
|
160
|
[mod_wsgi](http://modwsgi.readthedocs.io/en/develop/index.html)
|