---
title: "Deploy TiddlyWiki"
description: "Personal web notebook that stores notes as small linked cards"
category: "CMS"
url: https://railway.com/deploy/tiddlywiki
---

# Deploy TiddlyWiki

Personal web notebook that stores notes as small linked cards

**[Deploy TiddlyWiki on Railway](https://railway.com/template/tiddlywiki)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/tiddlywiki/manifest.json

- **Creator:** A3A
- **Category:** CMS
- **Total deploys:** 1

## Template content

### tiddlywiki https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/tiddlywiki-light.svg

- **Source:** https://github.com/gridalpha/tiddlywiki-railway
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host TiddlyWiki on Railway

TiddlyWiki is a personal web notebook that stores everything as small linked notes called tiddlers rather than pages in folders. Jeremy Ruston released it in 2004 and rewrote it as TiddlyWiki 5 in 2013; it is still actively developed under a BSD licence. People run it as a zettelkasten, a project journal or a bug tracker, because any tiddler can be transcluded into another and pulled back out with a filter. That answers the problem every note app hits: something written for one purpose belongs somewhere else too.

Deploy TiddlyWiki on Railway and you get the Node.js client-server edition rather than the single-file version, so the browser saves each edit straight to the server the moment you click the tick. This template runs one service, `tiddlywiki`, built from [github.com/gridalpha/tiddlywiki-railway](https://github.com/gridalpha/tiddlywiki-railway) on top of the official `tiddlywiki` npm package. A volume is mounted at `/data`, the wiki folder lives at `/data/wiki`, and every tiddler is written there as its own plain-text file. A small companion process in the same container answers the platform health check, so the wiki itself can stay behind a password. Self-host TiddlyWiki this way and there is no database to run and no external storage to wire up.

![Diagram of the TiddlyWiki service and its volume on Railway](https://res.cloudinary.com/rroe4rtk/image/upload/v1789020498/tiddlywiki-architecture.png)

## Getting Started with TiddlyWiki on Railway

Open the generated Railway domain and the browser asks for a username and password before showing anything. The username is `admin` unless you changed `TW_USERNAME`, and the password is whatever `TW_PASSWORD` holds — the template generates one at deploy time, so copy it from the Variables tab or set your own there. There is no registration screen and no default credential to change afterwards: a TiddlyWiki server has exactly one account.

The wiki opens on a short `Getting started` note. Click **+** at the top of the sidebar to create your first tiddler, give it a title, type some text and click the tick; the cloud icon turns solid once the server has confirmed the write. Test that round trip first: it proves the volume is mounted and writable. Sidebar search finds notes by title or full text, and **$:/ControlPanel** behind the gear icon renames the wiki, switches palette and installs plugins. Link notes by typing `[[Another note]]` anywhere — that is the whole mechanism, and everything else is built on it.

![Two TiddlyWiki notes open in the story river](https://res.cloudinary.com/rroe4rtk/image/upload/v1789020500/tiddlywiki-wiki.png)
![Editing a TiddlyWiki note with the formatting toolbar](https://res.cloudinary.com/rroe4rtk/image/upload/v1789020501/tiddlywiki-editor.png)
![TiddlyWiki sidebar search matching two notes](https://res.cloudinary.com/rroe4rtk/image/upload/v1789020503/tiddlywiki-search.png)

## About Hosting TiddlyWiki

TiddlyWiki is a wiki you can reprogram from inside itself. Notes, configuration, themes and the interface are all tiddlers, so a filter that lists notes works identically on the toolbar buttons. People self-host it for that flexibility, and because one text file per note means nothing is locked in.

- **Transclusion** — write a fact once, pull it into as many notes as you like
- **Filters** — a small query language driving lists, tag clouds and dashboards
- **Wikitext or Markdown** — the Markdown plugin ships in the box
- **Plugin library** — KaTeX maths, CodeMirror editing, highlighting and maps, installed from inside the app
- **Themes and palettes** — restyle the wiki from the Control Panel
- **Plain-file storage** — each tiddler is a `.tid` file you can grep, diff or commit

The architecture is deliberately small. The `tiddlywiki` service runs TiddlyWiki's own Node.js server, serving the wiki over HTTP and writing each save to the attached volume. Because that server treats the wiki folder as its single source of truth, the deployment runs one replica by design, with no second writer to disagree with the first.

## Why Deploy TiddlyWiki on Railway

Railway removes the parts of self-hosting that have nothing to do with writing.

- HTTPS and a public domain are issued automatically
- The volume persists your wiki folder across every redeploy
- The health check watches the wiki, not just the container
- Password protection is on from the first request
- Deploys build from a public repository, so upgrades are one click
- Usage-based billing suits a service that idles most of the day

## Common Use Cases

- **Personal knowledge base** — link atomic notes and let the connections organise them
- **Project or research journal** — entries tagged by project, with filters producing per-project views
- **Team reference wiki** — runbooks and onboarding notes on one password-protected URL
- **Structured lists** — reading lists, recipes or contacts built from tiddler fields

## Dependencies for TiddlyWiki

- **`tiddlywiki` (npm)** — the application, installed at the 5.x major from the official package
- **`node:22-bookworm-slim`** — the base image the service builds on
- **A Railway volume** — mounted at `/data`, holding the wiki folder

TiddlyWiki has no database, cache or object-storage dependency; its persistence layer is the filesystem. That is why the volume is the one thing the template cannot do without.

### Environment Variables Reference

| Variable | Default | What it does |
|---|---|---|
| `TW_USERNAME` | `admin` | The single account that can read and write the wiki |
| `TW_PASSWORD` | generated | That account's password; set your own to choose it |
| `TW_SITE_TITLE` | `My TiddlyWiki` | Wiki title, applied on the first boot only |
| `TW_READERS` | empty | Set to `(anon)` to publish a read-only wiki |
| `TW_GZIP` | `yes` | Compress responses; the payload drops to about 500 KB |
| `TW_PATH_PREFIX` | empty | Serve the wiki under a sub-path |

`TW_SITE_TITLE` and `TW_SITE_SUBTITLE` seed tiddlers when the wiki folder is created and are ignored afterwards, so the Control Panel renames an existing wiki.

### Deployment Dependencies

- Source repository: [github.com/gridalpha/tiddlywiki-railway](https://github.com/gridalpha/tiddlywiki-railway)
- Upstream project: [github.com/TiddlyWiki/TiddlyWiki5](https://github.com/TiddlyWiki/TiddlyWiki5)
- npm package: [npmjs.com/package/tiddlywiki](https://www.npmjs.com/package/tiddlywiki)
- Documentation and demo: [tiddlywiki.com](https://tiddlywiki.com)

## Hardware Requirements for Self-Hosting TiddlyWiki

| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 0.5 vCPU | 1 vCPU |
| RAM | 256 MB | 512 MB |
| Storage | 1 GB volume | 5 GB volume |
| Runtime | Node.js 20+ | Node.js 22 |

TiddlyWiki holds the whole wiki in memory, so RAM scales with how much you have written rather than with traffic. A few thousand text notes fit inside 512 MB; storage is dominated by images you paste in.

## Self-Hosting TiddlyWiki

TiddlyWiki installs as a global npm package. These commands create a wiki folder and start the server with a password:

```
npm install -g tiddlywiki
tiddlywiki mywiki --init server
tiddlywiki mywiki --listen host=0.0.0.0 port=8080 username=admin password=changeme
```

`--listen` takes `name=value` pairs rather than flags: `gzip=yes`, `readers=(anon)` to let anyone read while only you write, `path-prefix=/wiki`. In a container the Dockerfile is three instructions:

```
FROM node:22-bookworm-slim
RUN npm install -g tiddlywiki
CMD ["tiddlywiki", "/data/wiki", "--listen", "host=0.0.0.0", "port=8080"]
```

Mount a volume at `/data` and back it up by copying `/data/wiki` — ordinary text, so git works well.

## How Much Does TiddlyWiki Cost to Self-Host?

TiddlyWiki is free and open source under the BSD 3-Clause licence, with no paid tier, seat limits or feature gating, and every plugin in the official library is free too. The only cost on Railway is infrastructure: a small container that idles most of the day, plus the volume holding your notes. Unlike a subscription, it does not cost more as you write more.

## FAQ

**What is TiddlyWiki?**

An open-source personal web notebook built around tiddlers — small, individually addressable notes that link to and embed each other. It runs either as a single HTML file or, as here, a Node.js server.

**What does this Railway template deploy?**

One service running TiddlyWiki's Node.js server, with a volume at `/data` holding the wiki folder. There is no database or supporting service to configure, and the wiki is password-protected from the first request.

**Why does the template include a volume instead of a database?**

TiddlyWiki's storage format is one plain-text file per note in a wiki folder, and the volume is that folder. Without it your notes would vanish on the next deploy, since a container's filesystem is discarded each time.

**How do I sign in to my self-hosted TiddlyWiki?**

The browser prompts for HTTP basic auth on the first request. Use `TW_USERNAME`, which defaults to `admin`, and the password in `TW_PASSWORD`, which the template generates at deploy time and shows in the Variables tab.

**Can I make my TiddlyWiki public to read but private to edit?**

Yes. Set `TW_READERS` to `(anon)` and redeploy. Anonymous visitors can then read every note while writes still require your password.

**How do I back up or migrate a self-hosted TiddlyWiki?**

Copy the `/data/wiki` directory. It holds one `.tid` file per note plus a `tiddlywiki.info` manifest, so it can go into git or another TiddlyWiki server unchanged. TiddlyWiki 5 has one set of credentials rather than per-user logins, so several editors share the single account.



## Similar templates

- [Libredesk - Complete Setup](https://railway.com/deploy/libredesk-complete-setup) — Complete self-hosted omnichannel customer support desk.
- [Paperless-ngx](https://railway.com/deploy/paperless-ngx-3) — Paperless-ngx — document management with OCR and full-text search
- [Instatic CMS - Postgres](https://railway.com/deploy/instatic-cms-postgres) — Design, build and manage powerful static sites from state-of-the-art CMS

Open this page in a browser: https://railway.com/deploy/tiddlywiki
