[-] rutrum@lm.paradisus.day 1 points 1 day ago

It seemed nice at first, but one major issue: GPU passthrough was a nightmare. It cant be done in the UI and I didnt understand fully how it worked. There are many different tutorials not by promox that are outdated or may not work. It was frustrating enough I jumped to NixOS. Other hiccups included having to go to the terminal to passthrough drives for openmediavault, but that one was kind of straightforward atleast, and it worked first time.

In hindsight, I didnt actually need to virtualize everything at that level, so I never really had a good use case for it anyway. I use containers over entire VMs.

[-] rutrum@lm.paradisus.day 1 points 1 day ago

For it to contribute to the public, I would also want some sort of way to help the admin notify the oublic about it. I was even thinking that this would come with its own cli tool to check that the instance was visible on the open internet, and the present in public instance lists like searx.space. In this case, building and configuration is alrwady handled by NixOS, which is nice. I havent looked into others.

[-] rutrum@lm.paradisus.day 1 points 2 days ago

That looks like the same idea for a different set of tools. That's a great reference, thank you!

[-] rutrum@lm.paradisus.day 0 points 2 days ago

I'm pretty ignorant on crypto, I just knew that it was important to have many mining to increase transaction times, decrease transactions costs, decentralize proof of work, etc. And practically you're right, might be a good way to absolutely ruin the performance of the server.

20
submitted 2 days ago* (last edited 2 days ago) by rutrum@lm.paradisus.day to c/nix@programming.dev

This idea is inspired by nixos-mailserver. It was so easy to spin up the mailserver after changing some DNS records and putting in some settings. I thought it might be a good idea to do the same for services that need public, decentralized infrastructure to support. Some ideas include

  • Tor relay, or exit node
  • Encrypted messaging nodes. It looks like SimpleX chat relies on SMP servers to relay communication
  • Crypto miners (I know, I know, but you understand how it fits the “public contribution” usecase)
  • Search engines like searxng (I currently use a public instance)
  • Libredirect services, like proxy clients for social media

Maybe federated services, but those require more than just the software running on the public internet. Those require moderation and long term maintenance. Ideally, the services in this config would be ephemeral.

Does this sound like a good idea? Would you spin one of these up on a $10 VPS? I understand that this is the NixOS community, not necessarily the privacy community, but I figured thered be overlap.

What other services do you think would be applicable?

7
submitted 2 days ago* (last edited 2 days ago) by rutrum@lm.paradisus.day to c/nixos@infosec.pub

This idea is inspired by nixos-mailserver. It was so easy to spin up the mailserver after changing some DNS records and putting in some settings. I thought it might be a good idea to do the same for services that need public, decentralized infrastructure to support. Some ideas include

  • Tor relay, or exit node
  • Encrypted messaging nodes. It looks like SimpleX chat relies on SMP servers to relay communication
  • Crypto miners (I know, I know, but you understand how it fits the "public contribution" usecase)
  • Search engines like searxng (I currently use a public instance)
  • Libredirect services, like proxy clients for social media

Maybe federated services, but those require more than just the software running on the public internet. Those require moderation and long term maintenance. Ideally, the services in this config would be ephemeral.

Does this sound like a good idea? Would you spin one of these up on a $10 VPS? I understand that this is the NixOS community, not necessarily the privacy community, but I figured thered be overlap.

What other services do you think would be applicable?

[-] rutrum@lm.paradisus.day 2 points 4 days ago

Pff, if pandas gets me numpy that works that may not be a bad hack. I'll try this! Sorry I dont know how to fix qt!

[-] rutrum@lm.paradisus.day 4 points 4 days ago

I've had the same problem running numpy. Shockingly with a library so popular I havent found a way to make an environment with it work. I also had the most success with poetry, so I think you're on the right track.

[-] rutrum@lm.paradisus.day 9 points 5 days ago

From my short time with proxmox, I had to dive into the command line to do configuration at the host level that couldnt be done with the UI. I think nixos will help replacd those ad hoc configurations with nix options. In the many articles I read about gpu passthru, and also doing harddrive passthru, I had to work in the host debian environment.

I dumped proxmox because I couldnt get gpu passthrough to work, and havent looked back. Nixos modules and docker have served me better than VMs for my usecase.

17
submitted 3 weeks ago* (last edited 3 weeks ago) by rutrum@lm.paradisus.day to c/linux@lemmy.ml

TabbyML is a self-hosted code assistant. I have been unsuccessful at running it using my Nvidia GPU. There's two ways I've tried to deploy this.

As a docker container

Following the docs, it states I run the following docker run command. Below is what I run, modified to use the correct port:

docker run -it --gpus all \
  -p 11029:8080 -v $HOME/.tabby:/data \
  tabbyml/tabby serve --model StarCoder-1B --device cuda

Then I get the following error:

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

So this would appear that I don't have the "nvidia-container-toolkit" installed on my machine. So I go ahead and enable this in nixos:

hardware.nvidia-container-toolkit.enable = true;

To validate that this works, I should be able to run nvidia-smi from within a container. I can run this from the host without issue:

$ nvidia-smi
Wed Jun  5 08:14:50 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.78                 Driver Version: 550.78         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
...and so on

But if test this from a container, as the nvidia docs suggest as follows, I unable to access it from within the container.

$ sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
docker: Error response from daemon: unknown or invalid runtime name: nvidia.

Okay, so I go and read the instructions further. Install instructions state that after installation, I need to configure the runtime like so:

$ sudo nvidia-ctk runtime configure --runtime=docker
sudo: nvidia-ctk: command not found

Ah nuts. That's a bug in nixos. I made a PR for this here: https://github.com/NixOS/nixpkgs/pull/317199 Still awaiting results from this. I don't know if this is a bug that will be backported to 24.05. Regardless, I wouldn't expect this ad-hoc configuration when I enable the nvidia-container-toolkit option in NixOS. Anyway, this option could still work but with some more time. If you have advice doing this let me know.

FOUND Docker method solution

So looking closer at people with the error message "no such runtime nvidia" I found this thread. It specifies that what nvidia-ctk is supposed to do is add a "runtime" that points to the nvidia-container-runtime executable. So I tried manually adding that my nixos configuration by using the virtualisation.docker.daemon.settings options. I was having trouble getting that working, because I needed to find the exact path to the nvidia-container-runtime executable. If you know Nix, you know that it isn't just in /usr/bin/.

But that's still not a satisfying solution anyway...I shouldn't have to this. I went in deeper and looked at module for nvidia-container-toolkit. This module calls a script called cdi-generate.nix. It outputs the results of nvidia-ctk to a file called nvidia-container-toolkit.json.

Let's go look for that file...can't find it. I do more searching...anyway, I found the solution.

The nvidia-container-toolkit is a new option in NixOS 24.05. It explicitly states in the release notes that it is supposed to replace the now deprecated virtualisation.{docker, podman}.enableNvidia options. Well, when you go look at the module that defines docker.enableNvidia you see it there at the bottom! This file actually defines the nvidia runtime!

And yes, it works. Using the now "deprecated" option is the one that actually works. I guess this is another bug to file to NixOS.

This seems to work so far, but I don't know why the solution using a NixOS module doesn't work either.

As a NixOS module

Let's just do it the full NixOS module way (which is what I tried first). That should be easy. Let's enable the feature and set some options:

services.tabby = {
    enable = true;
    port = 11029;
    acceleration = "cuda";
  };
  networking.firewall.allowedTCPPorts = [ 11029 ];

It appears to be working! VSCodium extension sees the server and prompts for a authentication token. I add the token. I type some code and set for a manual trigger...then tabby dies. Let''s look at the systemd logs.

tabby[76786]: 📄 Version 0.11.1
tabby[76786]: 🚀 Listening at 0.0.0.0:11029
tabby[76786]:   JWT secret is not set
tabby[76786]:   Tabby server will generate a one-time (non-persisted) JWT secret for the current process.
tabby[76786]:   Please set the TABBY_WEBSERVER_JWT_TOKEN_SECRET environment variable for production usage.
systemd[1]: tabby.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: tabby.service: Failed with result 'exit-code'.
systemd[1]: tabby.service: Consumed 2.285s CPU time, received 121.0K IP traffic, sent 1.6M IP traffic

That's it. It's not very descriptive about what happened. I've had success running it this way using the "cpu" option for acceleration (no GPU) but that's too slow to be useful.

GPU specs

I am running a Nvidia RTX 2060 and using the proprietary drivers version 550.

Thanks for the read, if you have any input on what to do next let me know what I can try. Ideally, I'd like to have both options work, since I think the docker implementation may have the same problem as the NixOS module option.

24
"No code" databases (lm.paradisus.day)
submitted 1 month ago* (last edited 1 month ago) by rutrum@lm.paradisus.day to c/selfhosted@lemmy.world

I've been seeing easy ways to store and view tabular data. I'm aware of tools like nocodb, baserow, and mathesar. I'm currently playtesting nocodb. But I wanted to start a discussion on what everyone uses for easily storing tabular data, and if anyone uses these tools.

I've also tried nextcloud tables but it still is very early in development from what I can tell.

[-] rutrum@lm.paradisus.day 58 points 2 months ago

Sometimes the app just shows a barcode that they scan. I always screenshotted the barcode and deleted the app. Better yet, save the barcode in catima https://catima.app/

[-] rutrum@lm.paradisus.day 33 points 4 months ago

To be fair, you're taking on a lot of new things at once. You can spin up docker containers on windows too, all while using a UI. I think it's great your exposing yourself to self hosting, linux, command line interface, and containerization all at once, but don't beat yourself up for it taking longer than expected. A lot of it takes time. I encourage you to keep trying and playing. Good luck!

29

I'm sure doing it manually is the safest, but perhaps there's a least poison for software/services for filing US taxes. What do you recommend? (or, atleast, what do you recommend steering clear of)

85
submitted 5 months ago* (last edited 5 months ago) by rutrum@lm.paradisus.day to c/privacyguides@lemmy.one

I have a google pixel, and I know I could install grapheneOS on it. But I'm very, very hesitant, since I depend so much on my phone.

This isn't like distro hopping, where I feel more comfortable hot swapping ssds, or making partitions, or using my desktop while I tinker with my laptop. My phone has a SIM and the service I depend on can't be emulated off this phone.

So what do you recommend I do? Should I move my SIM (my phone service, really) to a new phone while I tinker with this one? Can I just blow up the current OS and wing it? Or maybe theres another option that would allow me to bail back to stock android in case something goes wrong. What do you think?

EDIT: how I use my phone: about everything I use is from fdroid, with the occassional app from aurora. I do use my banking app to cash checks, but I don't use whatsapp, google pay, which I know arent compatible. So as far as app compatibility I dont think it'll be a problem, Im mostly worried about my phone number not working. I dont know how SIMs work like I should, I just know Ive had the strangest issues in the past with it, so Im hesitant. Thanks for the replies so far.

[-] rutrum@lm.paradisus.day 35 points 6 months ago

Theres so many. Check out the awesome list: https://github.com/awesome-selfhosted/awesome-selfhosted

I think your stategy should be one service at a time. Do everything in docker, and start by tackling a simpler service. For example, you should try paperless-ngx. Absolute game changer. I didnt realize how much managing ny own directory structure sucked until I used this. Then, grow your service list more and more!

25

I've recently aquired the hardware to build a home server/NAS. I'd love to know some community-guided advice on tools I should consider, and what best practices are?

For instance, how does redundancy work? Whay about automated backups? What OS should be running on a NAS? What utilities can I use to monitor the safety of my data? Perhaps even a guide about how to safely share that data outside my home network for personal use, or even open for the internet, without compromising my network?

Thanks for the discussion

229
submitted 6 months ago* (last edited 6 months ago) by rutrum@lm.paradisus.day to c/linux@lemmy.ml

You know, ZFS, ButterFS (btrfs...its actually "better" right?), and I'm sure more.

I think I have ext4 on my home computer I installed ubuntu on 5 years ago. How does the choice of file system play a role? Is that old hat now? Surely something like ext4 has its place.

I see a lot of talk around filesystems but Ive never found a great resource that distiguishes them at a level that assumes I dont know much. Can anyone give some insight on how file systems work and why these new filesystems, that appear to be highlights and selling points in most distros, are better than older ones?

Edit: and since we are talking about filesystems, it might be nice to describe or mention how concepts like RAID or LUKS are related.

14
submitted 6 months ago by rutrum@lm.paradisus.day to c/nixos@infosec.pub

Came across a new nix wiki attempt. The announcement post is made on discourse with high skepticism.

But I really like it for two reasons:

  • For now, its incredibly informal and the barrier to entry is low. And because I can make edits directly in the web interface, it felt easy to contribute.
  • The creator mentions wanting this to be like the Arch wiki. In other words, contain information useful to nix users, but not necessarily nix specifically.

I was able to contribute a new article about distrobox, a tool I discovered and made a post about here a month or so ago.

Maybe we don't "need" another wiki, but the opportunity to contribute really made this one stand out to me. In case you all might want to contribute or learn something, I thought I would share.

5
submitted 7 months ago by rutrum@lm.paradisus.day to c/nixos@infosec.pub

I'm conflicted on what should handle my login manager, desktop environment, and window manager. What are the pros and cons of doing it from a nixos configurations versus a home manager configuration?

6
submitted 7 months ago by rutrum@lm.paradisus.day to c/nixos@infosec.pub

I made a post a while ago asking what you do when NixOS isn't cutting it. You need a package that isn't available as a flatpak/appimage or already in nixpkgs. You don't want to build from source, because it's either too difficult or too time consuming. One suggestion was containerization or virtual machines, but those seemed too cumbersome. Well, distrobox is the tool that fixes it.

Distrobox is a shell script that wraps over docker/podman to run a container of a distribution of your choice. But it does it behind a very high level API, and integrates the container environment seemlessly with your host environment. It is seriously as easy as this, if you need to install something with apt inside debian.

$ distrobox create -n my_debian --image debian:latest
$ distrobox enter my_debian

And bang, your in a debian container and it won't even feel like it. It automatically integrates your shell environment and maps your root directory inside the container (or something like that.) You seriously wouldn't know unless you neofetch. Best part is that since everything is in the nix store, every program in your environment should work, for the most part, inside this container. I've not noticed problems yet.

Tada! apt is available in this environment and you can install what you need. Then you can run it while inside the container. From the host machine, outside the container, you can run it directly too. Say you installed program X in debian:

$ distrobox enter my_debian -- X

And it will just run the command and send you back to the host machine.

In the case of docker, you can type docker ps and it will show you your debian image my_debian listed.

There's two more things I want to do to really polish this workflow. The first is to change my shell prompt so I know that I'm actually in debian without typing neofetch! Inside the box the variable CONTAINER_ID is set and the hostname is modified. I've adjusted my starship prompt to look like this when inside the box:

distrobox:my_debian ~ $

And lastly, I really want to blur the lines. If I install X in debian, I want to just call it directly from the host as X, not invoke my debian instance with distrobox enter.

When you type X and the program is missing, bash (and fish and zsh I'm sure) runs a hook that you can look at by typing

$ declare -p -f command_not_found_handle

By overriding this, you could first have it try the inside container if it can't find the application in the host container, like so.

command_not_found_handle () {
  distrobox enter my_debian -- $@
}

This is not a perfect solution, but I'm still experimenting with how to integrate this both seamlessly and also not accidentally run things inside debian and not realize it. If you have suggestions for how to improve handling calling commands from the outside environment, please share. Best case might just be adding aliases for programs explicitly. For example, `alias X=distrobox enter my_debian -- X.

Anyway, distrobox is the solution! This is one more barrier removed that was preventing me from moving my main computer over to NixOS. I'm so happy to have found this and wanted to share.

248
submitted 8 months ago by rutrum@lm.paradisus.day to c/linux@lemmy.ml

Dust is a rewrite of du (in rust obviously) that visualizes your directory tree and what percentage each file takes up. But it only prints as many files fit in your terminal height, so you see only the largest files. It's been a better experience that du, which isn't always easy to navigate to find big files (or atleast I'm not good at it.)

Anyway, found a log file at .local/state/nvim/log that was 70gb. I deleted it. Hope it doesn't bite me. Been pushing around 95% of disk space for a while so this was a huge win 👍

[-] rutrum@lm.paradisus.day 77 points 9 months ago

You'd have to explain how gimp doesnt suit your needs, because in the open source world its best in class for photo editing.

[-] rutrum@lm.paradisus.day 44 points 11 months ago

Examining my disk partitions with df is ruined now. Every snap gets its own virtual disk.

view more: next ›

rutrum

joined 1 year ago