TiddlyWiki

TiddlyWiki is a personal wiki and a non-linear notebook for organising and sharing complex information.


License

TiddlyWiki is published under a permissive BSD 3-Clause License.

Prerequisites

If you want to use TiddlyWiki with your own domain you need to setup your domain first:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Install the Node package

TiddlyWiki is installed via Nodes package manager npm:

[isabell@stardust ~]$ npm install -g tiddlywiki
[...]
+ tiddlywiki@5.1.23
added 1 package from 1 contributor in 5.102s
[isabell@stardust ~]$

Check if TiddlyWiki is installed by typing:

[isabell@stardust ~]$ tiddlywiki --version
5.1.23
[isabell@stardust ~]$

Create a new wiki

The following commands creates a folder in your home directory for TiddlyWiki. After that, a new wiki folder (named mynewwiki in this example) containing server-related components is created.

[isabell@stardust ~]$ mkdir tiddlywiki
[isabell@stardust ~]$ cd tiddlywiki
[isabell@stardust tiddlywiki]$ tiddlywiki mynewwiki --init server
Copied edition 'server' to mynewwiki
[isabell@stardust tiddlywiki]$ ls
mynewwiki
[isabell@stardust tiddlywiki]$

Setup a web backend

Note

TiddlyWiki is running on port 8080.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Configure permissions

By default, anonymous users can read and edit the tiddlers.

To restrict the permissions, add a users file named myusers.csv into the tiddlywiki folder:

[isabell@stardust ~]$ cd tiddlywiki
[isabell@stardust tiddlywiki]$ touch myusers.csv

Use your favorite editor to add a comma separated list of usernames and passwords (as cleartext) into the created file. The first header row username,password must be added.

username,password
jane,do3
andy,sm1th
roger,m00re

You can assign the users to the group readers (reading access only) or to the group writers (writing access) in the service configuration (see next step).

Setup TiddlyWiki as service

You should set up a service that keeps TiddlyWiki alive while you are gone. Create the file ~/etc/services.d/tiddlywiki.ini with the following content:

[program:tiddlywiki]
command=tiddlywiki %(ENV_HOME)s/tiddlywiki/mynewwiki --listen host=0.0.0.0 credentials=%(ENV_HOME)s/tiddlywiki/myusers.csv readers=jane,andy writers=andy
autostart=true
autorestart=true
stopsignal=INT

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Access your TiddlyWiki

Now point your Browser to your installation URL https://isabell.uber.space.

Update

Note

Check the update feed regularly to stay informed about the newest version.

Use the npm tool to update the TiddlyWiki installation:

[isabell@stardust ~]$ supervisorctl stop tiddlywiki
tiddlywiki: stopped
[isabell@stardust ~]$ npm update -g tiddlywiki
[...]
[isabell@stardust ~]$ supervisorctl start tiddlywiki
tiddlywiki: started
[isabell@stardust ~]$

Backup

Backup the following directories:

  • ~/tiddlywiki/

Debugging

In case of problems, the log file ~/logs/supervisord.log is the first point for you.

Moreover, the tiddlywiki binary offers the --verbose parameter.


Tested with TiddlyWiki 5.1.23, Uberspace 7.9.0.0

Written by: GodMod <godmod@eqdkp-plus.eu>