From 68a4306b07fadfd6afd079c9ce5872748fe7cfa3 Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Fri, 6 Mar 2026 18:19:13 +0000 Subject: [PATCH 1/7] docs(v1.5): add fly.io service startup timeout workaround --- .../version-1.5/deployment/self-hosted.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index d4ce4914..edbac6fd 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -115,6 +115,16 @@ Fly.io is a platform where you can conveniently deploy applications packaged as If deploying to Fly.io from macOS with Apple Silicon, create a Docker image for `linux/amd64` with: `cartesi deploy build --platform linux/amd64` ::: +:::caution known issue: service startup timeout +The Cartesi rollups node v1.5 has a hard-coded 5-second startup timeout per service. On Fly.io, services such as the `inspect-server` can take longer to initialise, causing the node to restart immediately after launch. + +The steps below replace the default node image with a custom Dockerfile that uses [nitro](https://github.com/leahneukirchen/nitro) and nginx as the process supervisor and HTTP proxy, which have no startup timeout. Download the Dockerfile into your project directory before proceeding: + +```shell +curl -L https://gist.github.com/jplgarcia/09bdffab9e443b7d0e85001a5806ad4a/raw -o Dockerfile.fly +``` +::: + 1. [Install the flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/) 1. [Create an account](https://fly.io/docs/hands-on/sign-up-sign-in/) @@ -159,11 +169,11 @@ If deploying to Fly.io from macOS with Apple Silicon, create a Docker image for 1. Deploy the node: - Tag the image produced at the beginning of the process and push it to the Fly.io registry: + Build the image using the `Dockerfile.fly` you downloaded earlier and push it to the Fly.io registry: ```shell flyctl auth docker - docker image tag registry.fly.io/ + docker build --platform linux/amd64 -f Dockerfile.fly -t registry.fly.io/ .cartesi/image/ docker image push registry.fly.io/ fly deploy -a ``` From 1cc5e70790889f5ce7bf2802064ba849dced6b73 Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Fri, 6 Mar 2026 18:25:26 +0000 Subject: [PATCH 2/7] docs(v1.5): point Dockerfile.fly to Mugen-Builders repo --- .../version-1.5/deployment/self-hosted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index edbac6fd..5946a691 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -121,7 +121,7 @@ The Cartesi rollups node v1.5 has a hard-coded 5-second startup timeout per serv The steps below replace the default node image with a custom Dockerfile that uses [nitro](https://github.com/leahneukirchen/nitro) and nginx as the process supervisor and HTTP proxy, which have no startup timeout. Download the Dockerfile into your project directory before proceeding: ```shell -curl -L https://gist.github.com/jplgarcia/09bdffab9e443b7d0e85001a5806ad4a/raw -o Dockerfile.fly +curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaround/main/Dockerfile.fly -o Dockerfile.fly ``` ::: From 3b96458f3c02d218c16f44542784240053db4fcd Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Fri, 6 Mar 2026 18:26:49 +0000 Subject: [PATCH 3/7] docs(v1.5): fix connection_string step reference (step 5, not 4) --- .../version-1.5/deployment/self-hosted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index 5946a691..6b984c2b 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -165,7 +165,7 @@ curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaroun fly secrets set -a CARTESI_POSTGRES_ENDPOINT= ``` - Set value of the `connection_string` as provided by step 4. + Set value of the `connection_string` as provided by step 5. 1. Deploy the node: From f588cdf89637887066855edc21ee137cfbe2ad6b Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Tue, 10 Mar 2026 16:30:39 +0000 Subject: [PATCH 4/7] docs(v1.5): add Infura/Alchemy tip to fly.io secrets step --- .../version-1.5/deployment/self-hosted.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index 6b984c2b..f10ea164 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -167,6 +167,10 @@ curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaroun Set value of the `connection_string` as provided by step 5. + :::tip RPC provider + [Infura](https://infura.io) works on the free tier for testnets. [Alchemy](https://alchemy.com) requires a paid plan to avoid rate-limit errors under node load. + ::: + 1. Deploy the node: Build the image using the `Dockerfile.fly` you downloaded earlier and push it to the Fly.io registry: From 69276bbb923fa0b539c21efab1a0770565f89f34 Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Tue, 10 Mar 2026 16:33:08 +0000 Subject: [PATCH 5/7] docs(v1.5): add Infura/Alchemy tip to cloud provider section too --- .../version-1.5/deployment/self-hosted.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index f10ea164..7bc7173d 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -85,6 +85,10 @@ Alternatively, you can use a service like [Fly.io](https://fly.io/) to deploy yo ![img](../../../static/img/v1.3/alchemy.png) + :::tip RPC provider + [Infura](https://infura.io) works on the free tier for testnets. [Alchemy](https://alchemy.com) requires a paid plan to avoid rate-limit errors under node load. + ::: + :::caution important The web3 provider URLs and wallet mnemonic are sensitive information that can compromise your application and funds. You should keep it **secure** and **private** at all times. ::: From 0910489297ebb4820b249a1f6b638eb118cde8df Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Tue, 10 Mar 2026 16:33:58 +0000 Subject: [PATCH 6/7] docs(v1.5): pin Dockerfile.fly curl URL to commit hash instead of main --- .../version-1.5/deployment/self-hosted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index 7bc7173d..91d7f35e 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -125,7 +125,7 @@ The Cartesi rollups node v1.5 has a hard-coded 5-second startup timeout per serv The steps below replace the default node image with a custom Dockerfile that uses [nitro](https://github.com/leahneukirchen/nitro) and nginx as the process supervisor and HTTP proxy, which have no startup timeout. Download the Dockerfile into your project directory before proceeding: ```shell -curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaround/main/Dockerfile.fly -o Dockerfile.fly +curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaround/8de6beb730957aee453a2b146c23a15a060baf56/Dockerfile.fly -o Dockerfile.fly ``` ::: From acfcd049efdf9a69b55bd9d5325d2a4c02bec1aa Mon Sep 17 00:00:00 2001 From: Joao Garcia Date: Tue, 10 Mar 2026 16:34:36 +0000 Subject: [PATCH 7/7] Removed redundant message --- .../version-1.5/deployment/self-hosted.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md index 91d7f35e..7468246e 100644 --- a/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md +++ b/cartesi-rollups_versioned_docs/version-1.5/deployment/self-hosted.md @@ -171,10 +171,6 @@ curl -L https://raw.githubusercontent.com/Mugen-Builders/cartesi-flyio-workaroun Set value of the `connection_string` as provided by step 5. - :::tip RPC provider - [Infura](https://infura.io) works on the free tier for testnets. [Alchemy](https://alchemy.com) requires a paid plan to avoid rate-limit errors under node load. - ::: - 1. Deploy the node: Build the image using the `Dockerfile.fly` you downloaded earlier and push it to the Fly.io registry: