Skip to content

Commit 3bbe668

Browse files
committed
ci: railway networking
1 parent f96df77 commit 3bbe668

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

scripts/start.sh

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#!/bin/bash
22
# /scripts/start.sh
33

4-
# Install any new packages
5-
# /scripts/install_packages.sh
6-
74
# Debug Railway deployment
85
echo "=== Railway Debug ==="
96
echo "Working Directory: $(pwd)"
@@ -17,15 +14,35 @@ echo "=== After Wait ==="
1714
echo "Notebook Directory Contents:"
1815
ls -la /notebooks
1916

20-
# Detect Railway's TCP Proxy settings
17+
# Build the list of announce addresses for IPFS
18+
ANNOUNCE_ADDRS=()
19+
2120
if [[ -n "$RAILWAY_TCP_PROXY_DOMAIN" && -n "$RAILWAY_TCP_PROXY_PORT" ]]; then
22-
echo "Setting up IPFS to announce Railway TCP Proxy address..."
23-
24-
# Construct the correct multiaddr
25-
ANNOUNCE_ADDR="/dns4/$RAILWAY_TCP_PROXY_DOMAIN/tcp/$RAILWAY_TCP_PROXY_PORT/tls/sni/$RAILWAY_TCP_PROXY_DOMAIN/ws"
21+
echo "Adding TCP proxy address for IPFS..."
22+
# This address is for TCP-based connections (Kubo nodes)
23+
TCP_ADDR="/dns4/$RAILWAY_TCP_PROXY_DOMAIN/tcp/$RAILWAY_TCP_PROXY_PORT/tls/sni/$RAILWAY_TCP_PROXY_DOMAIN/ws"
24+
ANNOUNCE_ADDRS+=("$TCP_ADDR")
25+
fi
26+
27+
if [[ -n "$RAILWAY_PUBLIC_DOMAIN" ]]; then
28+
echo "Adding public domain address for WebSocket connections..."
29+
# This address is for WebSocket connections (for Helia/browser clients)
30+
WS_ADDR="/dns4/$RAILWAY_PUBLIC_DOMAIN/tcp/443/tls/sni/$RAILWAY_PUBLIC_DOMAIN/ws"
31+
ANNOUNCE_ADDRS+=("$WS_ADDR")
32+
fi
33+
34+
if [ ${#ANNOUNCE_ADDRS[@]} -gt 0 ]; then
35+
# Build a JSON array manually in Bash
36+
JSON_ADDRS="["
37+
for addr in "${ANNOUNCE_ADDRS[@]}"; do
38+
JSON_ADDRS+="\"$addr\","
39+
done
40+
# Remove trailing comma and close the JSON array
41+
JSON_ADDRS="${JSON_ADDRS%,}"
42+
JSON_ADDRS+="]"
2643

27-
# Apply it to IPFS configuration
28-
ipfs config --json Addresses.Announce "[\"$ANNOUNCE_ADDR\"]"
44+
echo "Announcing addresses: $JSON_ADDRS"
45+
ipfs config --json Addresses.Announce "$JSON_ADDRS"
2946
fi
3047

3148
# Start IPFS daemon in the background
@@ -34,5 +51,5 @@ ipfs daemon --enable-pubsub-experiment --migrate=true &
3451
# Wait for IPFS to start
3552
sleep 5
3653

37-
# Start Jupyter
54+
# Start Jupyter Lab
3855
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.allow_origin='*'

0 commit comments

Comments
 (0)