3 months ago
I want to run a Radicle seed node. I'm following this guide: https://radicle.xyz/guides/seeder. But, it has no Git repo or Docker image. It requires running commands like a regular system. How can I run commands in Railway? One idea is ssh, but that needs a service deployed first.
78 Replies
3 months ago
You can deploy an alpine image and ssh into it!
3 months ago
By taking a quick look at the docs you linked, I don't know if deploying a service and SSH'ing into it is the right thing to do, it also looks very complicated.
3 months ago
Then what do you think is the right process? Here is the method for fly.io: https://app.radicle.xyz/nodes/ash.radicle.garden/rad%3Az2kW9FFyC4EB6m6bu1AnmhvLo4sJs
3 months ago
There, it looks like fly can ssh into a console. SSH'ing into an empty service should be a feature.
3 months ago
That looks better but it seems like it uses inbound udp at port 8776, Railway does not support inbound UDP traffic
3 months ago
Would you please search in the previous guide to find out if inbound port is really necessary for this? I don't understand this. Just search by "port".
3 months ago
There is also a template: https://railway.com/deploy/radicle-seed-template. But, I can't inspect its contents so didn't use.
3 months ago
Original guide uses TCP
3 months ago
I couldn't ssh:
Failed to connect: Your application is not running or in a unexpected state
This may happen because the service is serverless (sleeping) and has scaled to zero.
Serverless containers cannot accept SSH connections when idle.
To SSH into this service:
- Send a request to wake the service, then retry
- Or disable 'Sleep when idle' in service settings to keep it running```3 months ago
It doesn't say sleeping in Dashboard
3 months ago
Are you on the free plan?
3 months ago
Yes
3 months ago
Tried this: https://station.railway.com/questions/with-ssh-not-working-anymore-7f2f0d7f. DIdn't help
3 months ago
Set your start command as sleep infinity and try again.
3 months ago
Should I deploy alpine or follow the fly.io process?
3 months ago
Did you take a look at this template?
3 months ago
Yes
3 months ago
Oh yeah, true I missed that message my bad
3 months ago
Didn't deploy it, bcz author doesn't share the source
3 months ago
Btw free plan doesn't let disable sleep
3 months ago
It doesn't let you diasble serverless
3 months ago
3 months ago
That doesn't look like the source for Radicle
3 months ago
You can check the source code and the Dockerfile to see how this user deploys Radicle and then replicate it on your project
3 months ago
It is very hacky though, those Dockerfiles are all AI generated
3 months ago
Should I follow the fly.io process?
3 months ago
That's confirmed working
3 months ago
You can, you will need to translate that fly.toml file into settings on your Railway service, for example it lists a HTTP proxy on port 80, a TCP/UDP proxy on port 8776 and a volume at /root
3 months ago
Can you help me on that?
3 months ago
Is he using Debian?
# Stage 1: Download and extract pre-built binaries FROM debian:bookworm-slim AS fetcher RUN apt-get update && apt-get install -y --no-install-recommends curl xz-utils ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /tmp RUN curl -sSfL -o radicle.tar.xz https://files.radicle.xyz/releases/latest/radicle-x86_64-unknown-linux-musl.tar.xz \ && tar -xJf radicle.tar.xz --strip-components=1 \ && curl -sSfL -o radicle-httpd.tar.xz https://files.radicle.xyz/releases/radicle-httpd/latest/radicle-httpd-x86_64-unknown-linux-musl.tar.xz \ && tar -xJf radicle-httpd.tar.xz --strip-components=1
3 months ago
I have ssh'ed into the Alpine image
3 months ago
Should I use Debian instead?
3 months ago
yes FROM debian:bookworm-slim
3 months ago
Let's try fly? Will docker charge less credits than the original process?
3 months ago
I previously tried Gitea and got an Ubuntu system, here in Alpine it's confusing
3 months ago
Alpine was my suggestion, you can use debian
3 months ago
Fine. But, which would be better for this process? Debian/Alpine or copying that fy.io config?
3 months ago
Just copy that fly.io tutorial config
3 months ago
I need help on this
3 months ago
Will you?
3 months ago
I was taking a look at the repo and I don't think you can reliably host a Radicle node on Railway since it requires UDP.
3 months ago
I'm doing with Debian anyways
3 months ago
If I redeploy, will I lose all my data?
3 months ago
It can use TCP
3 months ago
If it doesn't has a volume mounted, then yes.
3 months ago
The volume is mounted to /data, so will I lose stuffs everywhere else?
3 months ago
yes
3 months ago
That means install and set up Radicle again? Any way to keep data?
3 months ago
The template I've linked earlier has a volume mounted at /home/radicle
3 months ago
How to wake this Debian service from sleep?
3 months ago
By sending a request to it
3 months ago
Yes, ofc, but how? I don't even know which port it listens to for attaching domain.
3 months ago
It doesn't matter the port, just by visiting the domain when the service is asleep it starts the container back again
3 months ago
WHich port to use here?
Attachments
3 months ago
the fly.toml guide lists a HTTP proxy at port 80
3 months ago
I deployed Debian docker image, didn't expose any port
3 months ago
I have finished until systemd setup from the official guide. How to set a system service to autostart in this Debian container? Systemd says:
System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to system scope bus via local transport: Host is down
3 months ago
I'm trying to add support for HTTPS with Caddy: https://radicle.xyz/guides/seeder#adding-support-for-https
But I keep getting errors:
3 months ago
2026/03/04 06:22:33.693 ERROR http.acme_client challenge failed {"identifier": "khalid-seed.up.railway.app", "challenge_type": "tls-alpn-01", "status_code": 400, "problem_type": "urn:ietf:params:acme:error:tls", "error": "151.101.2.15: remote error: tls: no application protocol"} 2026/03/04 06:22:33.693 ERROR http.acme_client validating authorization {"identifier": "khalid-seed.up.railway.app", "error": "authorization failed: HTTP 400 urn:ietf:params:acme:error:tls - 151.101.2.15: remote error: tls: no application protocol", "order": "https://acme-v02.api.letsencrypt.org/acme/order/3114580002/486802673142", "attempt": 1, "max_attempts": 3}
3 months ago
2026/03/04 06:22:34.968 ERROR tls.obtain could not get certificate from issuer {"identifier": "khalid-seed.up.railway.app", "issuer": "acme-v02.api.letsencrypt.org-directory", "error": "HTTP 429 urn:ietf:params:acme:error:rateLimited - too many failed authorizations (5) for \"khalid-seed.up.railway.app\" in the last 1h0m0s, retry after 2026-03-04 06:28:37 UTC: see https://letsencrypt.org/docs/rate-limits/#authorization-failures-per-identifier-per-account"} 2026/03/04 06:22:34.968 WARN http missing email address for ZeroSSL; it is strongly recommended to set one for next time 2026/03/04 06:22:35.222 ERROR tls.obtain could not get certificate from issuer {"identifier": "khalid-seed.up.railway.app", "issuer": "acme.zerossl.com-v2-DV90", "error": "account pre-registration callback: failed getting EAB credentials: HTTP 422: caddy_legacy_user_removed (code 2977)"} 2026/03/04 06:22:35.222 ERROR tls.obtain will retry {"error": "[khalid-seed.up.railway.app] Obtain: account pre-registration callback: failed getting EAB credentials: HTTP 422: caddy_legacy_user_removed (code 2977)", "attempt": 1, "retrying_in": 60, "elapsed": 3.661088367, "max_duration": 2592000}
3 months ago
Btw, I tried to make a new bounty for this issue initially, as this is a critical issue. But, I keep getting error asking me to try again.
3 months ago
I can't open any bounty at all
3 months ago
@Medim Thanks for helping me so far. Can you help me with the Systemd and Caddy issues so that I can complete this setup?
3 months ago
@Medim Thanks for helping me so far. Can you help me with the Systemd and Caddy issues so that I can complete this setup?
3 months ago
By reading this guide, the Caddy service is optional and can be separated, not on the same container as your radicle service, you would just point the reverse_proxy to your radicle service
3 months ago
Is your radicle service working even if it's without https? (just so I can situate myself in what step of the guide we are currently)
3 months ago
Yes, the node is working. Do I need systemd? How can I set them to keep running in background and autostart? The systemd parts of the guide and the caddy part at the end are what I need now
3 months ago
Yes, the node is working. Do I need systemd? How can I set them to keep running in background and autostart? The systemd parts of the guide and the caddy part at the end are what I need now
2 months ago
@Kemix
2 months ago
@Medim
2 months ago
There's no need for systemd
2 months ago
You also don't need Caddy, you just expose radicle-httpd service on port 8080 (only if you're using it, according to the guide it is optional)
2 months ago
The only thing you need is the radicle-node service, radicle-httpd is optional
2 months ago
Yes, but I want to run the http service. Without Caddy, how do I expose the API under the Railway provided domain?
2 months ago
And, how do I run background services without Systemd?
2 months ago
Your node is already running, systemd is for proccess management (restart etc)
2 months ago
systemd is needed if you’re running on a VPS - you’re not, Railway handles that.
2 months ago
That's also necessary. Else, I'd have to start the processes each time I restart. Also, the radicle-httpd command to start it never exits. How do I run it in background?