---
title: "Deploy Simple HTTP Cron"
description: "A lightweight web app for scheduling HTTP requests"
category: "Automation"
url: https://railway.com/deploy/simple-http-cron
---

# Deploy Simple HTTP Cron

A lightweight web app for scheduling HTTP requests

**[Deploy Simple HTTP Cron on Railway](https://railway.com/template/simple-http-cron)**

- **Creator:** Isaias Valle's Projects
- **Category:** Automation
- **Total deploys:** 4

## Template content

### simple-http-cron

- **Source:** guitartsword/simple-http-cron
- **Public domain:** Yes

## Documentation

# Deploy and Host Simple HTTP Cron on Railway

Simple HTTP Cron is a lightweight web app for scheduling HTTP requests using cron expressions. Define jobs with any HTTP method, custom headers, and a request body — then set a cron schedule and let the server fire them automatically.

## About Hosting Simple HTTP Cron

Hosting Simple HTTP Cron on Railway involves deploying a single Node.js (Express) service built from the included Dockerfile. The app runs on port 8000 and persists scheduled jobs to a JSON file. **This template** handles all the setup automatically: it generates random credentials via `${{ secret() }}`, mounts a persistent volume at `/app/data` for `db.json`, and exposes the service publicly. All routes — including the UI — are protected by HTTP Basic Auth, keeping your scheduler secure from the moment it's deployed.

## Common Use Cases

- **Webhook automation** – fire a POST to a webhook URL (Slack, Discord, n8n, Zapier) on a schedule without a separate cron server
- **API polling** – periodically call an external REST API to trigger data ingestion or cache invalidation
- **Health pings** – send a GET request to an uptime-monitoring service (e.g. Better Uptime, UptimeRobot heartbeat) at a fixed interval

## Dependencies for Simple HTTP Cron Hosting

- **Node.js 18+** – the runtime (provided by the `node:18-alpine` Docker image)
- **Persistent volume** – a Railway volume mounted at `/app/data` to survive redeploys

### Deployment Dependencies

- [Node.js 18 Alpine Docker image](https://hub.docker.com/_/node)
- [node-cron](https://github.com/node-cron/node-cron) – in-process cron scheduler
- [express-basic-auth](https://github.com/LionC/express-basic-auth) – single-user HTTP Basic Auth middleware
- [axios](https://github.com/axios/axios) – HTTP client used to execute scheduled requests

### Implementation Details

**This template** pre-configures everything out of the box:

- `ADMIN_USERNAME` and `ADMIN_PASSWORD` are set to random values using `${{ secret() }}` — no manual credential setup needed.
- A persistent volume is already mounted at `/app/data` so `db.json` survives redeploys.

After deploying, retrieve your generated credentials from the service's **Variables** tab to log in to the UI.

## Why Deploy Simple HTTP Cron 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 Simple HTTP Cron 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.



## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/simple-http-cron
