---
title: "Deploy redmine-template"
description: "Redmine — the classic open-source project management, one click"
category: "Other"
url: https://railway.com/deploy/redmine-template
---

# Deploy redmine-template

Redmine — the classic open-source project management, one click

**[Deploy redmine-template on Railway](https://railway.com/template/redmine-template)**

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

- **Creator:** Nameless 's Projects
- **Category:** Other
- **Total deploys:** 1

## Template content

### Redmine

- **Image:** redmine:7.0
- **Health check:** /login
- **Public domain:** Yes

### Postgres

- **Image:** postgres:16-alpine

## Documentation

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/redmine-template)

One-click Redmine: the classic open-source project management web app (issues, Gantt charts, wikis, forums, time tracking), running the official `redmine` Docker image on PostgreSQL. Everything is wired for you — database credentials, private networking, persistent upload storage, and automatic schema migrations on every start. No deploy-form inputs: secrets are generated per deployment and never need your attention.

**First login:** the app creates a default administrator `admin` / `admin`. On first login Redmine forces you to set a new password. Then go to **Administration → Load the default configuration** (one click) so trackers, roles, and issue statuses are created — the official image ships without them, and issue creation fails until this is done once.

# Deploy and Host

Deploying Redmine via this template gives you a production-shaped install in about two minutes: a `redmine:7.0` web service exposed on a Railway domain and a `postgres:16-alpine` database that is reachable only over Railway's private network. Both services restart automatically on failure, the web service has an HTTP healthcheck on `/login`, and schema migrations (`rake db:migrate`) run automatically on every deploy — including version upgrades of the Redmine image.

## About Hosting

Hosting Redmine yourself means your projects, issues, and attachments never leave infrastructure you control. On Railway this template provisions:

| Service | Image | Notes |
|---|---|---|
| Redmine | `redmine:7.0` (official image) | Public HTTP domain; listens on the Railway-provided port; healthcheck `GET /login`; `ON_FAILURE` restart policy (max 10 retries) absorbs the first-boot race while Postgres initializes |
| Postgres | `postgres:16-alpine` | Private networking only; data persists on a volume at `/var/lib/postgresql` |

Persistent storage: uploaded files and attachments live on a dedicated volume mounted at `/usr/src/redmine/files`, so they survive redeploys and restarts. Database variables are wired by reference — Redmine reads the Postgres service's password and private hostname via `${{...}}` expressions, so there is nothing to type. `SECRET_KEY_BASE` is generated with `${{secret(64,"hex")}}` per deployment; it is stored, stable across redeploys, and must never be rotated or deleted afterwards (rotation invalidates every active session). Postgres's `POSTGRES_PASSWORD` is likewise generated fresh per deployment.

Post-deploy steps (two minutes): open your Railway domain, log in as `admin` / `admin`, accept the forced password change, then click **Administration → Load the default configuration**. Optional: enable the REST API under **Administration → Settings → API** and grab your key from **My account**.

## Why Deploy

- **Zero-config**: database host/user/password/database name are all resolved automatically — Railway references plus the official images' own sane defaults. No deploy-form inputs at all.
- **Official images only**: pinned `redmine:7.0` and `postgres:16-alpine`, no custom build step, no forks, upgrades are a tag bump.
- **Durable by default**: uploads on a Railway volume, database on its own volume, sessions stable across redeploys thanks to a persisted `SECRET_KEY_BASE`.
- **Self-healing boot**: the Redmine image starts migrating immediately and does not wait for the database; the `ON_FAILURE` restart policy (max 10 retries) plus the `/login` healthcheck absorbs that race automatically.
- **Private database**: Postgres has no public endpoint — only Redmine can reach it, over Railway's private network.

## Common Use Cases

- Teams replacing spreadsheets and email with structured issue tracking, roadmaps, and Gantt views.
- Software projects needing per-project wikis, forums, file repositories, and time tracking in one place.
- Internal helpdesks and IT ticketing with granular roles and workflows.
- Agencies managing multiple client projects with separate members, permissions, and activity feeds.
- Organizations that require a self-hosted, open-source project tracker with no per-seat licensing.

## Dependencies for

Redmine needs a PostgreSQL 14+ database (Redmine 7.0 line), persistent disk for uploaded files, and a stable session secret. This template bundles all of them.

### Deployment Dependencies

- **PostgreSQL 16** (`postgres:16-alpine`) with its own volume at `/var/lib/postgresql`; password generated per deployment via `${{secret(32)}}`.
- **Redmine 7.0** (`redmine:7.0`, official image) with a volume at `/usr/src/redmine/files` for uploads; connects to Postgres through `${{Postgres.RAILWAY_PRIVATE_DOMAIN}}` and `${{Postgres.POSTGRES_PASSWORD}}`; `SECRET_KEY_BASE` via `${{secret(64,"hex")}}`.
- **Railway private networking** — no public database endpoint; **Railway volumes** — two persistent disks; **HTTP healthcheck** on `/login`; **ON_FAILURE restart policy** (max 10 retries).
- First-run data (roles, trackers, issue statuses) is loaded by you in the admin UI after the first login, as described above.


## 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/redmine-template
