What are your homelab stats?
meteokr @ meteokr @community.adiquaints.moe Posts 4Comments 217Joined 2 yr. ago

This is super cool! Do you know if other systems have open source flash cart projects like this?
No worries, I'll link to some Arch Wiki stuff to help explain. Containers are a very cool system for isolating environments. Similar to how python uses VENV to contain all the dependencies for a python program, containers let you have a full environment beyond just the python stuff. I use podman to actually run the container on my computer. You use a Containerfile, to define what you want this environment to look like, and docker/podman does all the hard work for you, by making an image file that holds the whole thing in one place separate from our real OS.
This is my start script.
#!/usr/bin/env bash podman run -it --rm --name stablediff2 -p 7860:7860 \ -e COMMANDLINE_ARGS="--api --listen --port 7860 --enable-insecure-extension-access --medvram-sdxl --cors-allow-origins *" \ --device /dev/dri:dev/dri \ --device /dev/kfd:/dev/kfd \ -v ./models:/dockerx/stable-diffusion-webui/models:z \ -v ./repos:/dockerx/stable-diffusion-webui/repositories:z \ -v ./extensions:/dockerx/stable-diffusion-webui/extensions:z \ -v ./embeddings:/dockerx/stable-diffusion-webui/embeddings:z \ -v ./outputs:/dockerx/stable-diffusion-webui/outputs:z \ -v ./inputfiles:/dockerx/stable-diffusion-webui/inputfiles:z localhost:stablediffusion:latest
This is just telling podman to start the container, give it an actual terminal to connect to, remove the container if it stops running, give it a name, and tell it what ports it can run on.
podman run -it --rm --name stablediff2 -p 7860:7860
These are the arguments passed to the webui start script itself, mostly for my own convenience. The medvram-sdxl is not required, since my card has enough vram, but then I can't be doing anything else with it. So I sacrifice a bit of generation speed for more free memory for the rest of my computer. I'm running this locally, so insecure extension access also doesn't matter since I'm the only one using this, just makes installing extensions from the webui directly.
-e COMMANDLINE_ARGS="--api --listen --port 7860 --enable-insecure-extension-access --medvram-sdxl --cors-allow-origins *" \
These are just the device files that correspond to my GPU, so that the container has access to it. Without this, the container would only have access to CPU based generation. Everything else is just the folders that holds my models, extensions etc. You have to give the container exactly what you want it to, because its isolated away from your normal files unless you tell it otherwise.
--device /dev/dri:dev/dri \ --device /dev/kfd:/dev/kfd \
This is iterations per second, I believe. It's basically a measure of how fast stablediffusion is is running a particular generation of an image. It lets people compare performance across different software and hardware configurations.
10 it/s
NixOS is the name of the GNU/Linux operating system I'm using, similar to how MacOS is different than Windows, NixOS is another type of operating system. I've only been using it for a few months, but its extremely cool. Before that I mostly used Debian and Fedora, but the main difference between NixOS and them is that you can define you whole OS as a configuration files, and then the tools it's designed around build your system for you. So instead of say, installing a program, opening it up and going into settings and changing everything to be how you like it. You can instead just make a file that lists everything the way you want it from the start, and Nix installs the program and sets it all up all in one go. It has a pretty big learning curve, and its features are numerous that I have yet to take full advantage of them. Probably not the best to start with if you are new to GNU/Linux systems, but once you see the benefits of why it does things differently, its awesome.
Hopefully that explains most of the words I used. Pardon my formatting, as I don't know markdown very well and I think I separated everything okay. :)
by default, set up to run in a venv
It does, but since I'm running inside a container, I disable that behavior, and run it as a user package. Some extensions also require additional libraries, but they don't pull the correct ROCm dependencies and I have to modify part of the install scripts to manually define the correct versions.
The main webui code is excellent, even if sometimes the documention is out of step because of how fast everything moves. Its the extensions that are not always to the same level of quality that make fiddling with python dependencies a bit of extra work.
I run it in a container on a NixOS host yes, eventually I'll learn how to do it in a flake but my nix skills aren't quite there yet. EDIT: I use a 6900xt, and some quick runs I did give me roughly 10 it/s. Which feels reasonably fast, only a couple seconds per image.
I use stable diffusion with automatic1111's webui ran locally with an AMD GPU. I use the card for gaming and encoding too, so the cost for just AI is basically free. The webui is excellent, and I learn about new things it can do every time I use it. Setting it up took some time, but nothing beyond what I am familiar with. I do loathe that so much data science/AI stuff is python based, because python's dependency management is an unruly beast, but oh well.
Is oneko the modern-ish version? As this sounds adorable.
No amount of polishing that turd will make me ignore the fundamental user unfriendliness that is nested text drop-downs.
Can you give me an example of this? From my perspective, using something like Kate, the extremely user friendly experience of discovery is vastly better than something like vi. In Kate, I appreciate the discoverability of having a list of options. I recently learned it can interact with LSP's because of the menus. I don't use it for that all that much, but it was cool to even know it could do that. Maybe vi is bad comparison, but off the top of my head GTK apps just have the hamburger menu, that then opens up the list of text menu options. Seems like its just hiding the option menus by nesting them in an additional layer of a button.
For the record, I haven't used a windows computer as anything more than an appliance in over a decade, so maybe the influence is lost on me.
I don't know if this is what you are looking for but I used :z with podman mounting and it Just Works*.
podman run -d -v /dir:/var/lib/dir:z image
From the documentation :z or :Z relabels volumes for host and container usage depending.
Its got a closer feature set to ZFS (tiered storage is going to be huge for me personally), but a much friendlier license. ZFS's licensing drama solidly convinced me not to touch it with a ten meter pole. BTRFS isn't bad as well, I currently use it, but tiered storage is excellent. Was the only reason I used to consider ZFS, but becachefs is getting to have my cake and eat it too.
Rebuild after every config change
This is pretty much the whole point of using nix. The system is declarative, so it rebuilds the parts that changed, because all changes are imperitive and atomic. If it didn't rebuild your sshd config and restart the service when you changed the accepted key types, what would even be the point? Coming from a huge ansible background nix feels like ansible on steroids.
FHS incompatibility
Why does this matter? Nix manages all your system binaries and PATHs just like any other distro, so why would it matter where they are kept? Programs like type/which still work exactly the same, and nix imports your dependencies exactly as described in the build scripts when you need to compile something locally.
Its honestly refreshing to see a distro really pushing innovation like this by taking advantage of everything Unix systems are built with and doing something this cool.
Of course, those are discreet projects that can be picked out when there is a use case for them. Discreet solutions to problems is the hallmark of Unix systems isn't it? Any distro maintainer can choose to enable these if they want, as is the admin.
Kinda unfair to call Debian stable old when it just got a new release a few months ago. Sure, in a year or two it'll start to feel old, but if one were to use flatpaks as you suggested, then Debian stable is perfectly fine, as at that point you aren't even using the system libs anyway.
Linux desktop updates are handled totally differently than Windows. I don't even see them, as my distro just has a timer that checks for updates once a day, then updates the whole system in the background. If anything, this behavior is intended for non-power users.
Looking forward to steam deck support, as this looks very fun.
Not just any cheese product, but "Pasteurized Prepared Cheese Product", because they got in trouble with the FDA a couple of times by calling them "food" hilariously.
From the phoronix article it looked very competitive considering it been in official mainline for only a couple of weeks. Was surprise how well it was handling the first SQL tests.
This method is perfect for fully controlling your traffic. As another option, you can run a wireguard VPN on the vps and route traffic back through the VPN. In my experience wireguard has better performance than an ssh tunnel and allows for actual network topology with subnets rather than just raw port forwarding.
Would be interesting to see how this compares to XMPP or Matrix. Obviously the development costs something for each of those, but the hosting costs are spread out across each of those hosting an instance.
I believe they changed some of their licensing from the fallout of their IPO. Just worth noting for the selfhosting crowd. I know terraform is being forked entirely, but I'm unfamiliar with the specifics beyond that.