Info Security Memo
  • Blog
  • Sitemap
    • Categories
  • Contact
  • About
  • Resources
  • Tools
  • 51sec.org

Build Confidence

Focusing on Information Security 

Info Security Notes

[5 Minutes Docker] Deploy FreshRSS Using Docker Run Command and Deploy To Fly.io

1/30/2023

0 Comments

 
[5 Minutes Docker] Deploy FreshRSS Using Docker Run Command and Deploy To Fly.io
FreshRSS is a free, self-hostable RSS feeds aggregator. Fly.io is a super amazing platform that runs application servers close to end users.
Fly.io can take Docker images (or Dockerfiles, or buildpacks) and boot them into Firecracker powered microVMs. When you deploy with Fly.io, you get an Anycast IP, along with TLS offloading by them.



The method for installing FreshRSS in fly.io is mostly coming from Sathyasays's blog post: Self-hosting FreshRSS (for free) on Fly.io in under 10 minutes

Free Tier Plan from Fly.io

Free tier Free Allowances

Resources included for free on all plans:

  • Up to 3 shared-cpu-1x 256mb VMs†
  • 3GB persistent volume storage (total)
  • 160GB outbound data transfer, inbound transfer is free
  • 10 Free Single Hostname Certificates

†3 VM's total between Apps and Machines

Price

Additional resources are billed at the usage-based pricing detailed below.

App/Machine Type      CPU(s)                  RAM                Price
shared-cpu-1x 1           shared                    256MB             $0.0000008/s ($1.94/mo)

Related Websites


  • Website: https://www.freshrss.org/
  • Github : https://github.com/FreshRSS
  • Demo: https://demo.freshrss.org/
  • Doc: https://freshrss.github.io/FreshRSS/
  • Docker Github: https://github.com/FreshRSS/FreshRSS/tree/edge/Docker
  • Docker Hub : https://hub.docker.com/r/freshrss/freshrss/


Docker Deployment Steps


  • Docker Github: https://github.com/FreshRSS/FreshRSS/tree/edge/Docker
  • Docker Hub : https://hub.docker.com/r/freshrss/freshrss/

Quick Run



docker run -d --restart unless-stopped --log-opt max-size=10m \
  -p 8080:80 \
  -e TZ=Europe/Paris \
  -e 'CRON_MIN=1,31' \
  -v freshrss_data:/var/www/FreshRSS/data \
  -v freshrss_extensions:/var/www/FreshRSS/extensions \
  --name freshrss \
  freshrss/freshrss

  • Exposing on port 8080
  • With a server timezone (default is UTC)
  • With an automatic cron job to refresh feeds
  • Saving FreshRSS data in a Docker volume freshrss_data and optional extensions in freshrss_extensions
  • Using the default image, which is the latest stable release

Update the docker

# Rebuild an image (see build section below) or get a new online version:
docker pull freshrss/freshrss
# And then
docker stop freshrss
docker rename freshrss freshrss_old
# See the run section above for the full command
docker run ... --name freshrss freshrss/freshrss
# If everything is working, delete the old container
docker rm freshrss_old


Launch it from Docker Play Lab Site






Fly.IO Deployment Steps

This is assuming you have installed fly.io's flyctl tool. If not you will need to install flyctl. 

How to install flyctl: https://fly.io/docs/hands-on/install-flyctl/

Basically for windows, you just need to run following command from administrator's powershell window:
  • iwr https://fly.io/install.ps1 -useb | iex
    

1 Sign Up for Fly.io and Sign in

You can use your github account to log in or use an email account to sign up

You will need to add your credit card for free credit allowances, else you will get an error message when do deployment:

PS C:\Users\WDAGUtilityAccount> fly launch
An existing fly.toml file was found for app freshrss51
App is not running, deploy...
==> Building image
Searching for image 'freshrss/freshrss:1.20.1' remotely...
image found: img_y7nxpkrd5j2v8w25
==> Creating release
Error We need your payment information to continue! Add a credit card or buy credit: https://fly.io/dashboard/freshrss51sec/billing


2 Sign into your Fly.io account by typing flyctl auth login

PS C:\Users\WDAGUtilityAccount> flyctl auth login
Opening https://fly.io/app/auth/cli/8e426809a69c7d38e2ca77e0f62ae57 ...

Waiting for session... Done
successfully logged in as [email protected]


3 Create fly.toml file. You can use fly launch command to auto-generate one , then use notepad edit it with follow similar format

The most important part is to change app name, which must be uniqe. 

# fly.toml file generated for freshrss51 on 2023-01-24T20:14:49-05:00

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

[build]
  image = "freshrss/freshrss:1.20.1"

[env]
  CRON_MIN='*/20'

[mounts]
  source="freshrss51sec_data"
  destination="/var/www/FreshRSS/data"

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 80
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
  [services.concurrency]
    hard_limit = 25
    soft_limit = 20
    type = "connections"

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

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

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"


4 After created fly.toml file, you can create a persisting data volume using the command 

  • fly volumes create freshrss_data --size 1
In this command, we create a volume of size 1GB. This can be increased later, so I selected the lowest possible number, as flyctl expects size in GB and doesn’t accept fractional numbers.


PS C:\Users\WDAGUtilityAccount> fly volumes create freshrss51sec_data --size 1
? Select region: Toronto, Canada (yyz)
        ID: vol_53q80vdpk66vgzy6
      Name: freshrss51sec_data
       App: freshrss51
    Region: yyz
      Zone: 5e29
   Size GB: 1
 Encrypted: true
Created at: 25 Jan 23 01:29 UTC
PS C:\Users\WDAGUtilityAccount> fly launch
An existing fly.toml file was found for app freshrss51
App is not running, deploy...
==> Building image
Searching for image 'freshrss/freshrss:1.20.1' remotely...
image found: img_y7nxpkrd5j2v8w25
==> Creating release
--> release v2 created

--> You can detach the terminal anytime without stopping the deployment
==> Monitoring deployment
Logs: https://fly.io/apps/freshrss51/monitoring

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v0 deployed successfully

PS C:\Users\WDAGUtilityAccount> flyctl ips list
VERSION IP                      TYPE            REGION  CREATED AT
v6      2a09:8280:1::3:d1e9     public          global  12m8s ago
v4      66.241.124.170          public (shared)


Check from online website, please make sure you are using right organization.


It is running now:


You will get a default url which is <appname>.fly.dev, as you can see from the screenshot I am having

  • freshrss51.fly.dev


Custom Domains and SSL Certificates:

 fly.io does support to add your own domain for your apps ,and also provide 10 free ssl certificates for your apps. 


Of course, you will need to confirm your domain ownership using cname (optional) and add A / AAAA record for it:

You can visit my testing site: https://reader.51sec.org


Custom Domains and SSL Certificates Doc:
  • https://fly.io/docs/app-guides/custom-domains-with-fly/#creating-a-custom-domain-on-fly-manually
Note: https://sathyasays.com/2022/09/05/self-hosting-freshrss-fly-io-free/



Some Commands

 fly volumes list



PS C:\Users\WDAGUtilityAccount> fly volume list
ID                      STATE   NAME                    SIZE    REGION  ZONE    ENCRYPTED       ATTACHED VM     CREATED AT
vol_53q80vdpk66vgzy6    created freshrss51sec_data      1GB     yyz     5e29    true            53c402b6        1 hour ago
vol_g2yxp4mdy5z463qd    created freshrss_data           1GB     yyz     5e29    true                            1 hour ago

PS C:\Users\WDAGUtilityAccount>
PS C:\Users\WDAGUtilityAccount> fly volume delete vol_g2yxp4mdy5z463qd
Deleting a volume is not reversible.
? Are you sure you want to destroy this volume? Yes
Destroyed volume vol_g2yxp4mdy5z463qd from freshrss51
PS C:\Users\WDAGUtilityAccount>


Currently, we are having 1GB volume created. If 1GB is not enough, you will be able to expand it to at most 3GB for free using command line tool.


Videos

 







References


  • Website: https://www.freshrss.org/
  • Github : https://github.com/FreshRSS
  • Demo: https://demo.freshrss.org/
  • Doc: https://freshrss.github.io/FreshRSS/
  • Docker Github: https://github.com/FreshRSS/FreshRSS/tree/edge/Docker
  • Docker Hub : https://hub.docker.com/r/freshrss/freshrss/









via Blogger http://blog.51sec.org/2023/01/5-minutes-docker-deploy-freshrss-using.html
January 30, 2023 at 09:00AM Docker
0 Comments



Leave a Reply.

    Categories

    All
    Architecture
    Blog
    Checkpoint
    Cisco
    Cloud
    CyberArk
    F5
    Fortigate
    Guardium
    Juniper
    Linux
    Network
    Others
    Palo Alto
    Qualys
    Raspberry Pi
    Security
    SIEM
    Software
    Vmware
    VPN
    Wireless

    Archives

    March 2024
    February 2024
    January 2024
    December 2023
    November 2023
    October 2023
    September 2023
    August 2023
    July 2023
    June 2023
    May 2023
    April 2023
    March 2023
    February 2023
    January 2023
    December 2022
    November 2022
    October 2022
    September 2022
    August 2022
    July 2022
    June 2022
    May 2022
    April 2022
    March 2022
    February 2022
    January 2022
    December 2021
    November 2021
    October 2021
    September 2021
    August 2021
    July 2021
    June 2021
    May 2021
    April 2021
    March 2021
    February 2021
    January 2021
    December 2020
    November 2020
    October 2020
    September 2020
    August 2020
    July 2020
    October 2019
    September 2019
    June 2019
    July 2018
    May 2018
    December 2017
    August 2017
    April 2017
    March 2017
    January 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015
    June 2015
    May 2015
    April 2015
    March 2015

    Print Page:

    RSS Feed

    Email Subscribe
Powered by Create your own unique website with customizable templates.
  • Blog
  • Sitemap
    • Categories
  • Contact
  • About
  • Resources
  • Tools
  • 51sec.org