Deploy Plain Week

Minimal offline-first weekly planner PWA with recurring tasks

Deploy Plain Week

Just deployed

/app/storage

Deploy and Host self hosted Plain Week (Weekly Planner) on Railway

Plain Week is a minimal, offline-first weekly planner with recurring tasks, and this Railway template runs it as a single container with SQLite on a volume. Independent community packaging of the unmodified upstream image, not affiliated with or endorsed by the Plain Week project.

About Hosting Plain Week open-source software on Railway (self hosted Plain Week template)

This template runs the unmodified upstream Plain Week 0.3.15 image, a minimal offline-first weekly planner, as one Railway service with SQLite on a volume at /app/storage.

Why Deploy Plain Week, the self-hosted weekly planner on Railway (Railway Free Trial)

Plain Week is MIT licensed and free to self-host, so your weekly plan can live on a server you control. Todoist is a hosted task app, which means your plan sits on its servers.

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 Plain Week 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 Plain Week self hosting

This compares the single-container Railway template with self-hosting.

ProviderWhat You Get with RailwayWhat You Get with the Other Provider
DigitalOceanA template deploy with the volume, HTTPS domain and health check wired up.A droplet you configure yourself, with full control over OS, Docker and proxy.
AWSOne service and volume from a template, with no cloud networking to build.Many services to combine, but you assemble the instance, storage and networking.
HetznerA hosted deploy with no server to patch, back up or keep running.Low-cost servers you manage directly, including updates and backups.

Choose Railway for the least setup, and a VPS when you want to own every layer of the stack.

Common Use Cases for hosted Plain Week

  • Planning one week on one screen: See Monday through Sunday side by side and type tasks straight into each day.
  • Repeating chores every N days: Set a recurring task to repeat every few days, weekly on chosen weekdays, or monthly on a fixed date, with an optional end date. Move one occurrence without touching the rest.
  • Carrying the planner on your phone and desktop: Install the offline-first PWA from the browser on either device.
  • Syncing devices through your own server: Create an account to share tasks across devices. Guest mode stays local if you never sign up.
  • Moving tasks in and out with JSON: Export all your tasks as JSON from Settings, then import them into another instance when you move servers or want a backup copy.

Dependencies for Plain Week Docker hosted on Railway

The template runs one container, one volume and two variables.

Deployment Dependencies for Managed Plain Week Service (one container with SQLite)

The template creates one service, plain-week, running FrankenPHP with the Laravel app. The service listens on port 8080.

Implementation Details for Plain Week (unmodified Plain Week 0.3.15 image plus a volume-ownership start script)

The image is ghcr.io/onepush-dev/plain-week:0.3.15-r1. SAAS_ENABLED stays false, so accounts are free and there is no billing.

The template sets two variables with zero manual inputs: APP_KEY, the generated Laravel encryption key (do not change it after first use), and APP_URL, the Railway public https domain.

How does Plain Week compare against other tools

Plain Week vs Todoist (Todoist Alternative)

  • Where Plain Week fits: One week sits on one screen, and you type "17:30 Gym" to set a time.
  • Recurring tasks: Plain Week repeats tasks every N days, weekly on chosen weekdays, or monthly.
  • Where Todoist is stronger: A mature hosted app that works across many platforms with no setup.
  • Hosting: Plain Week runs on your own server, so your sync data stays where you put it.

Plain Week vs TickTick (TickTick Alternative)

  • Focus: A narrow scope: week view, tasks, notes and subtasks.
  • Offline use: Data lives in IndexedDB and the app installs as a PWA, so it works without a connection.
  • Where TickTick is stronger: A broader hosted feature set beyond a weekly list.
  • Self-hosting: Plain Week is one container with SQLite on a volume, so you back up one storage path.

Plain Week vs Vikunja (Vikunja Alternative)

  • Shape: Vikunja is a self-hosted task manager, while Plain Week is a self-hosted weekly planner built around one week at a time.
  • Entry speed: Plain Week is built for typing straight into a day, which fits a plan-the-week habit.
  • Where Vikunja is stronger: Broader project and task organization for people managing many lists.
  • Footprint: Plain Week needs no database server, cache or queue, just the one container.

Plain Week with Docker vs Railway (Railway Hosting Alternative)

  • Docker: You run the image on any Docker host and handle HTTPS, the volume and the key yourself.
  • Railway: The template deploys one service with a volume at /app/storage and a generated APP_KEY, so you skip most of the setup.
  • Trade-off: Railway handles the platform; plain Docker gives more machine and network control.
  • Replicas: Keep one replica either way, because local persistent state does not span replicas.

How to use Plain Week on Railway?

  1. Open the public URL Railway gives your service and start planning straight away as a guest. Your tasks stay in the browser, and the app keeps working offline once it has loaded.
  2. If you want your tasks on more than one device, create an account on this server. The account syncs your work across devices, and your local tasks come with you when you sign up.
  3. Install it as an app from your browser's menu. Plain Week runs as an installable PWA on phone and desktop, so it opens like a native app.
  4. To back up or move your data, go to Settings, then Data, and export your tasks as JSON. You can import that file on any Plain Week instance.
  5. To check that the service is healthy, request the /up path on your domain. It should return a successful response:
curl https://your-domain/up

Sign-up is open by design upstream, so anyone who has the URL can register an account on your instance.

How to self host Plain Week on other VPS Services (Plain Week self hosting guide)

You can run Plain Week on any Linux VPS with Docker, using the upstream project's flow.

Clone the Repository

Clone the upstream project if you want the source or the deployment files:

git clone https://github.com/victor-falcon/plain-week.git
cd plain-week

Install Dependencies

Docker is all you need on the server. Keep about 256 MB of free memory available.

Configure Environment Variables

Generate an APP_KEY once and keep it, because changing it signs everyone out:

echo "base64:$(openssl rand -base64 32)"

Set APP_URL to your public address, such as https://your-domain. Beyond localhost, put an HTTPS reverse proxy in front of the app, since service workers need HTTPS.

Start the Plain Week Application

Run the pinned upstream image (0.3.15, not latest) with a storage volume:

docker run -d -p 127.0.0.1:8080:8080 -v plainweek-storage:/app/storage \
  -e APP_URL=https://your-domain -e APP_KEY="base64:your-generated-key" \
  ghcr.io/victor-falcon/plain-week:0.3.15

You can also use the deploy/docker-compose.yml file from the upstream repository. On Railway, the platform handles the HTTPS domain, the volume and restarts for you.

Pricing and License of Plain Week (Plain Week pricing)

Plain Week is MIT-licensed open-source software, so you can run it yourself for free and read or change the code. There is no license fee; you pay for the Railway resources it uses.

Plain Week hosted vs self hosted comparison (Pricing, features, costs, and more)

Upstream runs plainweek.eu, where optional device sync is a paid plan. Your only cost is the server.

Monthly cost of self hosting Plain Week on Railway

Railway bills by usage, so the monthly cost depends on the RAM, CPU, volume storage and services your instance uses.

System Requirements for Hosting Plain Week on a VPS

Plain Week runs as one container with SQLite on a volume, with no separate database, cache or mail server. Upstream notes about 256 MB of free memory.

Frequently Asked Questions (FAQs)

Do I need an account to use Plain Week?

No. Guest mode keeps your tasks in the browser and works offline, and an account is only needed if you want to sync devices across them.

Can strangers register on my instance?

Yes. Each account is separate, so keep the URL private, since this template has no built-in switch to close registration.

What happens if APP_KEY changes?

Everyone is signed out, and data encrypted with the old key can no longer be read. Generate the key once and keep it unchanged after first use.

Does email work out of the box?

MAIL_MAILER defaults to log, so verification and password reset emails are written to the logs rather than sent. To send mail, set MAIL_MAILER=smtp and the MAIL_* variables for your SMTP provider. Email verification never blocks the app, so it works without mail configured.

Are Google Calendar sync and push notifications enabled?

Not by default. They are optional upstream features configured with GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, and VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY and VAPID_SUBJECT, none set by the template.

What should I back up?

Back up the /app/storage volume, which holds the SQLite database file, or export your tasks as JSON per account from Settings.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52