Fidus Writer is an online collaborative editor especially made for academics who need to use citations and/or formulas. The editor focuses on the content rather than the layout, so that with the same text, you can later on publish it in multiple ways: On a website, as a printed book, or as an ebook. In each case, you can choose from a number of layouts that are adequate for the medium of choice.
For details on contributing, please check http://fiduswriter.org/help-us/
All of Fidus Writer's original code is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE, for details see LICENSE. Some third party libraries are licensed under other, compatible open source libraries. Licensing information is included in those files.
The following are instructions working on most *NIX systems and gives you a simple test installation.
Download the Fidus Writer sources to your computer. Unarchive if necessary.
Install the development packages of libjpeg, gettext, python and the python virtual environment creator. How you do this depends on your system. On Debian and Ubuntu the packages are called libjpeg-dev, python-dev and python-virtualenv. Install them with your favorite package manager, for example on the command line by running:
sudo apt-get install libjpeg-dev python-dev python-virtualenv gettext
Cd to where you have your sources using your terminal/command line.
You can use the virtualenv command to create virtual environments. The following command will create an environment called "fiduswriter-venv":
virtualenv --no-site-packages fiduswriter-venv
Activate the virtualenv by typing:
Install the requirements for running fiduswriter by typing:
pip install -U setuptools
pip install -r requirements.txt
Initialize the Fidus Writer site and create a super user by typing:
python manage.py init
Run the Fidus Writer server by typing:
python manage.py runserver
In your Chrome/Chromium/Safari browser, navigate to http://localhost:8000/ and set up a user account.
Notice that emails sent to the user appear in the console until an SMTP backend is configured (see below).
Setup SMTP for the email:
Copy the file configuration.py-default to configuration.py
Edit the lines that start with "EMAIL" uncommenting and adding your server configuration. Depending on your server setup you may also need to configure DEFAULT_FROM_EMAIL
Use a MySQL/PostGreSQL server instead of sqlite:
Install the libmysql development package. On Debian/Ubuntu, you can do this by executing:
sudo apt-get install libmysqlclient-dev
While inside your Fidus Writer virtualenv, install the python requirements specific to MySQL:
pip install -r mysql-requirements.txt
Create a database and a user with access to it, making sure that the characterset of the database is set to UTF8. Check here http://www.debuntu.org/how-to-create-a-mysql-database-and-set-privileges-to-a-user/ for how to create a database and set up user priviliges. Make sure that when you create the database, you specify the characterset:
create database DBNAME character set utf8;
Copy configuration.py-default to configuration.py, uncomment and fill out the section entitled "DATABASES".
Run several instances of Fidus Writer in parallel:
If you will be running several instances of Fidus Writer that need to communicate between each other, you will need to add redis for message exchange. Install a redis server. On Debian/Ubuntu, you need to do:
sudo apt-get install redis-server
While inside your Fidus Writer virtualenv, install the python requirements for redis like this:
pip install -r redis-requirements.txt
Copy configuration.py-default to configuration.py, uncomment and fill out the section entitled "CACHES".
Run the Fidus Writer server on an alternative port:
Instead of starting the server with:
python manage.py runserver
Specify the port number like this:
python manage.py runserver 9000
9000 is the port number that this server listens on.
Add new document styles:
- While your server is running, navigate to http://[ADDRESS:PORT]/admin/style .
- Add all required document fonts. Each font consists of a font file and a CSS definition of the font. Notice that instead the URL for the font file in the CSS definition should be [URL]
- Add one or several new document styles. Insert the CSS definition and select all the fonts required by the style.
In your console, interrupt the server and run:
python manage.py create_document_styles
Depending on your server setup, you may also have to run:
python manage.py collectstatic
Restart your server.