0

I'm deploying Typesense on Railway.app using the official Docker image typesense/typesense:0.25.2, but the HTTP API server never starts despite the raft clustering layer working correctly. Problem

Raft clustering logs present: Leader election works, peer refresh succeeds HTTP API server logs missing: No "Starting Typesense HTTP server" messages External connections fail: curl https://domain.railway.app:8108/health times out Internal connections fail: Backend services get Connection refused on port 8108

Current Configuration Environment Variables:

TYPESENSE_API_ADDRESS="::"
TYPESENSE_API_KEY="something"
TYPESENSE_API_PORT="8108"
TYPESENSE_DATA_DIR="/data"
TYPESENSE_ENABLE_CORS="true"
TYPESENSE_NODES=""

Custom Start Command: /opt/typesense-server --data-dir /data --api-key=something --listen-address :: --api-port 8108 --enable-cors

Logs Output Raft clustering is working but HTTP server never starts:

I20250904 04:37:42.810342 89 typesense_server_utils.cpp:283] Typesense peering service is running on 10.250.10.204:8107
I20250904 04:37:53.572160 128 node.cpp:1899] node default_group:10.250.10.204:8107:8108 term 30 become leader of group 10.250.10.204:8107:8108
I20250904 04:38:02.817142 104 raft_server.h:60] Peer refresh succeeded!

Missing Expected Logs:

Starting Typesense HTTP server on [::]:8108  # This never appears
Error in Backend Service
requests.exceptions.ConnectionError: HTTPConnectionPool(host='typesense.railway.internal', port=8108): 
Max retries exceeded with url: /collections (Caused by NewConnectionError(
'Failed to establish a new connection: [Errno 111] Connection refused'))

Railway Setup

Public Networking: Port 8108 exposed, domain generated Private Networking: typesense.railway.internal with IPv6 support Source: Official typesense/typesense:0.25.2 image Volume: Persistent /data directory mounted

What I've Tried

Single-node configuration: Set TYPESENSE_NODES="" to force single-node mode IPv4/IPv6 binding: Tried both 0.0.0.0 and :: Custom start command: Direct command line parameters Cluster reset attempts: Added reset environment variables Port configuration: Verified 8108 is exposed correctly

Questions

Why does the Raft layer start but HTTP API server doesn't? How can I force Typesense to start in pure single-node mode? Is there a Railway-specific configuration needed? Should I use a different Docker image or startup approach?

Environment

Platform: Railway.app Image: typesense/typesense:0.25.2 Region: Southeast Asia (Singapore) Networking: IPv6 enabled

Any help debugging why the HTTP API server component isn't starting would be greatly appreciated.

1
  • Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Commented Sep 4 at 9:20

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.