---
title: "Deploy Frankfurter"
description: "Frankfurter 2.5: self-hosted exchange-rate API with central bank data."
category: "Other"
url: https://railway.com/deploy/frankfurter
---

# Deploy Frankfurter

Frankfurter 2.5: self-hosted exchange-rate API with central bank data.

**[Deploy Frankfurter on Railway](https://railway.com/template/frankfurter)**

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

- **Creator:** Agaz Self-Host
- **Category:** Other

## Template content

### frankfurter https://github.com/lineofflight.png

- **Image:** lineofflight/frankfurter:2.5.1
- **Start command:** `sh -c 'chown frankfurter:frankfurter /app/data; exec setpriv --reuid=frankfurter --regid=frankfurter --init-groups sh -c "bundle exec rake db:setup && exec bundle exec foreman start"'`
- **Health check:** /
- **Public domain:** Yes

## Documentation

# Deploy and Host Frankfurter on Railway

Frankfurter is an open-source currency API that tracks daily exchange rates published by central banks, including the European Central Bank. It serves latest and historical rates and time series as JSON, with no API key. Running your own instance removes rate limits and third-party availability from your checkout or reporting code.

## About Hosting Frankfurter

This template runs the official `lineofflight/frankfurter:2.5.1` image as one public service. On first boot, it creates a SQLite database on a Railway volume and starts backfilling history from its providers. Recent rates appear within a minute, and the full history takes longer. A scheduler in the same container fetches new rates every day. The API is read-only and needs no authentication. A few providers need free API keys, which you can add as variables; everything else works without them. The web server runs two Puma workers as an unprivileged user and fits the Hobby plan.

## Common Use Cases

- Converting prices in a shop or invoice system without paying for a rates API
- Historical exchange rates for reports, accounting and analytics
- A dependable rates endpoint for internal tools and spreadsheets

## Dependencies for Frankfurter Hosting

- `lineofflight/frankfurter:2.5.1` (official image)
- A Railway volume at `/app/data` for the SQLite database

### Deployment Dependencies

- [Frankfurter documentation](https://frankfurter.dev)
- [Frankfurter 2.5.1 release](https://github.com/lineofflight/frankfurter/releases/tag/v2.5.1)
- [Railway volumes](https://docs.railway.com/reference/volumes)

### Implementation Details

| Service | Source | Networking | Storage |
| --- | --- | --- | --- |
| frankfurter | `lineofflight/frankfurter:2.5.1` | public HTTPS | volume at `/app/data` |

Examples:

```bash
curl "https:///v2/rates?base=USD"es=EUR,JPY"
curl "https:///v2/rates?base=EUR"es=USD&amp;from=2024-01-01&amp;to=2024-01-31"
```

Optional provider keys (leave empty if you don't need those sources): `FRED_API_KEY`, `BANXICO_API_KEY`, `BOT_API_KEY`, `TCMB_API_KEY`, `BAM_API_KEY`, `BCCH_USER`, `BCCH_PASS`.

`WORKER_PROCESSES` (default 2) and `MAX_THREADS` (default 5) size the Puma server. The API allows cross-origin requests from any site, so browsers can call it directly.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by the Frankfurter project.

## Why Deploy Frankfurter 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 Frankfurter 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

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

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