Install tracim
first.
Install Apache
server and uwsgi its WSGI
module:
sudo apt install apache2 libapache2-mod-wsgi-py3 uwsgi uwsgi-plugin-python3
Create a file named /etc/apache2/sites-available/tracim.conf
containing:
Listen 80
<VirtualHost *:80>
ServerName tracim
<Directory "/">
Require all granted
Dav On
</Directory>
ProxyPreserveHost On
CustomLog /var/log/apache2/algoo-access.log combined
ErrorLog /var/log/apache2/algoo-error.log
<Location "/webdav">
# Dav On
</Location>
# RemoteIPHeader X-Forwarded-For
ProxyPass /webdav http://127.0.0.1:3030/webdav
ProxyPassReverse /webdav http://127.0.0.1:3030/webdav
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
Enable this configuration file:
sudo ln -s /etc/apache2/sites-available/tracim.conf /etc/apache2/sites-enabled/
Check if you just have tracim.conf
in /etc/apache2/sites-enabled
, if not, remove other file.
Create the file named /etc/uwsgi/apps-available/tracim.ini
containing:
[uwsgi]
plugins = python3
chdir = [tracim_path]/tracim
home = [tracim_path]/tg2env
wsgi-file = app.wsgi
callable = application
http-socket = 0.0.0.0:8080
enable-threads = true
env = PYTHON_EGG_CACHE=/tmp
Replace [tracim_path] by your path of tracim
Enable this configuration file:
sudo ln -s /etc/uwsgi/apps-available/tracim.ini /etc/uwsgi/apps-enabled/
Create file tracim.log
in /var/log/uwsgi/app/
Set the APP_CONFIG
variable of the [tracim_path]/tracim/app.wsgi
file to match your tracim installation path:
# -*- coding: utf-8 -*-
APP_CONFIG = "[tracim_path]/tracim/development.ini"
#(in file: replace /var/www/tracim by your [tracim_path] )
#Setup logging
# import logging
# logging.config.fileConfig(APP_CONFIG)
#Load the application
from paste.deploy import loadapp
application = loadapp('config:%s' % APP_CONFIG)
application.debug = False
Add webdav
at root_path
in the [tracim_path]/tracim/wsgidav.conf
:
################################################################################
# Sample WsgiDAV configuration file
#
# 1. Rename this file to `wsgidav.conf`
# 2. Adjust settings as appropriate
# 3. Run tracim as you always do :)
#
################################################################################
################################################################################
# SERVER OPTIONS
#===============================================================================
# host = "localhost"
# host = "192.168.0.1"
host = "0.0.0.0"
port = 3030
show_history = True
show_deleted = True
show_archived = True
manager_locks = True
root_path = ''
# Tracim doesn't support digest auth for webdav
acceptbasic = True
acceptdigest = False
defaultdigest = False
#===============================================================================
# Lock Manager
#
# Example: Use PERSISTENT shelve based lock manager
#from wsgidav.lock_storage import LockStorageShelve
#locksmanager = LockStorageShelve("wsgidav-locks.shelve")
Open [tracim_path]/tracim/development.ini
and make some change:
In [server:main] modify IP:
`host = 127.0.0.1` by `host = 0.0.0.0`
For Radical (CalDav server):
Uncomment `# radicale.server.host = 0.0.0.0`
Uncomment `# radicale.server.allow_origin = *`
Uncomment `# radicale.client.base_url.host = http://127.0.0.1:5232`
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`
For WSGIDAV
Uncomment `# wsgidav.client.base_url = 127.0.0.1:<WSGIDAV_PORT>`
and modify IP and PORT `# wsgidav.client.base_url = 127.0.0.1:<WSGIDAV_PORT>` to `wsgidav.client.base_url = [Your_server_IP]/webdav`
Restart uwsgi
configuration:
sudo systemctl restart uwsgi.service
Load needed proxy modules and enable this site configuration file:
sudo a2enmod dav_fs dav proxy proxy_http
sudo a2ensite tracim.conf
Restart Apache
configuration:
sudo systemctl restart apache2.service
Important
In case you have some permission problem, check if www-data
can access to folder of tracim.