[GH-ISSUE #239] Heroku is phasing out their free tier dynos. Alternative one-click deploy options? #75

Closed
opened 2026-03-04 00:23:38 +03:00 by kerem · 21 comments
Owner

Originally created by @yohaoquan on GitHub (Aug 25, 2022).
Original GitHub issue: https://github.com/SignTools/SignTools/issues/239

As stated in this blog post from Heroku, They are phasing out the free-tier offerings of their, among other things, Dynos, which SignTools is currently using as one of the ways to deploy the web service, by the end of this November. the Dynos deployed will be automatically deleted if users do not act to switch to a paid plan.

I think a lot of people who use SignTools are deploying their web services on Heroku. With this kind of breaking changes(plus not a good track of security practices), I suggest migration to other cloud apps platforms to deploy the web services on. Below I listed several deployment services that are similar to Heroku. I have not checked pricings or capabilities of them.

  1. Railway App
  2. Okteto
Originally created by @yohaoquan on GitHub (Aug 25, 2022). Original GitHub issue: https://github.com/SignTools/SignTools/issues/239 As stated in [this blog post from Heroku](https://blog.heroku.com/next-chapter#focus-on-mission-critical:~:text=Starting%20October%2026,to%20affected%20users.), They are phasing out the free-tier offerings of their, among other things, Dynos, which SignTools is currently using as one of the ways to deploy the web service, by the end of this November. the Dynos deployed will be automatically deleted if users do not act to switch to a paid plan. I think a lot of people who use SignTools are deploying their web services on Heroku. With this kind of breaking changes(plus not a [good track of security practices](https://blog.heroku.com/april-2022-incident-review#:~:text=May%2030%2C%202022.-,Incident%20Summary,OAuth%20token%20and%20GitHub%20account.)), I suggest migration to other cloud apps platforms to deploy the web services on. Below I listed several deployment services that are similar to Heroku. I have not checked pricings or capabilities of them. 1. [Railway App](https://railway.app/) 2. [Okteto](https://cloud.okteto.com/)
kerem 2026-03-04 00:23:38 +03:00
Author
Owner

@ViRb3 commented on GitHub (Aug 25, 2022):

Hello, I have been made aware of these unfortunate news. I don't have experience with any alternative services, so any first-hand feedback is greatly appreciated. I found the following doc that compares a ton of services and their free tiers:

I don't have much time to test at the moment, so will appreciate any help.

Railway seems to allow only 500 hours of runtime per month, which is ~20 days. This is not ideal, given that there are other options that run full time (although no SLA).

<!-- gh-comment-id:1227845634 --> @ViRb3 commented on GitHub (Aug 25, 2022): Hello, I have been made aware of these unfortunate news. I don't have experience with any alternative services, so any first-hand feedback is greatly appreciated. I found the following doc that compares a ton of services and their free tiers: - https://github.com/255kb/stack-on-a-budget/blob/master/pages/app-hosting.md I don't have much time to test at the moment, so will appreciate any help. Railway seems to allow only 500 hours of runtime per month, which is ~20 days. This is not ideal, given that there are other options that run full time (although no SLA).
Author
Owner

@kylefmohr commented on GitHub (Oct 26, 2022):

I opened #266 to include a warning in the documentation about this. I also don't have much experience with other services, but will take a look when I have time.

<!-- gh-comment-id:1291543086 --> @kylefmohr commented on GitHub (Oct 26, 2022): I opened #266 to include a warning in the documentation about this. I also don't have much experience with other services, but will take a look when I have time.
Author
Owner

@kylefmohr commented on GitHub (Oct 26, 2022):

I actually just tried migrating to Fly.io (from @ViRb3's link) and it was incredibly easy. The TL;DR of the process is:

  • Install Fly.io CLI
  • Sign up for Fly.io
  • Login to your account with the CLI
  • Run git clone --recursive https://github.com/SignTools/SignTools.git on your computer that has the Fly CLI (idk if recursive is actually needed)
  • cd SignTools
  • Run fly launch, then choose "no" when asked to deploy now
  • Open the fly.toml file that has been created in the SignTools folder in the directory of your choosing
  • Also open up your Heroku Dashboard, go to your current SignTools App > Settings > Reveal Config Vars
  • Copy and paste the values from the Config Vars section in Heroku to right under the [env] section in the fly.toml file. You will need quotations around the values. As an example, here is the first portion of my fly.toml file:
app = "appsigner"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[env]
  BASIC_AUTH_ENABLE = "true"
  BASIC_AUTH_PASSWORD = "hunter2"
  BASIC_AUTH_USERNAME = "seed"
  BUILDER_GITHUB_ENABLE = "true"
  BUILDER_GITHUB_ORG_NAME = "kylefmohr"
  BUILDER_GITHUB_REPO_NAME = "appsigner-ci"
  BUILDER_GITHUB_TOKEN = "<redacted>"
  BUILDER_GITHUB_WORKFLOW_FILE_NAME = "sign.yml"
  • Run fly launch again after saving the file. Your app should build and launch successfully now!

  • Head to fly.io/dashboard now if you'd like to setup a custom domain with an SSL certificate

  • Open up the application you just built in the dashboard, then select "certificates". It should be self-explanatory from that point.

<!-- gh-comment-id:1291571332 --> @kylefmohr commented on GitHub (Oct 26, 2022): I actually just tried migrating to Fly.io (from @ViRb3's link) and it was incredibly easy. The TL;DR of the process is: - [Install Fly.io CLI](https://fly.io/docs/hands-on/install-flyctl/) - [Sign up for Fly.io](https://fly.io/docs/hands-on/sign-up/) - [Login to your account with the CLI](https://fly.io/docs/hands-on/sign-in/) - Run `git clone --recursive https://github.com/SignTools/SignTools.git` on your computer that has the Fly CLI (idk if recursive is actually needed) - `cd SignTools` - [Run `fly launch`, then choose "no" when asked to deploy now](https://fly.io/docs/languages-and-frameworks/dockerfile/) - Open the fly.toml file that has been created in the SignTools folder in the directory of your choosing - Also open up your Heroku Dashboard, go to your current SignTools App > Settings > Reveal Config Vars - Copy and paste the values from the Config Vars section in Heroku to right under the [env] section in the fly.toml file. You will need quotations around the values. As an example, here is the first portion of my fly.toml file: ``` app = "appsigner" kill_signal = "SIGINT" kill_timeout = 5 processes = [] [env] BASIC_AUTH_ENABLE = "true" BASIC_AUTH_PASSWORD = "hunter2" BASIC_AUTH_USERNAME = "seed" BUILDER_GITHUB_ENABLE = "true" BUILDER_GITHUB_ORG_NAME = "kylefmohr" BUILDER_GITHUB_REPO_NAME = "appsigner-ci" BUILDER_GITHUB_TOKEN = "<redacted>" BUILDER_GITHUB_WORKFLOW_FILE_NAME = "sign.yml" ``` - Run `fly launch` again after saving the file. Your app should build and launch successfully now! - Head to [fly.io/dashboard](https://fly.io/dashboard) now if you'd like to setup a custom domain with an SSL certificate - Open up the application you just built in the dashboard, then select "certificates". It should be self-explanatory from that point.
Author
Owner

@p2kdev commented on GitHub (Dec 26, 2022):

@kylefmohr Getting below error when executing fly launch

=> ERROR [builder 4/4] RUN apk add --no-cache git && go mod download 3.6s

[builder 4/4] RUN apk add --no-cache git && go mod download && CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools":
#9 0.280 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
#9 0.506 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
#9 0.906 (1/6) Installing brotli-libs (1.0.9-r6)
#9 0.941 (2/6) Installing nghttp2-libs (1.47.0-r0)
#9 0.948 (3/6) Installing libcurl (7.83.1-r5)
#9 0.958 (4/6) Installing expat (2.5.0-r0)
#9 0.964 (5/6) Installing pcre2 (10.40-r0)
#9 1.005 (6/6) Installing git (2.36.3-r0)
#9 1.179 Executing busybox-1.35.0-r17.trigger
#9 1.185 OK: 19 MiB in 21 packages
#9 3.425 error obtaining VCS status: exit status 128
#9 3.425 Use -buildvcs=false to disable VCS stamping.


Error failed to fetch an image or build from source: error building: executor failed running [/bin/sh -c apk add --no-cache git && go mod download && CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"]: exit code: 1

<!-- gh-comment-id:1364932840 --> @p2kdev commented on GitHub (Dec 26, 2022): @kylefmohr Getting below error when executing **_fly launch_** > => ERROR [builder 4/4] RUN apk add --no-cache git && go mod download 3.6s > ------ > > [builder 4/4] RUN apk add --no-cache git && go mod download && CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools": > #9 0.280 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz > #9 0.506 fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz > #9 0.906 (1/6) Installing brotli-libs (1.0.9-r6) > #9 0.941 (2/6) Installing nghttp2-libs (1.47.0-r0) > #9 0.948 (3/6) Installing libcurl (7.83.1-r5) > #9 0.958 (4/6) Installing expat (2.5.0-r0) > #9 0.964 (5/6) Installing pcre2 (10.40-r0) > #9 1.005 (6/6) Installing git (2.36.3-r0) > #9 1.179 Executing busybox-1.35.0-r17.trigger > #9 1.185 OK: 19 MiB in 21 packages > #9 3.425 error obtaining VCS status: exit status 128 > #9 3.425 Use -buildvcs=false to disable VCS stamping. > ------ > Error failed to fetch an image or build from source: error building: executor failed running [/bin/sh -c apk add --no-cache git && go mod download && CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"]: exit code: 1
Author
Owner

@kylefmohr commented on GitHub (Dec 26, 2022):

Hmm, that's odd. I'm not 100% sure that this is the issue, but could you verify that your git user.name and user.email are set?

git config --get user.name
git config --get user.email

if not, set them with

git config --global user.name <Your Name>
git config --global user.email <Your email>
<!-- gh-comment-id:1365452426 --> @kylefmohr commented on GitHub (Dec 26, 2022): Hmm, that's odd. I'm not 100% sure that this is the issue, but could you verify that your git user.name and user.email are set? ``` git config --get user.name git config --get user.email ``` if not, set them with ``` git config --global user.name <Your Name> git config --global user.email <Your email> ```
Author
Owner

@kylefmohr commented on GitHub (Jan 22, 2023):

@p2kdev I actually just ran into this issue myself when trying to redeploy to fly.io. The following fix worked for me:

In Line 8 of SignTools' Dockerfile, change the line FROM

CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"

to the following:

GOFLAGS=-buildvcs=false CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"

@ViRb3 do you know if there are any downsides to using this Go Flag in the Dockerfile? If there aren't, I can open a PR to add it.

<!-- gh-comment-id:1399622933 --> @kylefmohr commented on GitHub (Jan 22, 2023): @p2kdev I actually just ran into this issue myself when trying to redeploy to fly.io. The following fix worked for me: In [Line 8](https://github.com/SignTools/SignTools/blob/master/Dockerfile#L8) of SignTools' Dockerfile, change the line FROM ` CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"` to the following: ` GOFLAGS=-buildvcs=false CGO_ENABLED=0 go build -ldflags="-s -w" -o "SignTools"` @ViRb3 do you know if there are any downsides to using this Go Flag in the Dockerfile? If there aren't, I can open a PR to add it.
Author
Owner

@Nigel1992 commented on GitHub (Feb 18, 2023):

@kylefmohr
Could you take a look at https://github.com/SignTools/SignTools/issues/292 ?

<!-- gh-comment-id:1435487273 --> @Nigel1992 commented on GitHub (Feb 18, 2023): @kylefmohr Could you take a look at https://github.com/SignTools/SignTools/issues/292 ?
Author
Owner

@ViRb3 commented on GitHub (Feb 26, 2023):

@kylefmohr:

-buildvcs
Whether to stamp binaries with version control information. By default,
version control information is stamped into a binary if the main package
and the main module containing it are in the repository containing the
current directory (if there is a repository). Use -buildvcs=false to
omit version control information.

There should be no downsides to setting this as false, addressed below.

<!-- gh-comment-id:1445497560 --> @ViRb3 commented on GitHub (Feb 26, 2023): @kylefmohr: > -buildvcs Whether to stamp binaries with version control information. By default, version control information is stamped into a binary if the main package and the main module containing it are in the repository containing the current directory (if there is a repository). Use -buildvcs=false to omit version control information. There should be no downsides to setting this as `false`, addressed below.
Author
Owner

@kylefmohr commented on GitHub (Mar 1, 2023):

@yohaoquan Unfortunately it seems that fly.io doesn't currently have a way to one-click deploy applications like Heroku did, however it is apparently in their roadmap.

@Nigel1992 I'll take a look this afternoon and see if anything jumps out at me, sorry for the delay.

<!-- gh-comment-id:1450842434 --> @kylefmohr commented on GitHub (Mar 1, 2023): @yohaoquan Unfortunately it seems that [fly.io doesn't currently have a way](https://community.fly.io/t/is-fly-still-pursuing-one-click-app-deployments/2611) to one-click deploy applications like Heroku did, however it is apparently in their roadmap. @Nigel1992 I'll take a look this afternoon and see if anything jumps out at me, sorry for the delay.
Author
Owner

@kylefmohr commented on GitHub (Mar 1, 2023):

@Nigel1992 I diffed our .toml files, and couple things are different in mine:

First, at the beginning of my fly.toml file, I have the following lines, due to the file initially being autogenerated:

# fly.toml file generated for appsigner on 2022-10-26T01:13:36-05:00

app = "appsigner"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []

I'm thinking that, especially the app = <app name> becomes potentially important later.

Where yours says:

[experimental]
  auto_rollback = true

mine has

[experimental]
  allowed_public_ports = []
  auto_rollback = true

No clue if that actually makes a difference or not.

And once I deployed my app using this file, it gave me the url of appsigner.fly.dev, which I think it grabbed from the app = portion mentioned at the beginning of the file.

Due to the fact it's been a while, I don't recall how it assigns these names, but I'm assuming this name needs to be unique, and then once you have your <name>.fly.dev url, you can point it to a custom domain, which is how mine currently works. I found instructions for doing so here: https://fly.io/blog/how-to-custom-domains-with-fly/

Edit: Oh, and put <your app name>.fly.dev as the server URL, I guess? My fly.toml file has my custom URL that I eventually pointed to the appsigner.fly.dev url, so idk if not having one would break it, but it couldn't hurt.

<!-- gh-comment-id:1450865182 --> @kylefmohr commented on GitHub (Mar 1, 2023): @Nigel1992 I diffed our .toml files, and couple things are different in mine: First, at the beginning of my fly.toml file, I have the following lines, due to the file initially being autogenerated: ``` # fly.toml file generated for appsigner on 2022-10-26T01:13:36-05:00 app = "appsigner" kill_signal = "SIGINT" kill_timeout = 5 processes = [] ``` I'm thinking that, especially the `app = <app name>` becomes potentially important later. Where yours says: ``` [experimental] auto_rollback = true ``` mine has ``` [experimental] allowed_public_ports = [] auto_rollback = true ``` No clue if that actually makes a difference or not. And once I deployed my app using this file, it gave me the url of `appsigner.fly.dev`, which I think it grabbed from the `app = ` portion mentioned at the beginning of the file. Due to the fact it's been a while, I don't recall how it assigns these names, but I'm assuming this name needs to be unique, and then once you have your `<name>.fly.dev` url, you can point it to a custom domain, which is how mine currently works. I found instructions for doing so here: https://fly.io/blog/how-to-custom-domains-with-fly/ Edit: Oh, and put `<your app name>.fly.dev` as the server URL, I guess? My fly.toml file has my custom URL that I eventually pointed to the `appsigner.fly.dev` url, so idk if not having one would break it, but it couldn't hurt.
Author
Owner

@Nigel1992 commented on GitHub (Mar 1, 2023):

@kylefmohr Thanks.
I'll try this soon!

<!-- gh-comment-id:1450880699 --> @Nigel1992 commented on GitHub (Mar 1, 2023): @kylefmohr Thanks. I'll try this soon!
Author
Owner

@kylefmohr commented on GitHub (Mar 3, 2023):

I created an application that should hopefully make generating your fly.toml file easier, and deployed it where else but fly.io: removed, but feel free to deploy yourself from the source below

It also automates the process of turning your .p12 file into a base64 string. Since many would consider it bad practice and a "security risk" to send your .p12 file, Apple developer email, and password to some unknown person (okay, it very much is lol), you can inspect and/or run the code locally, it's here

<!-- gh-comment-id:1453426644 --> @kylefmohr commented on GitHub (Mar 3, 2023): I created an application that should hopefully make generating your fly.toml file easier, and deployed it where else but fly.io: *removed, but feel free to deploy yourself from the source below* It also automates the process of turning your .p12 file into a base64 string. Since many would consider it bad practice and a "security risk" to send your .p12 file, Apple developer email, and password to some unknown person (okay, it very much is lol), you can inspect and/or run the code locally, it's [here](https://github.com/kylefmohr/SignTools-fly.toml-builder)
Author
Owner

@Nigel1992 commented on GitHub (Mar 10, 2023):

@kylefmohr Thanks for your work!
Update: Only to figure out that I can't install OTA with my free dev account.
Damn..

<!-- gh-comment-id:1463018546 --> @Nigel1992 commented on GitHub (Mar 10, 2023): @kylefmohr Thanks for your work! Update: Only to figure out that I can't install OTA with my free dev account. Damn..
Author
Owner

@ViRb3 commented on GitHub (Mar 10, 2023):

Sorry @kylefmohr, I know you're only trying to help, but as you correctly identified, having this server-side generator is a huge security risk, and even if I'm sure you are not trying to do anything fishy, there is no way to guarantee it, so I removed the deployed link. For anyone who wants to use the generator, feel free to deploy yourselves after vetting the source.

<!-- gh-comment-id:1463022148 --> @ViRb3 commented on GitHub (Mar 10, 2023): Sorry @kylefmohr, I know you're only trying to help, but as you correctly identified, having this server-side generator is a huge security risk, and even if I'm sure you are not trying to do anything fishy, there is no way to guarantee it, so I removed the deployed link. For anyone who wants to use the generator, feel free to deploy yourselves after vetting the source.
Author
Owner

@kylefmohr commented on GitHub (Mar 10, 2023):

Sorry @kylefmohr, I know you're only trying to help, but as you correctly identified, having this server-side generator is a huge security risk, and even if I'm sure you are not trying to do anything fishy, there is no way to guarantee it, so I removed the deployed link. For anyone who wants to use the generator, feel free to deploy yourselves after vetting the source.

Very understandable, I've also removed the link from my repo and am about to un-deploy it altogether.

<!-- gh-comment-id:1463044918 --> @kylefmohr commented on GitHub (Mar 10, 2023): > Sorry @kylefmohr, I know you're only trying to help, but as you correctly identified, having this server-side generator is a huge security risk, and even if I'm sure you are not trying to do anything fishy, there is no way to guarantee it, so I removed the deployed link. For anyone who wants to use the generator, feel free to deploy yourselves after vetting the source. Very understandable, I've also removed the link from my repo and am about to un-deploy it altogether.
Author
Owner

@Nigel1992 commented on GitHub (Mar 10, 2023):

@kylefmohr Is there a way to contact you privately?

<!-- gh-comment-id:1463063253 --> @Nigel1992 commented on GitHub (Mar 10, 2023): @kylefmohr Is there a way to contact you privately?
Author
Owner

@kylefmohr commented on GitHub (Mar 10, 2023):

@kylefmohr Is there a way to contact you privately?

If you'd like, it's my GitHub username @gmail.com

<!-- gh-comment-id:1463100782 --> @kylefmohr commented on GitHub (Mar 10, 2023): > @kylefmohr Is there a way to contact you privately? If you'd like, it's my GitHub username @gmail.com
Author
Owner

@Nigel1992 commented on GitHub (Mar 10, 2023):

@kylefmohr Is there a way to contact you privately?

If you'd like, it's my GitHub username @gmail.com

Never mind.
Figured out how to sideload with alternatives.

<!-- gh-comment-id:1464587548 --> @Nigel1992 commented on GitHub (Mar 10, 2023): > > @kylefmohr Is there a way to contact you privately? > > If you'd like, it's my GitHub username @gmail.com Never mind. Figured out how to sideload with alternatives.
Author
Owner

@ViRb3 commented on GitHub (Mar 14, 2023):

Copying my response from the linked PR above:

I really appreciate your willingness to help. I read your guide [on Fly.io], but one thing worries me a lot:

You may need to provide them with a credit card number in order to sign up

I tested myself, and indeed, you definitely need a valid credit card, even for the free plan. This significantly reduces the usefulness of this method. I then checked all the other alternative services I had seen over the past months, and there was literally only one that was truly free — Railway. I gave it a quick go and I was really impressed by their UX, it is very easy and intuitive to deploy SignTools on there, all from the website. I will write up a guide soon and post it, that would become the new official guide. Sadly Railway has a 500 hour limit and 10GB storage limit (yes, 1GB is advertised, but it is not displayed anywhere and you can store up to 10GB). So, your app can only run for 20 days non-stop, but if you stop it when not in use, I guess that works. Additionally, it seems like if you add your credit card, you get the same $5 free credit every month but with an extra 100GB storage and infinite runtime, so as long as you keep your CPU and RAM resources low, you may not end up having to pay anything. My current estimated cost, were I to go to the paid plan, would be $2, which is much lower than the $5 you get for free. Of course, try the paid plan at your own risk, and be prepared to actually pay money.

I don't think I will want to include Fly.io in this case, so you can stop work on this PR. Again, I really appreciate your help, especially in helping evaluate these other services for me!

TL;DR: Railway will become the new Heroku alternative, guide coming soon.

<!-- gh-comment-id:1469013531 --> @ViRb3 commented on GitHub (Mar 14, 2023): Copying my response from the linked PR above: I really appreciate your willingness to help. I read your guide [on Fly.io], but one thing worries me a lot: > You may need to provide them with a credit card number in order to sign up I tested myself, and indeed, you definitely need a valid credit card, even for the free plan. This significantly reduces the usefulness of this method. I then checked all the other alternative services I had seen over the past months, and there was literally only one that was truly free — Railway. I gave it a quick go and I was really impressed by their UX, it is very easy and intuitive to deploy SignTools on there, all from the website. I will write up a guide soon and post it, that would become the new official guide. Sadly Railway has a 500 hour limit and 10GB storage limit (yes, 1GB is advertised, but it is not displayed anywhere and you can store up to 10GB). So, your app can only run for 20 days non-stop, but if you stop it when not in use, I guess that works. Additionally, it seems like if you add your credit card, you get the same $5 free credit every month but with an extra 100GB storage and infinite runtime, so as long as you keep your CPU and RAM resources low, you may not end up having to pay anything. My current estimated cost, were I to go to the paid plan, would be $2, which is much lower than the $5 you get for free. Of course, try the paid plan at your own risk, and be prepared to actually pay money. I don't think I will want to include Fly.io in this case, so you can stop work on this PR. Again, I really appreciate your help, especially in helping evaluate these other services for me! TL;DR: Railway will become the new Heroku alternative, guide coming soon.
Author
Owner

@ViRb3 commented on GitHub (Mar 15, 2023):

Guide updated, check it out: https://github.com/SignTools/SignTools/blob/master/INSTALL-SIMPLE.md

<!-- gh-comment-id:1469208564 --> @ViRb3 commented on GitHub (Mar 15, 2023): Guide updated, check it out: https://github.com/SignTools/SignTools/blob/master/INSTALL-SIMPLE.md
Author
Owner

@kylefmohr commented on GitHub (Mar 15, 2023):

Copying my response from the linked PR above:

I really appreciate your willingness to help. I read your guide [on Fly.io], but one thing worries me a lot:

You may need to provide them with a credit card number in order to sign up

I tested myself, and indeed, you definitely need a valid credit card, even for the free plan. This significantly reduces the usefulness of this method. I then checked all the other alternative services I had seen over the past months, and there was literally only one that was truly free — Railway. I gave it a quick go and I was really impressed by their UX, it is very easy and intuitive to deploy SignTools on there, all from the website. I will write up a guide soon and post it, that would become the new official guide. Sadly Railway has a 500 hour limit and 10GB storage limit (yes, 1GB is advertised, but it is not displayed anywhere and you can store up to 10GB). So, your app can only run for 20 days non-stop, but if you stop it when not in use, I guess that works. Additionally, it seems like if you add your credit card, you get the same $5 free credit every month but with an extra 100GB storage and infinite runtime, so as long as you keep your CPU and RAM resources low, you may not end up having to pay anything. My current estimated cost, were I to go to the paid plan, would be $2, which is much lower than the $5 you get for free. Of course, try the paid plan at your own risk, and be prepared to actually pay money.

I don't think I will want to include Fly.io in this case, so you can stop work on this PR. Again, I really appreciate your help, especially in helping evaluate these other services for me!

TL;DR: Railway will become the new Heroku alternative, guide coming soon.

Makes total sense to me. They even have the "deploy to Railway" button like Heroku did, definitely the right call to go with them.

<!-- gh-comment-id:1469233284 --> @kylefmohr commented on GitHub (Mar 15, 2023): > Copying my response from the linked PR above: > > > > I really appreciate your willingness to help. I read your guide [on Fly.io], but one thing worries me a lot: > > > You may need to provide them with a credit card number in order to sign up > > > > I tested myself, and indeed, you definitely need a valid credit card, even for the free plan. This significantly reduces the usefulness of this method. I then checked all the other alternative services I had seen over the past months, and there was literally only one that was truly free — Railway. I gave it a quick go and I was really impressed by their UX, it is very easy and intuitive to deploy SignTools on there, all from the website. I will write up a guide soon and post it, that would become the new official guide. Sadly Railway has a 500 hour limit and 10GB storage limit (yes, 1GB is advertised, but it is not displayed anywhere and you can store up to 10GB). So, your app can only run for 20 days non-stop, but if you stop it when not in use, I guess that works. Additionally, it seems like if you add your credit card, you get the same $5 free credit every month but with an extra 100GB storage and infinite runtime, so as long as you keep your CPU and RAM resources low, you may not end up having to pay anything. My current estimated cost, were I to go to the paid plan, would be $2, which is much lower than the $5 you get for free. Of course, try the paid plan at your own risk, and be prepared to actually pay money. > > > > I don't think I will want to include Fly.io in this case, so you can stop work on this PR. Again, I really appreciate your help, especially in helping evaluate these other services for me! > > > > TL;DR: Railway will become the new Heroku alternative, guide coming soon. Makes total sense to me. They even have the "deploy to Railway" button like Heroku did, definitely the right call to go with them.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SignTools#75
No description provided.