btobolaski

joined 1 year ago
[–] btobolaski@threads.ruin.io 4 points 1 year ago (1 children)

I just installed Netflix directly from Google play, maybe it has changed 🤷‍♂️

[–] btobolaski@threads.ruin.io 3 points 1 year ago

Me too. I really like it and I break it out for a number of tasks but, suspending vim is far too ingrained in my muscle memory to switch to something that doesn't handle it.

[–] btobolaski@threads.ruin.io 1 points 1 year ago

It also knows when you're home based on the occupancy sensors. I'm also not worried with their data collection so, mine is also not blocked from internet access.

[–] btobolaski@threads.ruin.io 2 points 1 year ago

I run my Truenas Scale with 5 mirror vdevs. This is sort of like raid 10 (I don't need the differences explained to me). This means that I get 50% of the raw storage as usable but, it means that to upgrade space, I only need to upgrade two drives at a time. It also means that replacing a failed drive is fast, much faster than replacing a drive from a raidz* vdev. As you move to Truenas, this is something to consider. Given that you're going to have 4 drives total, I don't think you'd be wasting any additional space as you shouldn't consider raidz safe (same problem as raid 5, high risk of second drive failure during rebuild) which leaves you at raidz2.

[–] btobolaski@threads.ruin.io 3 points 1 year ago (1 children)

You can build / pay someone to build a Dactyl manuform with hot swap sockets. It will look very different from the glove80 but the key positions can be similar with some parameter tuning. That being said, I'm unconvinced that any of the concave key wells will be correct for most people's hands and therefore, they should always be customized. My glove 80 feels like where I started with my manuform (the default parameters) while my current manuform feels much more natural.

[–] btobolaski@threads.ruin.io 2 points 1 year ago (1 children)

I'm curious if you'd be willing to share the generator and qmk config. I've been wanting to rebuild my Dactyl with screens and a rotary controller + trackball on the right. I'm pretty set on building it myself as I've basically customized all of the parameters to better fit my hands and I'd likely need to print a bunch of cases to tune them for the modifications. That being said, I'd much rather just pay you to build it.

[–] btobolaski@threads.ruin.io 3 points 1 year ago

I use logseq to record any manual steps as well as any administrative actions that I take on a service. That being said, all of my homelan infrastructure is codified and stored in git in various ways so, it can be recreated as needed. There are very few manual steps in reconfiguring any of my services.

[–] btobolaski@threads.ruin.io 3 points 1 year ago

I'm not seeing where it needs aws. It does need an s3 API compatable object store but there are a number of them that are self-hostable. I might have missed it in my brief reading of it.

[–] btobolaski@threads.ruin.io 4 points 1 year ago (1 children)

I really like Authentik after using keycloak for quite a while.

[–] btobolaski@threads.ruin.io 1 points 1 year ago

It does appear to work for me.

[–] btobolaski@threads.ruin.io 5 points 1 year ago (4 children)

This is my ingressroute for lemmy:


apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: lemmy
spec:
  entryPoints:
    - web
  routes:
    - kind: Rule
      match: Host(`threads.ruin.io`) && PathPrefix(`/api/`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && PathPrefix(`/pictrs/`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && PathPrefix(`/feeds/`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && PathPrefix(`/nodeinfo/`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && PathPrefix(`/.well-known/`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && Method(`POST`, `PUT`, `DELETE`, `PATCH`, `CONNECT`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`) && HeadersRegexp(`Accept`, `application\/(?:activity|ld)\+json`)
      services:
        - kind: Service
          name: lemmy
          passHostHeader: true
          port: 80
    - kind: Rule
      match: Host(`threads.ruin.io`)
      services:
        - kind: Service
          name: lemmy-ui
          passHostHeader: true
          port: 80

It seems to work correctly. Given that you’re not using kubernetes, you’ll need to do some translation work.

[–] btobolaski@threads.ruin.io 1 points 1 year ago

There are multiple ways to evaluate usage. I’ll go with what I would guess is your desired measurement, things that I use intentionally (as opposed to things like dns, which just happen incidentally to other things or automation based things which are continuously running but not necessarily interacted with):

  1. Mastodon
  2. An app I’ve written to collect personal data
  3. Jellyfin
  4. Lemmy
  5. Bitwarden (I pay to self-host as opposed to vaultwarden as the latter probably won’t have a security audit)
  6. Freshrss
  7. Linkding
  8. Gitea
  9. Archivebox
  10. Mailcow
view more: next ›