this post was submitted on 14 Aug 2025
115 points (99.1% liked)

Selfhosted

50526 readers
464 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
all 32 comments
sorted by: hot top controversial new old
[–] Everyday0764@lemmy.zip 5 points 17 hours ago

i prefer homepage https://github.com/gethomepage/homepage

you add a label in the docker compose and the dashboard follows.

[–] Dagnet@lemmy.world 5 points 23 hours ago

I use it and my biggest issue is the ram usage, it's like 500mb for a dashboard, the other ones I tried were much lighter

[–] piyuv@lemmy.world 33 points 1 day ago (4 children)

I use homepage and pretty happy with it. “Drag and drop configuration, no yaml” actually put me off.

[–] TheBigRoomXXL@leminal.space 3 points 21 hours ago

Drag and drop isn't for me either but it's nice to have more beginners-friendly options in the self hosted community. Not everybody like to live in the terminal.

[–] curbstickle@lemmy.dbzer0.com 8 points 1 day ago

Same, homarr is decent but I prefer my configs, quick edits from whatever device is in hand, easy peasy.

[–] semperverus@lemmy.world 5 points 1 day ago (6 children)

I wish we would all start switching over to JSON for configuration files. It's so much easier to parse, and you can't screw it up with too many spaces or not enough.

[–] timbuck2themoon@sh.itjust.works 18 points 1 day ago (1 children)

No thanks. Yaml isn't perfect but by God json is best used to return and parse data, not input it.

[–] tiramichu@sh.itjust.works 7 points 1 day ago* (last edited 1 day ago) (2 children)

My biggest peeve with JSON when I'm forced to use it as a configuration format is that it doesn't have any syntactical support for comments.

So I can't even add any notes to the file.

[–] lightnegative@lemmy.world 3 points 11 hours ago

Yep this for me too. Thankfully VSCode allows comments in its settings.json / launch.json files but most programs use strict JSON which doesn't allow comments

[–] vinnymac@lemmy.world 2 points 18 hours ago* (last edited 18 hours ago)

Yea, this is a deal breaker imo. My code tends to be 10 to 1 comments to lines of code ratio. Configuration even more so.

jsonc/json5 exists for this use case, but few tools actually use it, yaml is far more popular

[–] lightnegative@lemmy.world 5 points 1 day ago (1 children)

I used to think that until I figured out yaml and now yaml isn't so bad.

It helps that text editors know what yaml is now so insert spaces when you hit tab etc

[–] tuhriel@infosec.pub 5 points 20 hours ago (2 children)

My biggest gripe with yaml (especially in docker-compose files) is that l, for me at least, it is absolutely not clear when I need to add dahes (-) in front of multiple entries and when it's just linebreaks.
And there are no easy accessible docker-compose validators...

[–] moonpiedumplings@programming.dev 3 points 15 hours ago (1 children)

Try the yaml language server by red hat, it comes with a docker compose validator.

But in general, off the top of my head, dashes = list. No dashes is a dictionary.

So this is a list:

thing:
    - 1
    - 2

And this is a dictionary:

dict:
    key1: value1
    key2: value2

And then when they can be combined into a list of dictionaries.

listofdicts:
    - key1dict1: value1dict1
    - key1dict2: value1dict2
      key2dict2: value2dict2

And then abother thing to note is that yaml wilL convert things into a string. So if you have ports 8080:80, this will be converted into a string, which is a clue that this is a string in a list, rather than a dictionary.

[–] tuhriel@infosec.pub 1 points 11 hours ago

That actually makes sense...thank you!

[–] iggy@lemmy.world 7 points 1 day ago (1 children)

No support for comments? Hard pass

[–] Voroxpete@sh.itjust.works 5 points 1 day ago (1 children)

Yeah, this is my biggest annoyance with JSON. As a data structure it's very elegant, but it only really makes sense to people who know how to code, and without the ability to add comments you have to rely heavily on external documentation to make it readable to most users.

[–] cravl@slrpnk.net 3 points 1 day ago

And like yeah, both the wonderful (and foss!) .json5 and Microsoft's semi-proprietary(?) .jsonc exist, but most projects just use their language's default JSON parser that doesn't recognize them. What I would personally love to see is .json5 support baked into the default JSON parsing libraries of Python, Go, etc. (Enabled by a flag, likely.) It's a superset of regular JSON and fully ES2019 compatible, so there shouldn't be any issues.

[–] Voroxpete@sh.itjust.works 5 points 1 day ago

Instead you can screw it up by having too many commas or not enough. Hardly that much of an improvement.

[–] FrederikNJS@lemmy.zip 0 points 18 hours ago* (last edited 17 hours ago)

Why not just write your YAML files in JSON syntax?

JSON is a valid subset of YAML

[–] FooBarrington@lemmy.world 3 points 1 day ago

It's IMO also so much clearer regarding data types. You can't accidentally write a boolean when you want a string.

[–] Burn1ngBull3t@lemmy.world 2 points 1 day ago

Yeah i was wondering how you actually use versioning with that drag and drop. Homepage seems better for that IMO

[–] LazerDickMcCheese@sh.itjust.works 12 points 1 day ago* (last edited 14 hours ago) (4 children)

If any of you can get the Pi-hole integration to work, let me know how you did it. There's a github thread about it, but I haven't heard any progress

It worked for a long time until an update pretty recently.

[–] v3ritas@infosec.pub 2 points 15 hours ago

I might have adjusted the container to run with my local DNS, but all I'm doing for that service is:

   - Pi-Hole- Hostname:
       icon: /icons/pihole.png
       href: https://my.internal.domain/admin
       server: Hostname
       widget:
          type: pihole
          url: https://my.internal.domain/
          version: 6 # required if running v6 or higher, defaults to 5
          # Application Password:
          key: "<< REDACTED >>"

Replaced my Pi's hostname, internal domain, keys, etc, but I have this running for two Pi-Holes on my network.

[–] Dagnet@lemmy.world 2 points 23 hours ago

I have it working but I do remember struggling a bit with it, involved getting a password somewhere, can't check rn

[–] Bort@sh.itjust.works 4 points 1 day ago

Nice to know it's not just me battling with that

[–] v3ritas@infosec.pub 1 points 1 day ago

I’ll take a look when i get home tonight. I do have mine working.

[–] flightyhobler@lemmy.world 4 points 1 day ago (1 children)

I use a manually edited yaml home assistant page. Beat that on number of integrations.

Was going to say, isn’t this just an *Arr-flavored Home Assistant page?

[–] gedaliyah@lemmy.world 5 points 1 day ago

This is a great platform, especially if you are just beginning in self-hosting. I don't use it on my deployment "version 2.0" because I found it unnecessary once learning a little more about docker, etc. While I was using it, I loved it, and would definitely recommend it!

[–] ripcord@lemmy.world 2 points 1 day ago (1 children)

30+ integrations seems like a really small number.

[–] asbestos@lemmy.world 1 points 1 day ago

You’re mostly adding dozens of hyperlinks, like your own homapage, but some of them (30) can provide direct info from said integration, so a button for your Torrent Client also has the current download speed for example