• Jerry@feddit.onlineOP
    link
    fedilink
    arrow-up
    8
    ·
    1 year ago

    The cost depends on who you use for hosting. I use Digital Ocean which is a bit more expensive than others, like Hetzner, but Digital Ocean has some additional services that make life a bit easier, so I use it.

    I also use Cloudflare for caching and protection, but it’s free for hobbyists and small businesses.

    There are some small costs for keeping snapshots. Less than a couple of dollars/month.

    At Digital Ocean, a 4 vCPU, 8GB server is $48/month. Snapshots might be a couple more dollars a month. I’m currently running KBIN on a server half this size but I will be bumping it up to the $48/month option in the next few days.

    Another incidental cost would be domain name registration.

    I can’t think of anything else you would need to pay for.

    • UnshavedYak@kbin.social
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      DB would be a big one, no? Not sure what Kbin is using, but DB costs tend to be meaningful as well, especially since depending on how the app is designed the usage requirements can sort of parity the app hosting requirements itself. Plus storage, but that can be more variable depending on how robust you want it to be. Ie S3 is pretty robust but it’s expensive, etc.

      • Jerry@feddit.onlineOP
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        It uses PostgrSQL. I’m paying an extra $2/month to keep the database on an external drive. So far, it’s only using 151 MB of the 20 GB. I don’t think I’ll run out of space for a while. But, this weekend, the larger server I move to will come with an 80 GB drive so I don’t think I really need an external drive. Currently, the DB doesn’t cost anything extra.

        But, you reminded me, there is a cost to keeping a database backup. My server is in NYC1. I have an S3 bucket in NYC3 that will be use to hold 5 days of daily database backup, compressed. I pay $5/month for the 250 GB Digital Ocean S3 bucket, I believe.

        • UnshavedYak@kbin.social
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          So you’re running a local DB and backing up the external drive? Neat. What about static storage? Images/videos/etc? How are you handling backup?

          I’m interested in this space because i’m writing an experimental ActivityPub client and one of my goals is to make it “as cheap as possible” to run a micro-instance. I plan on exploiting a single directory, sqlite and file storage, that users can just rsync or backup however they wish. Cheap is tough hah.

          • Jerry@feddit.onlineOP
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            I was hoping to store the images directly in an S3 bucket at Wasabi, which is what I do for Mastodon, Calckey, and Peertube. However, this is not yet supported in KBIN. I think only AWS is supported as a hard-coded option.

            I tried setting up a FUSE drive connected to Wasabi and I used a symbolic link to point public/image to it, but, alas, the Symfony framework does not support symlinks. Until external S3 is supported, I have to store the images locally. Ernest did post today that external storage for thumbnails is on the horizon. So maybe all media can be externally stored.

            Until then, I’m storing them on the local disk. This weekend I’m going to see if I can set up rclone to automatically synchronize the public/image directory to a Wasabi S3 bucket so at least it will be constantly backed up.

            When external S3 becomes an option, I’ll move the media folder to the S3 bucket and hook it up.

    • duringoverflow@kbin.social
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      I also use Cloudflare for caching and protection

      looks like you weren’t here the previous days. There is serious problem with cloudflare and federation since cloudflare will start blocking all the attempts of other intances trying to communicate with your instance. The browser JS validation, has to be turned off.