You might be interested in this project where someone has hooked up a low-power system to Mastodon and is tooting through it stories about the experience. The project author may also be worth contacting.
Canadian software engineer living in Europe.
You might be interested in this project where someone has hooked up a low-power system to Mastodon and is tooting through it stories about the experience. The project author may also be worth contacting.
What exactly are you self-hosting that’s gobbling up that much data? I’ve been self-hosting my website for decades and haven’t used that much over all that time let alone in one month.
Most of my bandwidth consumption is from torrents and downloading Steam games, but even that doesn’t get me to even 1tb/month.
You can’t really make them go idle, save by restarting them with a do-nothing command like tail -f /dev/null
. What you probably want to do is scale a service down to 0. This leaves the declaration that you want to have an image deployed as a container, “but for right now, don’t stand any containers up”.
If you’re running a Kubernetes cluster, then this is pretty straightforward: just edit the deployment config for the service in question to set scale: 0
. If you’re using Docker Compose, I believe the value to set is called replicas
and the default is 1
.
As for a limit to the number of running containers, I don’t think it exists unless you’re running an orchestrator like AWS EKS that sets an artificial limit of… 15 per node? I think? Generally you’re limited only by the resources availabale, which means it’s a good idea to make sure that you’re setting limits on the amount of RAM/CPU a container can use.
Syncthing on Android will be discontinued, and there’s a fork already, which as I said above, I use.
deleted by creator
I guess it’s been a while then. Syncthing works perfectly for me, with the official latest version in Arch, the older version in Debian, the flatpak on Ubuntu, and the forked version on Android, syncing all my Joplin data all over the place.
I don’t much care for the file format though. The appeal of Git Journal is strong.
Joplin + Syncthing has been great for me. Sync across multiple devices with no third party in between. However the “sharing” in this context is limited to other installations of the entire db. To my knowledge, there’s no way to say “sync these notes with my wife, and these others with my phone only” etc.
Each Pi 4 has 8GB of RAM. With six devices, that’s 48GB to play with. More than enough for my needs.
Actually, as a web guy, I find the ARM architecture to be more than sufficient. Most of the stuff I build is memory heavy and CPU light, so the Pi is great for this stuff.
They’re fanless and low-power, which was the primary draw to going this route. I run a Kubernetes cluster on them, including a few personal websites (Nginx+Python+Django), PostgreSQL, Sonarr, Calibre, SSH (occasionally) and every once in a while, an OpenArena server :-)
Seven Raspberry Pi 4’s and one Pi Zero, mounted on some tile “shelves” inside some IKEA furniture.
Monolith has the same problem here. I think the best resolution might be some sort of browser-plugin based solution where you could say “archive this” and have it push the result somewhere.
I wonder if I could combine a dumb plugin with Monolith to do that… A weekend project perhaps.
Monolith can be particularly handy for this. I used it in a recent project to archive the outgoing links from my own site. Coincidentally, if anyone is interested in that, it’s called django-cool-urls.
You probably want to look into Health Checks. I believe you can tell Docker to “start service B when service A is healthy”, so you can define your health check with a script that depends on Tailscale functioning.
So my first impression is that the requirement to copy-paste that elaborate SQL to get the schema is clever but not sufficiently intuitive. Rather than saying “Run this query and paste the output”, you say “Run this script in your database” and print out a bunch of text that is not a query at all but a one-liner Bash script that relies on the existence of pbcopy
– something that (a) doesn’t exist on many default installs (b) is a red flag for something that’s meant to be self-hosted (why am I talking to a pasteboard?), and (c) is totally unnecessary anyway.
Instead, you could just say: “Run this query and paste the result in this box” and print out the raw SQL only. Leave it up to the user to figure out how they want to run it.
Alternatively you can also do something like: “Run this on your machine and copy/paste the output”:
$ curl 'https://app.chartdb.io/superquery.sql' | psql --user USERNAME --host HOSTNAME DBNAME
In the case of the cloud service, it’s also not clear if the data is being stored on the server or client side in LocalStorage
. I would think that the latter would be preferable.
Generally, I agree. I think what I meant by the above is “how would you tell someone how to use the thing”. My favourite example is email vs email-with-PGP.
How do you send an email?
How do you send a PGP-encrypted email
Let’s first talk about this thing called a “keyserver”. Once you know what that is, you’ll have to go out and find some keys to add to it. We’re not going to talk about styling your message 'cause that’s not something you should be able to do… etc. etc.
This is a common problem with Free software, and honestly I think it’s our biggest one: we build stuff for ourselves and stop there. If we want our stuff to be adopted (which, for things that rely on network effects, we do) then we need to pay more attention to usability.
Here’s a suggestion for anyone starting a project they think they might share. Before you start writing any code, write the documentation. Then rewrite it from the perspective of the least tech-literate person you know who you’d still want to use the project. Only after you’ve worked out how easy it should be for this person to get started, then you can start writing the thing.
I’ve been self-hosting my blog for 21years if you can believe it, much of it has been done on a server in my house. I’ve hosted it on everything from a dusty old Pentium 200Mhz with 16MB of RAM (that’s MB, not GB!) to a shared web host (Webfaction), to a proper VPS (Hetzner), to a Raspberry Pi Kubernetes cluster, which is where it is now.
The site is currently running Python/Django on a few Kubernetes pods on a few Raspberry Pi 4’s, so the total power consumption is tiny, and since they’re fanless, it’s all very quiet in my office upstairs.
In terms of safety, there’s always a risk since you’re opening a port to the world for someone to talk directly to software running in your home. You can mitigate that by (a) keeping your software up to date, and (b) ensuring that if you’re maintaining the software yourself (like I am) keeping on top of any dependencies that may have known exploits. Like, don’t just stand up an instance of Wordpress and forget about it. That shit’s going to get compromised :-). You should also isolate the network from the rest of your LAN if you can. Docker sort of does this for you (though I hear it can be broken out of), but a proper demarcation between your laptop and a server on the Open web is a good idea.
The safest option is probably to use a static site generator like Hugo, since then your attack surface is limited to whatever you’re using to serve the static sites (probably Nginx), while if you’re running a full-blown application that does publishing etc., then that’s a lot of stuff that could have holes you don’t know about. You may also want to setup something like Cloudflare in front of your site to prevent a DOS attack or something from crippling your home internet, though that may be overkill.
But yeah, the bandwidth requirements to running a blog are negligible, and the experience of running your own stuff on your own hardware in your own house is pretty great. I recommend it :-)
At the firewall level, port forwarding forwards traffic bound for one port to another machine on your network on an arbitrary port, but the UI built on top of it in your router may not include this.
If it’s not an option in your Fritzbox, your options are:
The first and last options on this list are probably the best.
This is pretty slick, but doesn’t this just mean the bots hammer your server looping forever? How much processing do you do of those forms for example?