

Instead you can screw it up by having too many commas or not enough. Hardly that much of an improvement.
Instead you can screw it up by having too many commas or not enough. Hardly that much of an improvement.
Yeah, this is my biggest annoyance with JSON. As a data structure it’s very elegant, but it only really makes sense to people who know how to code, and without the ability to add comments you have to rely heavily on external documentation to make it readable to most users.
I’m not that familiar myself, had to check the docs for most of that.
Ahhh… I had wondered if issuing the info command without a package would issue for all packages, but the docs seemed to suggest otherwise. So, pretty much an rm -rf / then.
Best I can tell they were trying to remove all packages that depended on a specified package, but fucked up the syntax?
Apk del --purge removes a package with its dependencies. Rather than specify the package directly, they’ve provided the output of one command piped through another. The first command is apk info -R which would in theory give the reverse dependencies of a package, if they’d given one. The second command is an awk statement that just grabs only the first column of each line that gets piped into it. I’m not sure why it would take 60 minutes to resolve though, since I’m pretty sure apk info -R with no package specified would produce no usable output. Also, ctrl-c exists.
deleted by creator
LocalSend should be called God Send because it’ll save your life. It’s AirDrop, but for everything and open source. Works really well, no setup, no server.
Audiobookshelf. Not exactly a “hidden” gem at this point, but I’m putting it here for today’s lucky 10,000. Simply the best way to store and stream audiobooks. Does podcasts too, and ebooks, although there are better tools for those.
The point is that clouds aren’t inherently bad, and actually come with a lot of important upsides; they’ve become bad because capital owns and exploits everything in our society, poisoning what should be a good idea. The author is arguing that while there’s nothing fundamentally wrong with self-hosting, it’s not really a solution, just a patch around the problem. Rather than seeking a kind of digital homesteading where our lives are reduced to isolated islands of whatever we personally can scratch from the land, we should be seeking a digital collectivism where communities, not exploitative corporations, own the digital landscape. Sieze the means of file-sharing, in effect.
The Nvidia Shield is still the best option for this. I’ve tried all kinds of homebrew solutions and always had headaches. In the two years I’ve had my Shield, I’ve never had a problem. Smart Tube Next lets me cast YouTube without ads, Kodi/Jellyfin gives me all my media library, plus I’ve got official apps for Nebula, Dropout and Spotify. Custom launcher removes what little amount of ads there were (and that was unobtrusive background banner stuff even at its worst). Plus the pro version can handle some pretty powerful emulators.
This is really cool. I maintain a lot of systems that have to be worked on from time to time by far less experienced techs than myself (due to our relationship with the business partners that use the systems) and this sort of thing could be amazing for providing a kind of inline user manual.
Seconding this. Itzg’s server is so easy, I taught my 15 year old niece to run one.
Thanks, I didn’t know about that.
I love Seafile, but I’m not sure it really meets OP’s requirements. For example I’m not aware of any way to do upload without a login in Seafile.
Honestly, none that are all that great. I tried Kodi in various forms, LibreElec, OSMC, MythTV, Steam Big Picture, and KDE TV (or whatever its called), but you’re just never going to get a great experience with stuff like Netflix and YouTube on Linux.
In the end, I bought myself an Nvidia Shield, switched out the launcher for one without ads, installed Smart Tube Next for ad-free YouTube, and I couldn’t be happier with the results. I’ve got my apps for Nebula and Dropout. I’ve got Kodi and Jellyfin for my home library. It has barely any power consumption, it boots fast, it runs a huge variety of emulators, the included remote works great (plus there’s a remote app for your phone that controls the entire system), and the wife acceptance factor is exceptional.
I’m really big on self-hosting and building all my own stuff; I use lots of repurposed hardware salvaged from companies I and my friends work at and I try to avoid off the shelf products. But I’m genuinely kicking myself for not buying a Shield sooner. It really is the best TV solution for a self hoster.
Yes, the underlying model is the same as Tailscale, Zerotier and Netmaker (also worth checking out, btw). Clients connect to a central host (which can be self-hosted) and use that to exchange information on addresses and open ports, then form direct connections to each other.
We’ve implemented netbird at my company, we’re pretty happy with it overall.
The main drawback is that it has no way of handling multiple different accounts on the same machine, and they don’t seem to have any plans for ever really solving that. As long as you can live with that, it’s a good solution.
Support is a mixed bag. Mostly just a slack server, kind of lacking in what I’d call enterprise level support. But development seems to be moving at a rapid pace, and they’re definitely in that “Small but eager” stage where everything happens quickly. I’ve reported bugs and had them fixed the same day.
Everything is open source. Backend, clients, the whole bag. So if they ever try to enshittify, you can just take your ball and leave.
Also, the security tools are really cool. Instead of writing out firewall rules by hand like Tailscale, they have a really nice, really simple GUI for setting up all your ACLs. I found it very intuitive.
Airsonic or Navidrome server, plus one of the various Subsonic apps. I like Substreamer or Dsub but there are plenty of other options.
How does this compare to something like Appsmith or Budibase?
The answers about using Dockerfiles are absolutely correct, but if you’re looking for a quick and simple solution that will work locally, you can always just use the “commit” docker command. This basically saves the current state of a container as a new image. You can then run new containers from that image as needed.
See https://stackoverflow.com/questions/44480740/how-to-save-a-docker-container-state