11#! /bin/bash
22# /scripts/start.sh
33
4- # Install any new packages
5- # /scripts/install_packages.sh
6-
74# Debug Railway deployment
85echo " === Railway Debug ==="
96echo " Working Directory: $( pwd) "
@@ -17,15 +14,35 @@ echo "=== After Wait ==="
1714echo " Notebook Directory Contents:"
1815ls -la /notebooks
1916
20- # Detect Railway's TCP Proxy settings
17+ # Build the list of announce addresses for IPFS
18+ ANNOUNCE_ADDRS=()
19+
2120if [[ -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 "
2946fi
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
3552sleep 5
3653
37- # Start Jupyter
54+ # Start Jupyter Lab
3855jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.allow_origin=' *'
0 commit comments