---
title: "Deploy Thingport"
description: "Self-hosted 3D-print model library and importer"
category: "Other"
url: https://railway.com/deploy/deploy-thingport-3d-print-model-library
---

# Deploy Thingport

Self-hosted 3D-print model library and importer

**[Deploy Thingport on Railway](https://railway.com/template/deploy-thingport-3d-print-model-library)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/deploy-thingport-3d-print-model-library/manifest.json

- **Creator:** onepush
- **Category:** Other

## Template content

### frontend

- **Image:** ghcr.io/onepush-dev/thingport-frontend:1.5.0-r2
- **Health check:** /healthz
- **Public domain:** Yes

### Postgres

- **Image:** postgres:16-alpine@sha256:aa6cb33cf4c19c765cefcf48d96176258800870a9a1e930ad126200f9d825139

### flaresolverr

- **Image:** ghcr.io/onepush-dev/thingport-flaresolverr:3.5.2

### backend

- **Image:** ghcr.io/onepush-dev/thingport-backend:1.5.0-r2

## Documentation

# Deploy and Host self hosted Thingport (3D Print Model Library) on Railway

Thingport is an open-source, self-hosted 3D print model library for MakerWorld, Printables and Thingiverse models.

## About Hosting Thingport open-source software on Railway (self hosted Thingport template)

Running Thingport on Railway keeps your models, plates, thumbnails and account data in services you control.

## Why Deploy Thingport, the self-hosted 3D print model library on Railway (Railway Free Trial)

Railway saves you buying hardware or running a server, though you rely on a hosted platform. The template deploys four wired services, with the owner account pre-created and public sign-up closed.

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 Thingport 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 Thingport self hosting

Thingport needs four services; choose how much server work you want to do.

| Provider | What You Get with Railway | What You Get with the Other Provider |
| --- | --- | --- |
| DigitalOcean | Four services from one template, with a public domain and private networking. | A droplet you configure yourself, including Docker, firewall, TLS and backups. |
| AWS | The four services in one managed project, with no separate instance to maintain. | Many services you assemble yourself, with fine control but more setup first. |
| Hetzner | Four services ready in one click, so you only manage the app and its data. | A low-cost server where you run Docker Compose yourself, with full control. |

## Common Use Cases for hosted Thingport

- **Importing from model sites:** Bookmark a model on MakerWorld, Printables, Thingiverse or MyMiniFactory and Thingport copies it, so it survives author removal.
- **Keeping a synced collection current:** New models saved to a supported site collection can arrive in your library automatically.
- **One place for previews and print files:** Each model keeps its 3D preview, plates and supporting files together.
- **Sharing within your household:** Everyone signs in to the same instance and shares collections without your login.
- **Optional AI categorisation:** Add your own provider key for category suggestions; the app works without it.

## Dependencies for Thingport Docker hosted on Railway

Four services make up this template, and only the frontend is public. This is independent community packaging, not affiliated with the Thingport project.

### Deployment Dependencies for Managed Thingport Service (four services: nginx frontend (public), backend API with /app/storage volume, Postgres 16, private FlareSolverr)

The frontend is public nginx on port 8080; the backend API runs privately and writes to /app/storage.

| Variable | Service | Purpose |
| --- | --- | --- |
| POSTGRES_PASSWORD | Postgres | Password for the postgres superuser. Railway generates it for each deploy. |
| PGDATA | Postgres | Postgres data directory, a subfolder of the attached volume. |
| DATABASE_URL | backend | Postgres connection string for the backend, built from the Postgres service's password and private domain. |
| AUTH_SECRET | backend | Secret that signs login tokens. Railway generates it for each deploy. Changing it logs everyone out. |
| THINGPORT_ADMIN_PASSWORD | backend | Password for the owner account (admin@example.com), created on first boot. Railway generates it for each deploy. |
| PUBLIC_URL | backend | Public HTTPS address of the app, taken from the frontend's Railway domain. First-run default, later managed in Administration. |
| CORS_ORIGINS | backend | Browser origins allowed to call the API. Defaults to the frontend's public domain. |
| FLARESOLVERR_URL | backend | Private-network address of the FlareSolverr service. First-run default, later managed in Administration. |

### Implementation Details for Thingport (thingport-frontend:1.5.0-r2 adds a Railway nginx.conf (dual-stack 8080, /healthz, proxies /api to backend); thingport-backend:1.5.0-r2 adds a one-time owner bootstrap; thingport-flaresolverr:3.5.2 listens on ::; postgres:16-alpine pinned; backend has no Railway healthcheck because it binds 8000)

The frontend uses a Railway nginx.conf listening on IPv4 and IPv6 at port 8080, serving /healthz and proxying /api.

## How does Thingport compare against other tools

### Thingport vs Manyfold (Manyfold Alternative)

- **Focus:** Thingport imports and syncs models from MakerWorld, Printables and Thingiverse.
- **Collections:** Synced collections can bring new bookmarks in automatically.
- **Previews and files:** Each model gets 3D previews and plain files.
- **Where Manyfold may suit you better:** If you want a library built mainly around local files.

### Thingport vs bookmarks on Printables or Thingiverse (Bookmark Alternative)

- **Permanence:** A bookmark breaks when an author removes a model, while Thingport keeps your own copy.
- **Offline access:** Stored models stay available when the original site is unreachable.
- **Organisation:** Tags, collections and search work across every provider in one place.
- **Where bookmarks win:** They need no server and show the latest version.

### Thingport vs a plain folder of STL files (Folder of STL Files Alternative)

- **Metadata:** Descriptions, authors, tags and source links sit next to each file.
- **Previews:** View a model in the browser without opening a slicer.
- **Sharing:** People on one instance can share collections with each other.
- **Where a plain folder wins:** It is simpler and easier to back up.

### Thingport with Docker Compose vs Railway (Docker Compose Alternative)

- **Setup:** The Railway template deploys four services and generates secrets.
- **Control:** Compose on your own hardware gives direct control over disks, networking and data.
- **Hosting cost:** Railway bills by usage; an owned home server may cost less.
- **Where Compose wins:** If you want full control or your own network, run Compose yourself.

## How to use Thingport on Railway?

1. Open the frontend's public domain and sign in as admin@example.com. The password is in the backend service variables under THINGPORT_ADMIN_PASSWORD.
2. Change the owner email and password right away.
3. Go to Administration, then Overview, then System Health, and click Run full test. Fix anything marked Required or Recommended that isn't green.
4. Import one model to confirm the import path works.
5. Invite your people from Administration. Public sign-up closes after the owner is created, unless you set THINGPORT_OPEN_REGISTRATIONS=true before the first boot.

If something looks wrong, check the health endpoints. The frontend /healthz route is static and only shows nginx is up, while the API health is at /api/health.

```
https://your-domain/healthz      frontend, static nginx check
https://your-domain/api/health   backend API health
```

## How to self host Thingport on other VPS Services (Thingport self hosting guide)

### Clone the Repository

Thingport publishes pre-built images on GHCR, so nothing needs building. Start from a fresh folder on any Linux host with Docker.

```bash
mkdir thingport && cd thingport
```

### Install Dependencies

You need Docker with the Compose plugin; the images carry their own runtime.

### Configure Environment Variables

Save the compose file from the upstream README Docker Compose section, then create a `.env` file next to it, or let the upstream install.sh helper write both. AUTH_SECRET and POSTGRES_PASSWORD are required.

```bash
echo "AUTH_SECRET=$(openssl rand -hex 32)" > .env
echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)" >> .env
echo "WEB_PORT=80" >> .env
```

Warning: on stock upstream the first account you register becomes admin. Register your owner account before exposing the instance to anyone else.

Set PUBLIC_URL to your-domain in .env before the first start; it is read only on the first run, then managed in Administration, then Auth.

### Start the Thingport Application

Run `docker compose up -d`, then open the host on WEB_PORT.

## Official Pricing of Thingport (Thingport pricing)

Thingport is AGPL-3.0-only open-source software and FlareSolverr is MIT licensed. Costs depend on your host and storage.

## Thingport hosted vs self hosted comparison (Pricing, features, costs, and more)

Thingport is free AGPL-3.0-only software with no hosted plan; you choose where to run it.

### Monthly cost of self hosting Thingport on Railway

Railway bills by usage, so cost depends on memory, CPU, model volume and running services.

### System Requirements for Hosting Thingport on a VPS

A VPS needs Docker plus enough memory and disk for Postgres, the backend, FlareSolverr and models.

## Frequently Asked Questions (FAQs)

### How do I sign in to my Thingport instance on Railway?

Sign in as admin@example.com with the password stored in the backend service's THINGPORT_ADMIN_PASSWORD variable.

### Can strangers register on my instance?

No. Public sign-up closes after the owner account is created on first boot; invite people from Administration instead.

### Why does the backend have no Railway healthcheck?

The backend binds port 8000, while Railway probes the injected PORT of 8080, so a check would always fail.

### What does FlareSolverr do?

It helps Thingport import models from Cloudflare-protected sites. Change its address later in Administration, then Connections, then FlareSolverr.

### What happens if I change AUTH_SECRET?

Everyone is logged out, because the secret signs every login token.

### What should I back up?

Back up the /app/storage volume, which holds your models, plates and thumbnails, and the Postgres database that holds your library records.


## 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/deploy-thingport-3d-print-model-library
