Deploy Huly
All-in-one workspace for issues, documents, chat and planning
Just deployed
elastic
Just deployed
/usr/share/elasticsearch/data
account
Just deployed
Just deployed
Just deployed
Just deployed
fulltext
Just deployed
transactor
Just deployed
Just deployed
kafka
Just deployed
/var/lib/kafka/data
Just deployed
/var/lib/postgresql/data
workspace
Just deployed
collaborator
Just deployed
huly-files
Bucket
Just deployed
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.

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.
![]()



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-serviceandhulykvs, 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,workspaceandfulltext. 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
| Variable | Service | Purpose |
|---|---|---|
SERVER_SECRET | account | Signs every platform token; must stay stable |
DB_URL | account, transactor, workspace, fulltext | PostgreSQL connection string |
QUEUE_CONFIG | the same four | Kafka broker address |
FULLTEXT_DB_URL | fulltext | Elasticsearch endpoint |
DISABLE_SIGNUP | account, front | Set to true to close public registration |
TITLE | front | Product name in the browser tab |
MAX_UPLOAD_SIZE | proxy | Largest accepted upload, 100MB by default |
Deployment Dependencies
- Source: github.com/hcengineering/platform
- Self-hosting reference: github.com/hcengineering/huly-selfhost
- Images: hub.docker.com/u/hardcoreeng
- Product site: huly.io
Hardware Requirements for Self-Hosting Huly
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 vCPU | 4+ vCPU |
| RAM | 8 GB across all services | 16 GB |
| Storage | 10 GB of volumes plus object storage | 25 GB plus object storage |
| Runtime | Docker, PostgreSQL, Kafka, Elasticsearch | One 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®ion=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
elastic
gridalpha/huly-railwayaccount
hardcoreeng/account:v0.7.426fulltext
hardcoreeng/fulltext:v0.7.426transactor
hardcoreeng/transactor:v0.7.426kafka
apache/kafka:3.9.1workspace
hardcoreeng/workspace:v0.7.426collaborator
hardcoreeng/collaborator:v0.7.426huly-files
Bucket
