---
title: "Deploy Piik"
description: "Private P2P screen sharing with a browser UI and persistent rooms."
category: "Other"
url: https://railway.com/deploy/piik
---

# Deploy Piik

Private P2P screen sharing with a browser UI and persistent rooms.

**[Deploy Piik on Railway](https://railway.com/template/piik)**

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

- **Creator:** kmaki's Projects
- **Category:** Other

## Template content

### piik

- **Image:** ghcr.io/tntcrafthim/piik:v1.7.0
- **Public domain:** Yes

## Documentation

# Deploy and Host Piik on Railway

Piik is private, low-latency screen sharing for one Host and up to 20 authenticated Viewers. It combines a browser UI, room authority, signaling, embedded STUN, and optional media fallback in one Go service. Hosts share screens or cameras while friends watch from desktop or mobile browsers through invitation links.

## About Hosting Piik on Railway

Railway runs Piik from its pinned GHCR container image as a single HTTP service. The generated Railway domain provides the browser entry point, while a persistent volume keeps SQLite room authority and diagnostic files across redeployments.

## Tech Stack

- Go server with embedded Browser UI
- WebRTC media and signaling
- SQLite room persistence
- Embedded STUN on UDP 3478
- Railway HTTPS service domain and persistent volume

## Why Deploy Piik on Railway

Railway provides one-click container deployment, managed HTTPS, automatic restarts, environment variables, and persistent storage without maintaining a host or reverse proxy. Piik remains a single small service that is easy to operate for private groups.

## Common Use Cases

- Private game and desktop screen sharing
- Movie nights and group watch sessions
- Sharing drawings, photos, or browser tabs
- Camera sharing from supported browsers
- Small self-hosted rooms for friends and family

## Deployment Notes

The service listens on HTTP port 8787 and the Railway domain is configured to route to that port. `PUBLIC_BASE_URL` and `STUN_URLS` use Railway's generated public domain. `SITE_ACCESS_PASSWORD` is generated automatically as a Railway secret; Piik has no username-based login. SQLite is stored at `/home/nonroot/rooms.sqlite` on the mounted `/home/nonroot` volume. The template keeps P2P-first media and does not enable optional SFU or NAT prediction; additional UDP reachability is required if those features are enabled later.

## Dependencies for Piik on Railway

Piik is a self-contained service with no database or cache service dependency. The mounted Railway volume is its only infrastructure dependency and stores durable room authority.

### Deployment Dependencies

| Service | Image | Port | Volume |
|---------|-------|------|--------|
| piik | ghcr.io/tntcrafthim/piik:v1.7.0 | 8787 | /home/nonroot |


## 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/piik
