---
title: "Deploy Koillection collection manager"
description: "Protected collection management with PostgreSQL and durable uploads."
category: "Other"
url: https://railway.com/deploy/koillection-collection-manager
---

# Deploy Koillection collection manager

Protected collection management with PostgreSQL and durable uploads.

**[Deploy Koillection collection manager on Railway](https://railway.com/template/koillection-collection-manager)**

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

## Template content

### Koillection

- **Image:** koillection/koillection:1.8.3@sha256:9648cd4e2bb97351f1e7b27787e2ec1ff537f18180b97df7988aa50cf9b38625
- **Start command:** `/bin/bash -ec 'until (echo >/dev/tcp/$DB_HOST/$DB_PORT) 2>/dev/null; do sleep 2; done; exec /app/public/docker/entrypoint.sh'`
- **Health check:** /api

### Koillection PostgreSQL

- **Image:** postgres:16.10-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297

### Koillection Gateway

- **Image:** caddy:2.11.4-alpine@sha256:5f5c8640aae01df9654968d946d8f1a56c497f1dd5c5cda4cf95ab7c14d58648
- **Start command:** `/bin/sh -ec 'password_hash="$(caddy hash-password --plaintext "$GATEWAY_PASSWORD")"; printf "%s\n" "$GATEWAY_CONFIG" | sed -e "s|__USERNAME__|$GATEWAY_USERNAME|g" -e "s|__PASSWORD_HASH__|$password_hash|g" -e "s|__UPSTREAM__|$UPSTREAM|g" >/tmp/Caddyfile; exec caddy run --config /tmp/Caddyfile --adapter caddyfile'`
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Koillection collection manager on Railway

Koillection is a flexible self-hosted collection manager for books, games, media, stamps, equipment, and other physical or digital collections with custom metadata and uploads.

## About Hosting Koillection collection manager

The template runs immutable Koillection 1.8.3, private PostgreSQL 16, durable database and upload volumes, and a public gateway. Generated gateway credentials protect first-owner setup and all later registration while normal application login and bearer APIs remain available.

## Why Deploy Koillection collection manager on Railway

Railway creates HTTPS, private database networking, generated secrets, health-gated startup, and two persistent volumes. The application waits for PostgreSQL before applying its 120-migration chain, avoiding first-boot ordering failures.

## Common Use Cases

- Catalog physical collections with custom fields and photos
- Track wishlists, inventories, and loans
- Integrate collection data through Koillection’s API

## Dependencies for Koillection collection manager Hosting

The deployment uses [Koillection](https://github.com/benjaminjonard/koillection), [PostgreSQL](https://www.postgresql.org), and [Caddy](https://caddyserver.com).

### Deployment Dependencies

- Koillection 1.8.3
- PostgreSQL 16
- Caddy gateway
- Two 5 GB Railway volumes


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — [Jul'26] 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/koillection-collection-manager
