btobolaski

joined 1 year ago
[–] btobolaski@threads.ruin.io 2 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 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 2 points 1 year ago

As always, it depends on use case and needs. For my use case (hot storage for vm disk and stateful kubernetes workloads) Truenas Scale doesn't require any tinkering. Just install it and configure the storage, networking, and shares. The latter of which is currently completely handled by a kubernetes operator. This is about equivalent effort to Synology but with a much less user friendly interface.

For more than a storage target, I wouldn't really recommend it. It does have "Apps" but the setup is semi-involved and does leak some of the implementation details. You can also run vms but the experience is much worse than a dedicated hypervisor.

So, I have both for different purposes. I wouldn't want to put my hot storage on Synology because the hardware is pretty expensive and gets really expensive to get the features I would need (10gb and likely more ram to support the workload) but it's pretty good for bulk storage and the app platform is fine for the supported things.

So, I'd say that a new Synology is probably best for you. I upgraded from a DS1513 to the the DS1821+ and the improvement is nice. I would recommend you get more bays than you need as it makes gradually increasing your storage smoother with SHR. If you use SHR, SHR-2 is the one to use as a failure during rebuild isn't exactly unlikely with similar drives. Since that requires a 4 drive minimum of a particular size to make the space usable, 5 drives is pretty limiting in terms of incrementally upgrading.

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

My DS1821+ has been rock solid but so has my Truenas Scale server and I ask a whole lot more of the latter. The "problem" with synology is that you're paying a lot for the hardware that you get. Whether that premium is worth it is a personal decision. For the price, I would have liked to see a 10gb port and more than 4gb of ram. So, the question is how much do you value the synology interface and ease of use?

[–] 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 2 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 3 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 3 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 2 points 1 year ago (1 children)

Is there something wrong with the nixpkgs module?