• 2 Posts
  • 80 Comments
Joined 3 years ago
cake
Cake day: August 10th, 2023

help-circle

  • ssh is probably fine for 99% of things. I use ssh exclusively mostly

    The features I load cockpit up for is:

    • easier viewing of systemd/journalctl logs. You can click on services and see logs, search them, and so on.
    • Partitioning a disk. Nothing too crazy, but I can format a disk, wipe them, via the GUI
    • Networking configuration. If you are using networkmanager, cockpit will test the changes, attempt to connect, and then revert the changes if the connection fails (in like 15-30 seconds). This is legitimately insanely useful, I can change the ip address or something, connect via cockpit again, and only have the change stick if it’s actually good. (See also, netplan try from the netplan configuration framework.)

    Cockpit also offers a GUI for managing virtual machines (via libvirt) or podman contaniers. So someone else might want that, although I don’t really use that. (virtual machines can be managed remotely via virt-manager over ssh by connecting to qemu+ssh://user@remote-host/system, I manage podman via the terminal).



  • I like Authentik, as I really like:

    • Support for every auth protocol, particularly OIDC and LDAP
    • Invites that can invite multiple people, letting me onboard a room of people at once
    • Python based scripting that lets me script some integrations and do API calls when users authenticate

    But at the same time, Authentik is very, very complex.

    If you just want LDAP and OIDC in the same app, I would probably recommend KanIDM. KanIDM also does invites (although only one user at a time).

    If you just want OIDC itself, pocket ID (passwordless /passkey only) and void auth both are really simple OIDC providers (that also support sign ups/invite links. EDIT: Ah, it looks like Void Auth has an experimental read only LDAP server feature. Nice.

    I am also paying attention to (some less popular options):

    • Rauthy: Fairly minimal, supporting OIDC… but also supports PAM for Linux/Unix integrations
    • Casdoor: seems to be feature rich like authentik, but perhaps not as difficult to deploy and configure
    • Univention Nubus: An open source, European auth software, that is feature rich, but has an appliance virtual machine that might make it easier to install.

  • I like Authentik, although I really like:

    • Support for every auth protocol, particularly OIDC and LDAP
    • Invites that can invite multiple people, letting me onboard a room of people at once
    • Python based scripting that lets me script some integrations and do API calls when users authenticate

    But at the same time, Authentik is very, very complex.

    If you just want LDAP and OIDC in the same app, I would probably recommend KanIDM. KanIDM also does invites (although only one user at a time).

    If you just want OIDC itself, pocket ID (passwordless /passkey only) and void auth both are really simple OIDC providers (that also support sign ups.

    I am also paying attention to:

    • Rauthy

    • Casdoor (seems to be similarly feature rich like auhentik




  • When I had Asahi, I just used it as a daily driver laptop. It worked perfectly fine for all of the stuff I wanted to do on my M1.

    For a server, it will probably work fine as well. You have to ensure that say, the apps/docker containers you use support ARM, but ARM is fairly popular and well supported nowadays.

    I did have one issue with podman, where apparently the memory is organized differently on the M1, which causes some docker containers, even if they are built for ARM, to be incompatible. I had to use podman machine, which is podman’s built in virtual machine that lets you run containers in their instead. It is designed for Mac OS, which is kind of ironic since the whole point of using Linux was that I wouldn’t have to run a virtual machine just to run podman/docker containers.



  • Is incus-compose a part of the base system, or an add-on

    it’s a program you install on your client machine. It just connects to the Incus API (probably using the Incus cli).

    How does it work on IncusOS if it’s a command-line tool and there’s neither a remote nor a local shell, only a web API?

    The Incus cli connects to the API.

    Does it provide a built-in way to automate container updates

    For the most part, Incus containers are system containers, similar to lightweight virtual machines. They run a full distro, including systemd and all that. For keeping those updating, you would want to use the auto update methods that Linux distros provide.

    There are also OCI containers that Incus can run, but I don’t think there is any form of auto update for those. You might be better off just running docker/podman/kubes in a VM for that.



  • I use Incus on Debian 13. Debian 13 packages Incus, and that version only does security updates and focuses on stability. To be clear, Debian’s model is to not do bugfixes or feature updates, to prevent any update from being breaking in any way. This ensures users can automatically get security updates.

    I get it from zabbly’s repos: https://github.com/zabbly/incus , in order to get newer versions of Incus, and to get, however. There is a risk of breaking updates but I’ll live and fixing the occasional thing on my one server is okay. The Zabbly incus repos also come with the UI, although the UI is just a static site you can put in the right spot. I like that design, because it means that only the API can do anything, which lessens the attack surface.

    I also use Incus personally on my laptop on Arch Linux. It’s nice to have the same UI/UX for vm management, and being able to download the premade images from their docker like repository is pretty nice as well.


  • No, you can install Incus on any linux distro. I use it on a Debian server.

    It’s IncusOS that is immutable.

    But proxmox is actually just a set of packages on top of debian, and proxmox is not immutable either. You aren’s supposed to tinker with the host, but if you are doing things like jailbreaking consuner gpu’s to unlock the server gpu only features, then it becomes nice to have that option.



  • EDIT no wait, this post is about secure, not hosting/tunneling in general. This comment is off topic ig.

    I would like to avoid paying for a VPS

    Oracle cloud free tier, but it does have a history of randomly killing the VPS’s created.

    Public ipv4 addresses are scarce, and becoming more expensive now. You are probably going to have to shell out some cash if you don’t already get one as part of your internet plan.



  • Tailscale works great, but their free tier is limited to a total of 8 users, which is enough for a tiny minecraft server, but doesn’t seem to be enough for your usecase.

    For 10-15+ users, you probably want to self host a VPN on your own VPS. Like, you can self host headscale, which is tailscale but self hosted. : https://github.com/juanfont/headscale [1]

    I wouldn’t port forward game servers, because they often lack authentication (login and stuff), and then they also have security issues due to not receiving updates. If your game server isn’t truly public, then it’s easier to just have people use the tailscale client to connect to your VPN.

    [1] Although I would recommend headscale to OP for it’s simplicity, it is very barebones, and software like netbird or netmaker is more close to a truly self hosted tailscale, with things like more advanced accounts, OIDC integration, authorization, and so on. But they are more annoying to host and set up.



  • Do nix and then use nix2appimage, or nix bundle to package the app compressed as an arx archive without the startup times they complain about.

    You can also use https://github.com/DavHau/nix-portable to bundle it a bit better, without needing nix on the host.

    And then, based off a quick search:

    https://github.com/neobrain/nix2flatpak

    https://github.com/barstoolbluz/nix2deb

    I couldn’t find nix2rpm or nix2pacman, but there exist tools to convert between formats (alien, debtap, rpmtap, and one more who’s name I can’t remember but I remeber as being the most versatile).

    What I’m trying to say, is that when people said “just use nix”, they probably really mean to use nix as a platform to build other packages withouth doing extra work.

    On the other hand,

    You can also use one of the newfangled appimage like formats: https://docs.pkgforge.dev/formats/packages

    This one is linked in there and creates a static executable from any binary: https://github.com/VHSgunzo/sharun

    Now they would still have to build for macos and windows, but they are already doing that anyways.

    As a sidenote, there is also this: https://github.com/pacur/pacur , which is an aur like repo that buids debs, rpm’s, and pacman packages. So there’s semi-automatic updates, via a publuc repo you can out stuff on.

    The real elite solution, imo, is to host forgejo, or use codeberg, which insanely has a package registry for every possible format of packages. So you can directly just push there, after building however you want.

    But if developer’s were good at packaging, I wouldn’t be so mad when they try to do it.

    Because this:

    The next version will include a new built-in self-updating mechanism

    Downloading unsigned, unverified binaries directly from the latest versioned github release?

    Makes it so that all that’s needed for getting malware on the system is pwning the developers account via some supply chain malware, that hooks into there browser and pushes a release.

    And every additional developer who can release, or every github actions that is potentially vulnerable but can be made to release, or claude (since the author is letting it commit, which requires it to run without sandboxing afaik) becomes more attack surface.

    There are ways to fix this. Conventional distros use multi party signing of commits and releases, where developers continously verify eachother and look over changes.

    More newfangled flows involve using github actions to build immutable releases, directly from tagged versions of the code.

    But random developer #3989 isn’t doing this. They are distributing their software in a way that malware distributors will be ery happy to see after pwning their account.

    I want devs to use nix, because then I can build or run their program directly from the source code. It sidesteps so many issues with visibility of the supply chain, or being unable to inspect what I am running.

    I like nix becuase I can make developers like the above satisfied by giving them a way to easily build static binaries, or other formats.