Railway

Deploy Huly

All-in-one workspace for issues, documents, chat and planning

Deploy Huly

Just deployed

Just deployed

/usr/share/elasticsearch/data

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

Just deployed

/var/lib/kafka/data

/var/lib/postgresql/data

Just deployed

Just deployed

huly-files

Bucket

Just deployed

Huly logo

Deploy and Host Huly on Railway

Huly is an open-source all-in-one team workspace that folds issue tracking, collaborative documents, team chat, HR and a personal planner into one application. Teams reach for it when they are tired of paying for Linear, Notion and Slack separately and stitching them together with integrations that half-work. Everything shares one data model, so an issue can be mentioned in a document, discussed in a channel and scheduled in a planner without leaving the product. It is published by Hardcore Engineering under the Eclipse Public License 2.0 at github.com/hcengineering/platform.

Self-host Huly on Railway and you get the full production topology, not a cut-down single container. Deploy Huly with this template and it provisions thirteen services: a Caddy entrypoint routing every path the browser client calls, front, account, the transactor every open workspace holds a WebSocket to, collaborator for live document editing, a workspace worker, a fulltext indexer, rekoni for reading text out of attachments, stats, kvs, plus PostgreSQL, Kafka and Elasticsearch. Attachments and avatars go to an object-storage bucket, so nothing large lives on a volume.

Diagram of Huly's thirteen Railway services and three volumes

Getting Started with Huly on Railway

Open the public URL and you land on Huly's sign-in card. There is no seeded administrator and no default password: the first person to use the Sign Up tab becomes the owner, so do that immediately rather than leaving the instance idle. The email address is only an identifier — no mail server is wired up, so nothing is sent and nothing needs confirming. Huly then asks for a workspace name; leave Create sample projects and demo content on, which seeds two example projects and a set of quick-start documents. Creation takes about 45 seconds.

You arrive in Tracker, Huly's issue board. Press New issue, give it a title and description, and create it — if it lands in the Backlog group, the transactor and PostgreSQL are wired correctly. Attach a file with the paperclip: a thumbnail rendering back on the card confirms object storage works end to end. Open the command palette from the magnifier top-right and search a word from your issue title; a hit means Kafka, the indexer and Elasticsearch are working. Then set DISABLE_SIGNUP to true on account and front to close registration.

Huly Tracker listing backlog issues across two projects

Huly issue detail with an uploaded image attachment

Huly collaborative document open in the Documents workspace

Huly command palette returning a full-text issue match

About Hosting Huly

Huly is a constellation of services that each own one job, which is why self-hosting it properly means more than one container. front serves the client bundle and proxies uploads; account owns people, workspaces and tokens. The transactor is the heart of it: every open workspace keeps a WebSocket to it and every change flows through it. collaborator runs the CRDT layer behind shared editing, so two people typing in one paragraph converge instead of overwriting each other. workspace creates and upgrades workspaces, fulltext maintains the index and calls rekoni to read text out of PDFs, and stats collects health metrics.

Key features:

  • Issue tracking with projects, components, milestones, sub-issues and templates
  • Collaborative documents and teamspaces with live editing and inline comments
  • Team chat, threads and an activity feed on every object
  • A personal planner for action items created anywhere in the product
  • Virtual office, HR, recruiting and CRM modules in the same workspace
  • Full-text search across issues, documents and attachment contents

Why Deploy Huly on Railway

Railway removes the operational work a thirteen-service stack implies.

  • Every service, database, queue and bucket provisioned in one deploy
  • Private networking wires the services together with no ports exposed
  • PostgreSQL, Kafka and Elasticsearch storage on managed persistent volumes
  • One public HTTPS domain with an automatic certificate
  • Scale any single service independently when a tier gets busy

Common Use Cases

  • Replacing a Linear plus Notion plus Slack stack with one bill, one login and one search box.
  • Running project management inside your own perimeter, where roadmaps cannot sit in third-party SaaS.
  • Engineering teams with a documentation habit — specs and runbooks beside the issues they describe.
  • Agencies tracking client work with attachments and searchable notes in one workspace.

Dependencies for Huly

  • hardcoreeng/front, account, transactor, collaborator, workspace, fulltext, stats, rekoni-service and hulykvs, all on the same tag — one release train, and mixed builds are refused.
  • PostgreSQL 18 — accounts, workspaces and every object inside them. Huly detects the flavour at startup and ships a PostgreSQL migration set beside its CockroachDB one.
  • Apache Kafka 3.9 (KRaft) — the change stream between transactor, workspace and fulltext. Without it, edits save but never reach the index.
  • Elasticsearch 7.14 with ingest-attachment — the index itself.
  • Caddy — Railway's edge routes by hostname only, while Huly's client calls six paths on one host.
  • Object storage — every attachment, avatar and embedded image.

Environment Variables Reference

VariableServicePurpose
SERVER_SECRETaccountSigns every platform token; must stay stable
DB_URLaccount, transactor, workspace, fulltextPostgreSQL connection string
QUEUE_CONFIGthe same fourKafka broker address
FULLTEXT_DB_URLfulltextElasticsearch endpoint
DISABLE_SIGNUPaccount, frontSet to true to close public registration
TITLEfrontProduct name in the browser tab
MAX_UPLOAD_SIZEproxyLargest accepted upload, 100MB by default

Deployment Dependencies

Hardware Requirements for Self-Hosting Huly

ResourceMinimumRecommended
CPU2 vCPU4+ vCPU
RAM8 GB across all services16 GB
Storage10 GB of volumes plus object storage25 GB plus object storage
RuntimeDocker, PostgreSQL, Kafka, ElasticsearchOne of each

Elasticsearch and Kafka are the hungry components; each gets a 1 GB JVM heap, and both are worth raising first if search feels slow.

Self-Hosting Huly with Docker

Upstream ships a setup script that renders a Docker Compose file for one host. These shell commands clone it and start the stack:

git clone https://github.com/hcengineering/huly-selfhost.git
cd huly-selfhost
./setup.sh
docker compose up -d

That layout runs CockroachDB, Redpanda, MinIO and nginx alongside Huly, and upstream notes the single-node CockroachDB and Redpanda may not be production-ready. This template swaps those for managed PostgreSQL, Kafka and object storage. To point Huly at your own backends:

DB_URL=postgresql://user:password@postgres.internal:5432/huly
QUEUE_CONFIG=kafka.internal:9092
STORAGE_CONFIG=s3|https://s3.example.com?accessKey=KEY&secretKey=SECRET&region=auto&rootBucket=huly

STORAGE_CONFIG is parsed as a URL, so a secret key containing + must be percent-encoded as %2B or it reaches the S3 client with a space in it.

How Much Does Huly Cost to Self-Host?

Huly is free and open source under the Eclipse Public License 2.0 — no licence fee, no seat count and no feature gate on a self-hosted instance. Hardcore Engineering also sells a hosted cloud with a free tier and paid plans, which is what you opt out of here. On Railway you pay only for the compute, volumes and storage the services consume.

FAQ

What is Huly? Huly is an open-source all-in-one team workspace combining project management, documents, chat, HR and a planner in one application, positioned against running Linear, Jira, Notion and Slack side by side.

What does this Railway template deploy? Thirteen services: a Caddy path router, Huly's front, account, transactor, collaborator, workspace, fulltext, rekoni, stats and kvs, plus PostgreSQL, Kafka and Elasticsearch, with a bucket for uploads.

Why does self-hosted Huly need Kafka and Elasticsearch? Kafka carries changes from the transactor to the indexer and the workspace worker, so edits propagate without polling. Elasticsearch holds the index the command palette queries, including text pulled out of attachments.

How do I stop strangers signing up on my self-hosted Huly instance? Set DISABLE_SIGNUP to true on the account and front services once your own account exists. The account service drops its signup endpoints entirely, so the lock is server-side rather than hidden in the interface.

Can I upgrade self-hosted Huly to a newer version later? Yes, but change the tag on all nine Huly services at once — they are one release train and mixed builds are refused. Read upstream's migration notes first.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
44
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51