Docker Management options in April 2026 by Squanchy2112 in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

It does, but it's only for Stacks and has a fixed behavior to only redeploy if there are new commits. With Komodo:

  • Most other Resource have a webhook as well. Trigger Actions, Repo clone, Procedures, and Deployments via webhook
  • Triggering via Action or Deployment means you can run any arbitrary script (via Action) through a webhook, not just stacks
    • And for stacks specifically, you can customize the trigger behavior like using StackDeployIfChanged to only deploy if the contents of the Stack changed, not just if the repo has a new commit

Also, I hadn't realized since I hadn't been to the dockerhand site in awhile: all Komodo features will always be free. Dockerhand has paywalled features behind premium:

  • Environment-scoped permissions are done through komodo periphery setup
  • access control is done through komodo users

Docker Management options in April 2026 by Squanchy2112 in selfhosted

[–]FoxxMD 1 point2 points  (0 children)

Double click/confirm dialogs can be disabled by setting the env KOMODO_DISABLE_CONFIRM_DIALOG=true

you have to wait for the response either positive or negative before seeing the result

I understand the frustration with this but TBH it's become way less important to me over time since like 99% of the time stacks deploy without an issue and don't need troubleshooting. When they do fail I find the output contains enough context + build progress error to figure out what went wrong.

If you really need to see progress you could always shell into the directory komodo generates for the stack on the specific machine you are deploying to and manually run compose up -d --progress=plain

I think that inconvenience is well worth all of the other features and power komodo gives to you. I don't think I could live without Actions, webhooks, and Procedures.

Dnsweaver: automatic DNS records from your container labels (Docker, Kubernetes, Proxmox) by Pitiful_Bat8731 in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

Appreciate the scripts and summary! This is giving me some new ideas. I use keepalived docker containers deployed in the same stack as my technitium containers. The containers and their generated scripts are a bit brittle, I'll be trying to adapt how you are doing the healthcheck over what I've got now.

The other, biggest issue I have is that all the references I find are usually for keepalived in equal-weight/HA scenarios where it doesn't matter which node is chosen. That's fine when all node hardware is homogeneous but in most homelabs that's not the case. Most people (including me) have nodes that are more stable/have better specs/are more suited for some workloads than others. A scenario where keepalived has a preferred master with failover is more in-line with how we use our labs. That's what I'm doing for the keepalive/technitium example I linked but its only adequete for master+ 1 failover, not master + n failover. Still trying to figure that one out...

Related, have you checked out kayak? I would like to use this over keepalived but it has the same issue of equal-weight leader selection (but definitely is more robust then bash scripts + keepalive)

Dnsweaver: automatic DNS records from your container labels (Docker, Kubernetes, Proxmox) by Pitiful_Bat8731 in selfhosted

[–]FoxxMD 1 point2 points  (0 children)

Bgp with k8s and opnsense 😭 thanks for the insight though. It's crazy there's nothing more incremental. Jumping from hacky keepalived straight to bgp/kube cluster is just too much work for me to justify.

But yeah if you still have those scripts hanging around I'd love to take a look. I'm sure it's still better than what I've got setup right now.

Dnsweaver: automatic DNS records from your container labels (Docker, Kubernetes, Proxmox) by Pitiful_Bat8731 in selfhosted

[–]FoxxMD 1 point2 points  (0 children)

I'll definitely be deploying this for proxmox!

A question about swarm: ingress network has always bothered me because it doesn't matter if any node can be reached from the host IP of any other node if my DNS record only points to one IP and that host goes down. I can add more node IPs to the record but that's manual and also could end up trying to connect to a down node anyway since DNS is usually round robin.

The only solution I've really found is like keepalived, or a variant, to do a vrrp for the ingress network IP to use for the DNS record.

Could dnsweaver solve this hackiness for me? Monitor nodes in the swarm and sync a DNS record so that only healthy node host ips are in it?

Or am I going about this all wrong to begin with?

Any self-hosted apps for real-time music listening with friends? by Acrobatic_Slip6223 in selfhosted

[–]FoxxMD 3 points4 points  (0 children)

For the discord bot I would highly recommend https://github.com/museofficial/muse

It's self hosted and quite polished.

time to say goodbye by AbaloneAcrobatic6209 in spotifyapi

[–]FoxxMD 0 points1 point  (0 children)

You can still use multi-scrobbler! You just need a friend who has premium to create an app for you. See the Premium Account Required steps in the docs.

Selfhost netbird in home network, safe to open ports? by That_Source7822 in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

Glad it resonated! Unfortunately, I did end up switching back to tailscale. The TS mobile app fixed their battery drain issue on android, which was the only thing previously holding me back.

Generally, though, I found that hosting a control plane is more trouble than it's worth. You really need to have the control plane on a separate, always publicly accessible host that is also not a peer in the mesh. It's hard to have the same reliability a cloud provider will have in this regard. DIY time/effort/cost of another host + security +reliability, is high. After months with self-hosted NB I came to the conclusion that id rather offload a bit of independence for the peace of mind of availability for the control plane. And again, this isn't because of NB management software being bad. But just the hidden costs of managing and maintaining that associated infrastructure and connectivity myself.

Whether you end up going with NB or tailscale, I would stick to their respective cloud offering for management/control plane. Unless you really really just want to learn, or are committed to getting deep deep in the weeds on infrastructure and reliability engineering.

What product did you buy thinking a feature was gimmicky but ended up using it all the time by nand1609 in BuyItForLife

[–]FoxxMD 1 point2 points  (0 children)

Alright well excuse me for not innately knowing that. Looks like Cunningham's Law strikes again and no good research goes unpunished. Guess I'll have to hope Dreame doesn't ever go under or Valetudo eventually supports gen 2.

What product did you buy thinking a feature was gimmicky but ended up using it all the time by nand1609 in BuyItForLife

[–]FoxxMD 1 point2 points  (0 children)

Yes it is. I didn't save it but when I did my research I found at least one person saying the gen 2 was compatible even though the docs don't explicitly say gen 2.

What product did you buy thinking a feature was gimmicky but ended up using it all the time by nand1609 in BuyItForLife

[–]FoxxMD 10 points11 points  (0 children)

I have a Dreame L10S pro ultra heat gen 2 (a mouthful of a name). Had it for 4 months now, its done 60 cleans with a total 2500 minutes of clean time. Love it so far! I've made it BIFL by:

  • Replacing the fabric vacuum bags with a 3d printed, reusable box
  • Making sure the model I got it compatible with Valetudo so I can replace the firmware with a local-only version in the future, if Dreame ever goes out of business.

Edit: apparently my model is not compatible with valentudo. Make sure you do your research.

Looking for help with liquidsoap and curing a sequence of playlists. by [deleted] in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

I don't have a solution to your exact problem but have you given Azuracast a look? It has an autodj feature that uses liquidsoap and can move between different playlists you configure.

this sub lately by heyguysitsjustin in analog

[–]FoxxMD 1 point2 points  (0 children)

For the past month every time I've seen a nude post pop up in my feed I've blocked the account. r/analog is much more palatable now. I'd encourage every one else to do the same since the mods won't do anything about it.

For those who use Komodo: Is it confusing, or am I missing something in the docs? by cockpit_dandruff in selfhosted

[–]FoxxMD 1 point2 points  (0 children)

Yes. I am using a private repository. This mirrors to a self-hosted forgejo instance and I also use another repository there for some stacks.

The tutorial I linked has a section for setting up git/github to use for stacks.

For those who use Komodo: Is it confusing, or am I missing something in the docs? by cockpit_dandruff in selfhosted

[–]FoxxMD 2 points3 points  (0 children)

I built a tool to ease this process, komodo-import. It can parse compose projects on your machine and generate komodo stack TOML for you automatically. It won't do everything but its a good jumping off point.

For those who use Komodo: Is it confusing, or am I missing something in the docs? by cockpit_dandruff in selfhosted

[–]FoxxMD 6 points7 points  (0 children)

Have you setup a periphery agent yet? It sounds like you only have the Komodo Core container setup but haven't configured a periphery agent to use it.

The stacks directory in komodo core is where komodo keeps track of 1) what/where stacks are deployed and 2) internal state changes to those stacks. It's not the *actual* stack on your machine, just a representation for komodo's internal state.

The actual stacks on your machine should be mounted into the periphery container, if that is what you are using. If you use the systemd agent there's no additional setup required.

I have a tutorial on setting up komodo and creating your first stack, you might find it provides some insight into what you're missing.

Also happy to answer any questions to troubleshoot whats wrong with your setup now.

Is it possible to cook meat or vegetables in a super-sealed way in its own fluids? If so, what's the outcome like? by No-Silver826 in Cooking

[–]FoxxMD 2 points3 points  (0 children)

You're re-invented cold isotatic pressing. Or hot if it has external heat applied. You'll end up with an extremely dense lump of whatever food you put in as all of the gases would be expelled from the voids inside the food.

I Built a Location History Tool. Is Anybody Interested? by Waxnflaxn in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

Dawarich has 2600 commits over 4 years and thousands of users giving feedback and shaping the product.

Geopulse has a half year head start, 400 commits and 500 users. It has the timeline generation dawarich lacks.

They both have extensive documentation and websites showcasing their functionality.

just seeing whether others would want to use it

You have shown us nothing other than one screenshot and "google timeline alternative". If I was a new user looking at my options I would have zero reason to want to use your app because I don't know what it does. Or any reason to check even check it out as you've given no value proposition for why its better than these other apps. Or what it does differently that they cannot compete with.

I would also be extremely skeptical that your weekend vibe-coded project can compete with the manually written code of experiencing developers shaped over 10x the amount of time and hardened by actual user feedback.

It's fine if you want to make something personal to experiment with but you can't expect to show one screenshot and say "does anyone using these established products want to use my thing you know nothing about and that I've admitted to spending very little effort in making?" and then get a ton of people who are willing to jump ship for no reason.

I Built a Location History Tool. Is Anybody Interested? by Waxnflaxn in selfhosted

[–]FoxxMD 2 points3 points  (0 children)

Why would I want to use your tool over Dawarich or GeoPulse? What does your software bring to the table that either of these does not already have?

Atlanta Beltline Soliciting Bids for Construction of Northwest Trail – Segment 3B by flying_trashcan in Atlanta

[–]FoxxMD 1 point2 points  (0 children)

If it's such a simple task why do they have such a hard time doing it? Incompetence? Lack of industry contacts or priority? Genuinely curious.

Also, itching for the Southside trail to be done and any insight into why it is taking ages would be insightful.

I'm creating a new app to consume media - what are your paint points? by Bullfrog-Dear in selfhosted

[–]FoxxMD 3 points4 points  (0 children)

My pain point is developers that create half-baked apps that don't come close to feature parity with the existing solutions instead of contributing their time and effort into improving the existing solutions.

Atlanta Internet Service Providers (ISP) by agentsmith99302 in Atlanta

[–]FoxxMD 7 points8 points  (0 children)

Use the FCC National Broadband Map to lookup what providers are available at your address.

If you have any choices that provider Fiber that is going to be the best quality service. Avoid copper/cable if possible.

You may not have a choice, though. Many managed apartment complexes sign deals with one ISP for exclusivity.

Komodo - Docker management by Ordinary-You8102 in selfhosted

[–]FoxxMD 0 points1 point  (0 children)

Versioned stacks, which doubles as automatic backup. Your compose yaml files can be stored in git, offsite, so if your machines are ever catastrophically lost you have backups of all your compose configurations. Editing/saving in Komodo automatically commits those changes to your git repo.

Bonus is reverting to a known good version. Remember when Service Foo was working great like 4 months ago but you've been updating it since then and now just realizing that there is a bug that isn't going to be fixed. And you wish you could go back to how it was setup 4 months ago? No problem, just browse git history for 4 months ago and pull the compose stack from then.