---
title: "Deploy Solidtime"
description: "Private time tracking for teams, projects, tasks, and reports."
category: "Other"
url: https://railway.com/deploy/solidtime
---

# Deploy Solidtime

Private time tracking for teams, projects, tasks, and reports.

**[Deploy Solidtime on Railway](https://railway.com/template/solidtime)**

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

## Template content

### Postgres

- **Image:** postgres:17.3@sha256:0321e2252ebfeecb8bc1a899755084d29bce872953e1a5a3e25ec0860b739098

### Gotenberg

- **Image:** gotenberg/gotenberg:8.17.1@sha256:46e7b68adeadda1794a9ab194f1e2939f5b09ff21aadef6000e84102c9af6dd5
- **Health check:** /health

### Queue

- **Image:** solidtime/solidtime:0.18.0@sha256:e6c510be7da6d33f3949021d44f53585a9e34c2d76d115b3ed262ef44aa85c1c

### Scheduler

- **Image:** solidtime/solidtime:0.18.0@sha256:e6c510be7da6d33f3949021d44f53585a9e34c2d76d115b3ed262ef44aa85c1c

### Solidtime

- **Image:** solidtime/solidtime:0.18.0@sha256:e6c510be7da6d33f3949021d44f53585a9e34c2d76d115b3ed262ef44aa85c1c
- **Health check:** /login
- **Public domain:** Yes

## Documentation

# Deploy and Host Solidtime on Railway

Solidtime is an open-source time tracker for teams and freelancers. It organizes tracked hours around organizations, members, clients, projects, and tasks, then turns that data into detailed and shareable reports. Self-hosting keeps operational and time-entry data under your control while retaining Solidtime's browser-based workflow.

**Published on Railway:** https://railway.com/deploy/solidtime

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

## About Hosting Solidtime

Hosting Solidtime requires coordinated HTTP, scheduler, and queue-worker containers, PostgreSQL, Gotenberg for PDF rendering, and persistent storage for database and application files. This template pins the official Solidtime 0.18.0, PostgreSQL 17.3, and Gotenberg 8.17.1 images. Only the `Solidtime` service receives a Railway HTTPS domain; every dependency uses Railway private networking. Railway generates one application key and one database password per deployment, runs database migrations automatically, and enables registration so the first owner can create an account. Email is safely logged by default, so SMTP credentials remain optional and can be added after deployment.

## Common Use Cases

- Track team or freelance time against clients, projects, and tasks
- Review billable hours, project progress, and detailed reports
- Keep time-tracking data in a private, self-hosted deployment
- Export report PDFs through the included Gotenberg service

## Dependencies for Solidtime Hosting

- PostgreSQL 17.3 for users, organizations, projects, entries, sessions, queues, and migrations
- Gotenberg 8.17.1 for PDF report rendering
- Dedicated Solidtime scheduler and database-backed queue-worker processes
- Persistent Railway volumes for PostgreSQL and Solidtime's local application files

### Deployment Dependencies

- [Solidtime 0.18.0 release](https://github.com/solidtime-io/solidtime/releases/tag/v0.18.0)
- [Official Docker self-hosting guide](https://docs.solidtime.io/self-hosting/guides/docker)
- [Official production configuration reference](https://docs.solidtime.io/self-hosting/configuration)
- [Official container-mode documentation](https://docs.solidtime.io/self-hosting/container-mode)
- [Official CLI user-management documentation](https://docs.solidtime.io/self-hosting/cli-commands)
- [Umbrel Solidtime 0.18.0 deployment contract](https://github.com/getumbrel/umbrel-apps/tree/master/solidtime)

## Implementation Details

- **Images:** `Solidtime`, `Scheduler`, and `Queue` use the same immutable `solidtime/solidtime:0.18.0` image. Their supported container modes are `http`, `scheduler`, and `worker`; the worker runs `php /var/www/html/artisan queue:work`.
- **Networking:** only `Solidtime` is public on port `8000`. PostgreSQL and Gotenberg remain private, and `APP_URL` is exactly `https://${{Solidtime.RAILWAY_PUBLIC_DOMAIN}}`.
- **Health:** Railway checks the unauthenticated `/login` page because Railway currently rejects Solidtime's documented hyphenated health path in service configuration. The application endpoint `/health-check/up` remains available and was independently verified to return `{"success":true}`.
- **Persistence:** PostgreSQL mounts `/var/lib/postgresql/data` with `PGDATA` in a child directory. Solidtime mounts `/var/www/html/storage/app` without hiding the image's required framework cache and view directories.
- **Security:** no administrator credential is embedded. Registration is enabled so a fresh deployment is accessible: create the first owner account immediately, then set `APP_ENABLE_REGISTRATION=false` on `Solidtime` to prevent uninvited public sign-ups. Add the owner's email to `SUPER_ADMINS` on `Solidtime` only if `/admin` access is required.
- **Mail:** `MAIL_MAILER=log` avoids mandatory external credentials. To send notifications and password resets, change it to `smtp` and add provider-issued `MAIL_HOST`, `MAIL_PORT`, `MAIL_ENCRYPTION`, `MAIL_USERNAME`, `MAIL_PASSWORD`, and an appropriate sender address.

## Why Deploy Solidtime 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 Solidtime 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) — [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/solidtime
