---
title: "Deploy Valet"
description: "AI-native homelab homepage with widgets and an assistant"
category: "Other"
url: https://railway.com/deploy/deploy-valet-homepage
---

# Deploy Valet

AI-native homelab homepage with widgets and an assistant

**[Deploy Valet on Railway](https://railway.com/template/deploy-valet-homepage)**

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

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

## Template content

### valet https://api.iconify.design/mdi/view-dashboard-outline.svg

- **Image:** ghcr.io/onepush-dev/valet:0.6.1
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host self hosted Valet (Homepage) on Railway

This template deploys Valet, an open-source, AI-native homelab homepage, as one Railway service with a single persistent volume.

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

Valet is MIT-licensed, open-source homelab homepage software, and this community template runs the unmodified Valet 0.6.1 image on Railway. This is independent community packaging, not affiliated with or endorsed by the upstream authors.

## Why Deploy Valet, the self-hosted AI-native homelab homepage on Railway

Valet on Railway gives you a homepage for your services, with sign-in already on and an owner account ready from first boot. You keep the config and data on a volume you control.

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

Railway handles the server work for you, while a VPS leaves the setup and upkeep to you. The table compares three common options.

| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | A managed container with a public HTTPS domain, a volume at /data and the health check already wired up. | A Droplet you configure yourself, including Docker, a reverse proxy, TLS and updates. |
| AWS | One service and one volume deployed from the template, with no VPC or load balancer to set up. | Broad cloud services and fine-grained networking, which take more time to configure for a homepage. |
| Hetzner | Deployment from a single template, with the domain and sign-in ready from the first boot. | Low-cost servers where you install Docker, manage backups and keep the system patched. |

## Common Use Cases for hosted Valet

- **A live homepage for your homelab:** Put your service widgets and links on one page, so you can see what is running and what needs attention without opening five tabs.
- **A built-in assistant that works with your model:** Point Valet at Ollama, OpenRouter, OpenAI, Anthropic, or another OpenAI-compatible server, and ask it questions about your setup. The assistant is optional, so Valet works fine with it switched off.
- **Optional MCP access:** Connect MCP tools if you want the assistant to reach more of your environment, and leave them out if you do not.
- **Widgets for the services you already run:** Connect integrations such as Plex, Home Assistant, Sonarr, Radarr, Immich, Pi-hole, and Uptime Kuma, provided each one is reachable over the internet.
- **A private dashboard you can sign into from day one:** Sign-in is on, and the owner account is ready from first boot, while config and data both live on one volume that you can back up as a unit.

## Dependencies for Valet Docker hosted on Railway

This template runs one container from ghcr.io/onepush-dev/valet:0.6.1, the unmodified upstream Valet image with a small start script added. Everything Valet needs lives in one service and one volume.

### Deployment Dependencies for Managed Valet Service (one container with config and data on one volume)

The template deploys one service: the Valet app on port 8080, with a public domain and a health check at /healthz. Keep it to one replica.

### Implementation Details for Valet (unmodified Valet 0.6.1 image plus a Railway start script that seeds admin)

On first boot the start script seeds config.yaml with local sign-in and allowedHosts covering the Railway domain and health probe, then creates the admin owner from VALET_ADMIN_PASSWORD only when no accounts exist. PORT=8080, VALET_CONFIG=/data/config/config.yaml, VALET_DATA=/data/data and VALET_ADMIN_USER=admin are baked in. Config edits apply live, but auth and allowedHosts need a restart.

## How does Valet compare against other tools

### Valet vs Homarr (Homarr Alternative)

- **Assistant built in:** Valet includes an assistant that answers questions about your services and proposes config changes, using a model you choose, and it works with the assistant switched off.
- **Config in one file:** Valet keeps layout, integrations and look in a single YAML file that applies edits live.
- **Where Homarr may win:** Homarr has a mature visual board editor, which may feel more familiar if you prefer dragging tiles.

### Valet vs Homepage (gethomepage Alternative)

- **Live cards and actions:** Valet's cards update in real time and can run actions you approve, not only show status.
- **Sign-in ready on Railway:** The template turns on sign-in and creates the admin owner on first boot from VALET_ADMIN_PASSWORD.
- **Where Homepage may win:** Homepage is a lightweight, YAML-driven start page that suits a minimal setup.

### Valet vs Dashy (Dashy Alternative)

- **AI assistant:** Valet's assistant can answer questions about your homelab and propose changes that wait for your approval.
- **Wall display mode:** Valet has a /wall page built for a tablet or spare monitor.
- **Where Dashy may win:** Dashy offers many styling and section options, so compare it if visual customization is your main goal.

### Valet with Docker vs Railway (Valet Docker Alternative)

- **Railway removes server work:** You get HTTPS on a public domain, a health check and a persistent volume without managing a VPS.
- **Integrations need reachable addresses:** Railway is not on your home LAN, so services like Plex or Home Assistant must be reachable over the internet for widgets to work.
- **Where Docker may win:** A local Docker install keeps every integration on your network and avoids public exposure of your services.

## How to use Valet on Railway?

1. Open the public URL Railway gives your valet service and check the starter overview loads.
2. Sign in as `admin` with the password in `VALET_ADMIN_PASSWORD`, found on the valet service's Variables tab. Changing that variable later does not change the existing account.
3. Edit `/data/config/config.yaml` to add integrations and, optionally, a model. Store API keys in Railway variables and reference them as ${NAME}. Edits apply live.
4. If you attach a custom domain, add that hostname to `allowedHosts` in `config.yaml` and restart, or Valet returns HTTP 421.
5. Integrations can reach only internet-accessible services, since Railway is not on your home LAN.

Check the service is healthy at this endpoint:

```
/healthz
```

Once it returns success, your homepage is ready to customise.

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

### Clone the Repository

Get the upstream source or pull the image, which is ghcr.io/askvalet/valet under the MIT license.

```sh
git clone https://github.com/askvalet/valet.git
cd valet
```

### Install Dependencies

Docker is the simpler path on a VPS. Otherwise install Node 22.18 or newer and build from source.

```sh
docker pull ghcr.io/askvalet/valet:0.6.1
```

### Configure Environment Variables

Set VALET_CONFIG to the config file and VALET_DATA to the data folder, both on a persistent volume.

```sh
export VALET_CONFIG=/config/config.yaml
export VALET_DATA=/app/data
node dist/server.js user add admin
```

### Start the Valet Application

Start the container with both folders mounted, then open your-domain and sign in.

```sh
docker run -d --name valet -p 127.0.0.1:7575:7575 \
  -v ./config:/config -v ./data:/app/data --env-file .env \
  ghcr.io/askvalet/valet:0.6.1
```


## Pricing and License of Valet (Valet pricing)

Valet is open-source software released under the MIT license, which means you can self-host it for free and use, modify, and redistribute it under the terms of that license.

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

Valet is free MIT software. Optional model usage is billed by your provider.

### Monthly cost of self hosting Valet on Railway

Railway billing is usage-based and depends on RAM, CPU, volume size and any other services you run. Watch your own usage over a few days to learn what your bill looks like.

### System Requirements for Hosting Valet on a VPS

Valet runs as one Node process with one volume for config and data. Size a VPS from your own testing.

## Frequently Asked Questions (FAQs)

### How do I sign in to my Valet on Railway?

Use the username admin and the password in the VALET_ADMIN_PASSWORD variable, which you can find on the valet service's Variables tab. The owner account is created on first boot, so this is the login you use from the start.

### Does changing VALET_ADMIN_PASSWORD later reset my login?

No. The variable is applied only on first boot, so changing it afterwards does not change the existing account. Change the password from inside the page after you sign in instead.

### Why do I get a 421 error on my custom domain?

Valet answers only to hostnames it knows, and a 421 is its DNS-rebinding protection rejecting a name it does not recognise. Add your hostname to Valet's site-address list (allowedHosts in /data/config/config.yaml), then restart the service.

### Can widgets reach my services on my home LAN?

Not unless those services are reachable from the Railway network. Railway is not on your home LAN, so integrations need internet-accessible addresses for the services they point at.

### Does the assistant need an API key?

No. Valet works with the assistant turned off, and you only need a provider key once you choose to add one to the config.

### What should I back up?

Back up the /data volume, which holds both the config folder and the data folder. Keeping that volume safe covers your settings, accounts and uploads.


## 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-valet-homepage
