Deploy Deploy notesd Markdown Notes Server
Self-hosted Markdown notes with offline mobile apps and sync.
notesd
Just deployed
/data
Deploy and Host self hosted notesd (Markdown Notes Server) on Railway
This template deploys notesd, a self-hosted Markdown notes server, as one Railway service with a persistent volume for your notes.
About Hosting notesd open-source software on Railway (self hosted notesd template)
Your notes live in a single SQLite data directory on a Railway volume mounted at /data, so you decide who holds them. Independent community packaging of the unmodified upstream image, not endorsed by the notesd project.
Why Deploy notesd, the self-hosted Markdown notes server on Railway (Railway Free Trial)
Railway runs notesd as one service with its owner account pre-created, a persistent volume and HTTPS handled for you. You still pay for usage on Railway.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying notesd on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for notesd self hosting
Choose based on how much server work you want.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | One click deploy with a /data volume for your notes and HTTPS handled for you. | A Droplet you manage, where you install Docker, set up the volume and configure HTTPS yourself. |
| AWS | A single service with persistent storage and health checks already wired, with no VPC or load balancer to configure. | Full control over EC2, networking and storage, which suits teams already running there but adds setup work. |
| Hetzner | Managed deployment from the template, with no server to patch or secure. | Low cost bare servers with generous resources, where you handle the OS, Docker and HTTPS. |
Railway removes most administration; a VPS gives more direct control.
Common Use Cases for hosted notesd
- Private Markdown notes synced to phone and desktop: Keep notes on your own server and sync them to Android, iPhone, Mac or web at one HTTPS address.
- Offline-first editing: Phone apps keep a full copy of your notes, so you can write, search and tag offline and sync later.
- Locked notes for sensitive text: Put passwords or private journal entries in locked notes, encrypted on your device with AES-256-GCM so the server only stores ciphertext.
- A few accounts for family or friends: Create extra accounts under Settings, Server, People, each with private notes and pictures.
- Markdown export: Run
notesd export --out DIRfor a one-time copy of your notes as Markdown files, or start the server with--mirror-dirto keep a folder of .md files up to date as you write, so your notes are never trapped in one app.
Dependencies for notesd Docker hosted on Railway
notesd runs as one container with data on a Railway volume. You set one value, generated by default.
Deployment Dependencies for Managed notesd Service (one service, SQLite data on a /data volume, no external database)
The template deploys one service named notesd from ghcr.io/onepush-dev/notesd:1.5.1. The health check uses /readyz.
- Port: 8080
- Volume:
/data - Template variable:
NOTESD_OWNER_PASSWORD
Implementation Details for notesd (ghcr.io/onepush-dev/notesd:1.5.1 runs the unmodified upstream 1.5.1 binary as root for the volume, with NOTESD_OWNER_USERNAME=admin baked in)
The image wraps the unmodified upstream 1.5.1 binary. NOTESD_OWNER_PASSWORD is generated per deploy and creates the owner admin on first start only.
How does notesd compare against other tools
notesd vs Joplin Server (Joplin Server Alternative)
- Scope: Joplin Server is a sync backend; notesd bundles its own server, web and native apps.
- Offline use: notesd's phone apps keep a full copy of your notes.
- Locked notes: notesd encrypts locked notes on the device, so the server stores only ciphertext for them.
- Where Joplin wins: Joplin has a long-established desktop app and a larger plugin ecosystem.
notesd vs Standard Notes (Standard Notes Alternative)
- Ownership: Standard Notes is hosted with self-hosting optional; notesd runs on a server you control.
- Storage: regular notes sit unencrypted on your server, so use disk encryption; only locked notes are end-to-end encrypted.
- Format: notesd stores every note as Markdown and can export it as
.mdfiles. - Where Standard Notes wins: its end-to-end encryption covers all notes and it has a mature hosted option.
notesd vs Obsidian Sync (Obsidian Sync Alternative)
- Model: Obsidian Sync is a paid add-on to a local vault app; notesd is a self-hosted server with its own apps.
- Storage: notesd keeps notes in SQLite on your server and can mirror them as a folder of Markdown files.
- Scope: notesd is a simple Markdown notes app focused on sync.
- Where Obsidian wins: its local-first vault model, plugins and linking features are much richer.
notesd with Docker vs Railway (Docker and Railway Hosting)
- Docker: a VPS gives full control of ports, volumes and firewalls; you handle updates and backups.
- Railway: the template creates one service with a
/datavolume and generates the owner password, so sign-in works without manual setup. - Volumes: back up the
/datavolume on Railway, because it holds every note. - Where Docker wins: a VPS gives direct control over network exposure, which the managed service does not.
How to use notesd on Railway?
Once the deploy finishes, follow these steps.
- Open the service's public URL from the Railway dashboard.
- Sign in as
adminwith theNOTESD_OWNER_PASSWORDvalue from the service's Variables tab. The owner account already exists, so there is no first-visitor sign-up to race. - Change the password in Settings, or run
notesd reset-password --username adminon the server (over railway ssh). Changing the variable later does nothing once the owner exists. Resetting signs the account out everywhere and does not affect locked notes. - Point the Android, iPhone or Mac app at the same HTTPS URL to sync. The iPhone app is built with Xcode until App Store release; the Android app is early access on Google Play.
- Add family or friends under Settings, Server, People. Each person gets their own private notes.
Check that the service is healthy with these endpoints. /readyz checks the database and /healthz checks the process. Both are public and expose no data.
curl https://your-domain/healthz
curl https://your-domain/readyz
How to self host notesd on other VPS Services (notesd self hosting guide)
Clone the Repository
Use the upstream project pinned to the 1.5.1 tag, not latest.
Install Dependencies
You need Docker on a 64-bit Linux server (x86-64 or ARM64). Docker is the only dependency the upstream flow requires.
docker run -d --name notesd --restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-v notesd-data:/data \
ghcr.io/cassiozen/notesd:1.5.1
Configure Environment Variables
Nothing needs to be set for a basic install. Create your account before exposing the server, because until it exists anyone who can reach the server could claim it:
docker exec -it notesd notesd create-owner --username YOUR_USERNAME
Then put HTTPS in front of 127.0.0.1:8080 with Caddy or Tailscale, so the apps connect at an address such as https://your-domain. Do not publish port 8080 on every interface over plain HTTP.
Start the notesd Application
Start the container with the command above, then check health at /readyz (database) and /healthz (process).
Official Pricing of notesd (notesd pricing)
notesd is MIT open-source software and free to self-host.
What you do pay for is the infrastructure underneath it. On a VPS it is the monthly server bill from your provider. Plan for the server, not the software.
notesd hosted vs self hosted comparison (Pricing, features, costs, and more)
notesd is free, MIT-licensed software with no paid hosted plan upstream, so you pay only for the server it runs on.
Monthly cost of self hosting notesd on Railway
Railway bills by usage, so the monthly cost depends on RAM and CPU use, the size of the /data volume, and how many other services you run.
System Requirements for Hosting notesd on a VPS
notesd needs 64-bit Linux (x86-64 or ARM64) or an Apple silicon Mac. Its SQLite data grows with your notes and pictures.
Frequently Asked Questions (FAQs)
How do I sign in to notesd on Railway?
Sign in as admin with the NOTESD_OWNER_PASSWORD value shown in the service's Variables tab.
Does changing NOTESD_OWNER_PASSWORD reset the password?
No. The variable only matters on the first start, so changing it later does nothing. Change the password in Settings, or run notesd reset-password --username admin on the server (over railway ssh). This signs the account out everywhere and does not affect locked notes.
Are my notes encrypted?
Regular notes are stored unencrypted on the server, so use disk encryption if that matters to you. Only locked notes are end-to-end encrypted on the device.
Which apps can I use with notesd?
You can use the web app in any browser, the Android app (early access on Google Play), the Mac app (macOS 14 or later on Apple silicon), or the iPhone app, which is built with Xcode until it reaches the App Store.
What should I back up?
Back up the /data volume, which holds every note, picture and account database. Keep that copy off the Railway service so you can restore it.
Can my family use the same server?
Yes, the server can hold a few accounts for family or friends, each with its own private notes.
Template Content
