FreshRSS on fly

The problem.

I'm broke, and I like using FreshRSS.

The solution.

We'll be using fly.io they have a generous free allowance.

Setting up

First, you have to sign up for fly account. Get their cli, and login with flyctl auth login.

Deploying FreshRSS

Create a directory where you'll store the fly.toml file, cd into this directory, we'll do our magic.

Now, we need to create an app on fly.io, using the following command:

flyctl app create --save

After this, you'll get an auto-generated fly.toml file.
Modify it to look like this (don't change the app name):

app = 'your-app-name' # TODO: update me
primary_region = 'fra'
kill_signal = 'SIGINT'

[build]
# Please check what the latest version is at: https://github.com/FreshRSS/FreshRSS
# and set it here
image = 'docker.io/freshrss/freshrss:1.27.1'

[env]
CRON_MIN = '*/20' # update feeds every 20 minutes

# you don't want your account and feeds to be deleted after a restart
[[mounts]]
source = 'freshrss_data'
destination = '/var/www/FreshRSS/data'

# you probably want this app to be accessible
[[services]]
protocol = 'tcp'
internal_port = 80
processes = ['app']

[[services.ports]]
port = 80
handlers = ['http']
force_https = true

[[services.ports]]
port = 443
handlers = ['tls', 'http']

[[vm]]
size = 'shared-cpu-1x'

Deploy to fly.io by running:

flyctl launch

Now open your-app-name.fly.dev in your browser, and follow the setup wizard. Chose sqlite as your database, it will be automatically stored in /var/www/FreshRSS/data.

Setting up custom domain (optional)

fly certs create rss.your-domain.com

The output of this command will guide you through the records you need to add to your domain.