Deploy Calends
Self-hosted subscription ledger with renewal reminders and reports
calends
Just deployed
/data
Deploy and Host self hosted Calends on Railway
Calends is a private, single-owner ledger for subscriptions, shared plans and prepaid balances, and this Railway template runs the unmodified upstream image as one container with a SQLite volume.
About Hosting Calends open-source software on Railway (self hosted Calends template)
This Railway template is independent community packaging of the unmodified Calends 1.35.0 image from imetn/calends, which is MIT licensed. It is not affiliated with or endorsed by the upstream authors. It runs as one container with a single SQLite ledger on a persistent volume at /data.
Why Deploy Calends, the self-hosted subscription ledger on Railway
Wallos already covers basic self-hosted subscription tracking, so Calends earns its place through flexible billing cycles, shared plans, renewal reminders across many channels, and MCP access for AI assistants.
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 Calends 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 Calends self hosting
Calends runs as one container with one SQLite volume, so your hosting choice mostly depends on how much server work you want to do.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | A template that sets up the container, the /data volume, HTTPS domain and generated sign-in values. | A VPS you control fully, including Docker, firewall, reverse proxy and backups. |
| AWS | The same template flow, with no networking or instance sizing to design first. | Wide control over networking, storage and instance types, more than a single ledger usually needs. |
| Hetzner | Managed deploys and volume handling, with usage-based billing shown in the dashboard. | Low-cost servers with generous resources, where you handle updates and security yourself. |
Choose Railway for a working ledger quickly, or a VPS if you prefer to run the server yourself.
Common Use Cases for hosted Calends
- Single-owner subscription ledger: Track streaming, cloud, and software subscriptions in one private place, with renewals, trials, and total monthly cost kept in view.
- Shared plans and prepaid balances: Split a family plan or gift card balance with friends, record who has paid, and estimate when a prepaid balance runs out.
- Flexible billing and usage tracking: Model monthly, yearly, custom, and lifetime purchases, including trials, pauses, and usage meters for metered services.
- Multi-currency reporting: Convert past charges using historical exchange rates so spending reports stay accurate across currencies.
- Reminders and integrations: Get renewal reminders by email, Telegram, Slack, Discord, ntfy, or webhooks, and subscribe to a private ICS calendar feed or connect an MCP-compatible assistant.
Dependencies for Calends Docker hosted on Railway
Calends deploys as one Railway service on a prebuilt container image, with no separate database server.
Deployment Dependencies for Managed Calends Service (one container with SQLite)
The template creates one service named calends. Railway uses the health check at /healthz to confirm the service is up.
Implementation Details for Calends (unmodified Calends 1.35.0 image)
The service runs ghcr.io/onepush-dev/calends:1.35.0, the unmodified upstream ghcr.io/imetn/calends:1.35.0 image, which runs as root.
OWNER_PASSCODE is a 24-character value and your first owner password. Sign in with it from the Variables tab.
How does Calends compare against other tools
Calends vs Wallos (Wallos Alternative)
- Shared ground: Both are self-hosted subscription trackers, so logging recurring charges and renewal dates works much the same way.
- Where Calends focuses: Calends leans toward a private, single-owner ledger with shared plans, prepaid balances, usage meters and historical exchange rates.
- Reminders and feeds: Calends sends renewal reminders through email, Telegram, Slack, Discord, ntfy and webhooks, and offers a private ICS calendar feed.
- Where Wallos may suit you: If you want a simpler tracker with a smaller feature set, Wallos may be the lighter choice.
Calends vs a spreadsheet (Spreadsheet Alternative)
- Automatic calculations: Calends works out renewal dates, cycles, trials and pauses for you, so you do not maintain formulas by hand.
- Currency handling: Calends stores historical exchange rates for past charges and uses current rates for forecasts.
- Reports and reminders: Spending trends and renewal reminders come built in, with no separate chart or alert setup.
- Where a spreadsheet wins: It is flexible for ad hoc analysis, costs nothing to start, and can hold data that does not fit a subscription model.
Calends with Docker vs Railway (Docker and Railway Hosting)
- Control versus convenience: Docker on your own machine gives full control over the host, networking and volume location.
- Railway setup: The template deploys one unmodified upstream image with a volume at /data, a health check and generated sign-in values.
- Persistence: On Railway, keep one replica because the ledger is a single SQLite file on one volume, the same constraint as with Docker.
- Where Docker wins: If you already run a home server or VPS, Docker lets Calends sit beside your other services with no platform dependency.
Calends on Railway vs a VPS (VPS Alternative)
- Managed deployment: Railway runs the container, HTTPS domain and volume, while a VPS needs Docker, a reverse proxy and updates set up by you.
- Ongoing maintenance: On a VPS you handle operating system patches, backups and restarts, which gives more control at the cost of more upkeep.
- Where a VPS wins: A VPS is often better if you run several self-hosted apps on one machine and want predictable costs across them.
How to use Calends on Railway?
- Open the public URL Railway gives your Calends service and sign in with the
OWNER_PASSCODEvalue from the calends Variables tab. - Setup is already complete on first boot (
needsSetupis false), so a stranger's setup attempt is refused with a 409 response. - After your first successful sign-in the passcode is stored as a hash, and the variable no longer signs anyone in.
- Change the password in Settings so the ledger uses a password you chose.
- Keep one replica for this service, because the ledger is a single SQLite database on one volume.
- The optional upstream variables
TRUST_PROXY,BASE_PATHandNODE_OPTIONSare not required by this template, so you can leave them unset.
Check that the service is healthy with:
GET /healthz
How to self host Calends on other VPS Services (Calends self hosting guide)
Clone the Repository
Calends is maintained upstream at imetn/calends (MIT). Clone the upstream repository onto your server:
git clone https://github.com/imetn/calends.git
cd calends
Install Dependencies
The upstream flow runs as a Docker image. For the full options, see docs/self-hosting.md in the repository.
Configure Environment Variables
Set DATA_DIR to the directory where the SQLite ledger is kept (persist it in a volume), and set SITE_URL to your public HTTPS address, such as https://your-domain.
docker run -d --name calends --restart unless-stopped -p 127.0.0.1:8787:8787 \
-v calends-data:/data \
-e DATA_DIR=/data \
-e SITE_URL=https://your-domain \
-e OWNER_PASSCODE=your-passcode \
xizozhe/calends:1.35.0
Start the Calends Application
Start the container, then check its logs and open the app through your HTTPS reverse proxy at your-domain. Sign in with your owner password and change it in Settings.
Pricing and License of Calends (Calends pricing)
Calends is open-source software released under the MIT License, so you can self-host it for free, modify it, and redistribute it, provided you keep the copyright and license notices.
Calends hosted vs self hosted comparison (Pricing, features, costs, and more)
Calends is free MIT-licensed software, and this Railway template does not describe a hosted plan.
Monthly cost of self hosting Calends on Railway
Railway bills by usage, so the monthly cost depends on the RAM and CPU the service uses, the size of the volume holding the SQLite ledger, and any other services you attach.
System Requirements for Hosting Calends on a VPS
Calends runs as one Node process with one SQLite file, so a small VPS can handle a personal ledger.
Frequently Asked Questions (FAQs)
How do I sign in to Calends on Railway?
Open the service's Variables tab, copy the OWNER_PASSCODE value, then open your Railway domain and sign in with it. That passcode is your first owner password.
What is SETUP_TOKEN for?
SETUP_TOKEN is only used if no password exists yet, so a stranger cannot claim a fresh ledger on your public URL.
Does changing OWNER_PASSCODE later reset my login?
No. After your first successful sign-in, Calends stores the passcode as a salted hash and ignores the variable. To change your password, use Settings inside the app.
What is SITE_URL?
SITE_URL is the public HTTPS address of your app, already set to your Railway domain. Calends uses it to build links in renewal reminders and calendar feeds.
Why should I keep one replica?
Calends stores its ledger in a single SQLite file on one volume, so running more than one replica can cause data conflicts. Keep the replica count at one.
What should I back up?
Back up the /data volume, since it holds the SQLite ledger and the generated setup token.
Template Content
