3744 stories
·
3 followers

Self Hosting Like Its 2025

1 Share

Self-Hosting like it’s 2025

In recent years, self-hosting has emerged as a popular alternative to data-collecting, big-brother services. For a time, I must admit, I was almost addicted to trying out new software, building dashboards, and adding applications I didn’t really need. Now that my setup has remained largely the same for over a year, I wanted to take a moment to summarize what I’ve learned and highlight some software that I found particularly helpful, yet not as widespread as they could be. (And I also needed a topic for my first blog-post ever^^) . I am not trying to present anything as “the best solution.” After all, problems vary, and so do their solutions. This is not an ad for any of the softwares presented.

Container Runtimes

These days, containers have become the default for hosting, with traditional methods increasingly rare. This trend is great news for homelab enthusiasts, as containers not only simplify software deployment but also offer better performance efficiency than virtual machines. While Docker seems to be the go-to choice for almost everyone, I’m keen to explore alternative solutions. It’s worth noting that I’m focusing on using these runtimes in a home environment rather than an enterprise setting.

Docker

The original container runtime with widespread adoption, Docker is a giant in its field. Thanks to its extensive documentation, even those who aren’t highly skilled in IT can often manage to copy-paste a docker-compose.yml file from GitHub to get started. Of course, security considerations are a separate topic.

Podman

Podman is an emerging container runtime gaining attention for its rootless architecture and Docker CLI compatibility. This makes it an appealing option for those who prioritize security and want to avoid running a daemon (Or learn those topics for work). Podman allows users to manage containers with similar commands, even providing aliases so you can still use the docker command making the transition from native Docker relatively smooth. With growing community support and documentation, it’s becoming more and more accessible even if it can be frustrating at first. Also, there are Podman Quadlets, which allow you to manage containers declaratively using systemd instead of docker compose.

Kubernetes

Kubernetes For the self-hosting enthusiast who loves to tinker, Kubernetes might seem like overkill, but it’s a fascinating tool for managing your containerized applications with the elegance of managing a whole swarm of Instances. Often celebrated for orchestrating complex, scalable deployments, Kubernetes can be a rewarding challenge for those looking to bring enterprise-level capabilities into their home lab. However, the main appeal of Kubernetes at home is learning, Kubernetes is complex and most features are not needed for most users.

Managing your Containers via a Webinterface

Some users might prefer a pile of compose files on their hard disk, but for those who do not want to SSH into their server every time a container crashes and they need to check a log, there are several web-based tools to make this task more comfortable.

Portainer

Portainer I’ve been using Portainer for quite some time, and its widespread adoption in both homelab and professional environments makes it an excellent tool for learning through practical application. In my view, it stands out as the most stable web-managed container control interface available. It integrates seamlessly with Docker, Kubernetes, and even Podman. Portainer offers an open-source community edition and an enterprise version with additional features, where you can obtain three licenses for free.

Dockge

Dockge Dashboard Dockge is relatively new and created by the developer behind Uptime Kuma, which is a fantastic tool. Although it hasn’t yet reached the maturity of Portainer, Dockge truly excels in its simplicity. It’s also regularly updated, and the developer is prompt in addressing issues on GitHub.

Reverse Proxy’s and VPNs

To access your selfhosted applications from everywhere, there are two main options. Exposing them to the Internet of accessing via VPN. While a VPN is more secure, exposing services to the Internet certainly is conevenient, at least as long as you know what you are doing.

Pangolin

Pangolin Dashboard This is a fresh and innovative solution that seamlessly combines a VPN and reverse proxy into one easy-to-deploy package. It’s like having a self-hosted version of Cloudflare. All you need is a VPS or similar setup to host the ingress server, and you can add a VPN client to any environment running your applications. It even includes Crowdsec integration and basic SSO capabilities. In fact, writing this post was motivated by my enthusiasm to discuss this software. I believe it’s truly impressive and, given time, it could well become a new standard in place of existing solutions.

Nginx Proxy Manager

NPM Dashboard I’ve noticed many people using this software, but I’m not entirely fond of it. It’s a somewhat buggy frontend for Nginx designed to create TCP/UDP/HTTP(S) proxies. While it boasts a wide range of features and offers a user-friendly web interface for management, I’ve found some functions—like password protection—to be unreliable. I never managed to get it to run consistently well. That said, it was the first software of its kind that I tried, and when it does work, it performs its job quite effectively.

Caddy

Caddyfile Syntax If you’re looking to forego fancy web interfaces and prefer editing a straightforward file while having the server manage everything from proxying to HTTPS via Let’s Encrypt, then this is the option for you. However, due to the absence of a web interface, I wouldn’t recommend it for complete beginners. But if you appreciate simple UNIX-based tooling, Caddy is an excellent choice.

NetBird

NetBird Interface If you’re familiar with Tailscale, you’ll find yourself at ease with NetBird. It acts as a VPN server that handles a WireGuard network on your behalf, significantly reducing complexity. You have the option to self-host or take advantage of their generous free tier on the cloud.

Uptime Kuma

Uptime Kuma Interface If you’re looking for straightforward monitoring and the thought of setting up a full Zabbix or Grafana stack seems daunting, this software is a real lifesaver. With just one deployment, you can monitor your services and receive notifications through a wide variety of channels including…

Gotify

Gotify UI Gotify is a notification management software. You can install the app on your phone and receive notifications, which can be triggered by a simple web request. There are also integrations with lots of other self-hosted software like Uptime Kuma. Really handy.

Other useful ressources for finding additional applications for your needs

Awesome-Selfhosted

This is a big collection of all kinds of Software, however it is a bit unorganized and also lists a few applications where development has stopped entirely.

Selfh.st

This is my favourite source out of all. A great weekly newsletter with really niche recommendations and a large, sortable directory of apps. Great Site!

awesome-docker-compose

This is collection of read-to-run compose files. They are not alway the best option, because sometimes applications include breaking changes with updates, but it is quite a nice collection nonetheless.

Read the whole story
emrox
9 hours ago
reply
Hamburg, Germany
Share this story
Delete

The Egg

1 Share

Author's Note: The Egg is also available in the following languages:

The Egg

By: Andy Weir

You were on your way home when you died.

It was a car accident. Nothing particularly remarkable, but fatal nonetheless. You left behind a wife and two children. It was a painless death. The EMTs tried their best to save you, but to no avail. Your body was so utterly shattered you were better off, trust me.

And that’s when you met me.

“What… what happened?” You asked. “Where am I?”

“You died,” I said, matter-of-factly. No point in mincing words.

“There was a… a truck and it was skidding…”

“Yup,” I said.

“I… I died?”

“Yup. But don’t feel bad about it. Everyone dies,” I said.

You looked around. There was nothingness. Just you and me. “What is this place?” You asked. “Is this the afterlife?”

“More or less,” I said.

“Are you god?” You asked.

“Yup,” I replied. “I’m God.”

“My kids… my wife,” you said.

“What about them?”

“Will they be all right?”

“That’s what I like to see,” I said. “You just died and your main concern is for your family. That’s good stuff right there.”

You looked at me with fascination. To you, I didn’t look like God. I just looked like some man. Or possibly a woman. Some vague authority figure, maybe. More of a grammar school teacher than the almighty.

“Don’t worry,” I said. “They’ll be fine. Your kids will remember you as perfect in every way. They didn’t have time to grow contempt for you. Your wife will cry on the outside, but will be secretly relieved. To be fair, your marriage was falling apart. If it’s any consolation, she’ll feel very guilty for feeling relieved.”

“Oh,” you said. “So what happens now? Do I go to heaven or hell or something?”

“Neither,” I said. “You’ll be reincarnated.”

“Ah,” you said. “So the Hindus were right,”

“All religions are right in their own way,” I said. “Walk with me.”

You followed along as we strode through the void. “Where are we going?”

“Nowhere in particular,” I said. “It’s just nice to walk while we talk.”

“So what’s the point, then?” You asked. “When I get reborn, I’ll just be a blank slate, right? A baby. So all my experiences and everything I did in this life won’t matter.”

“Not so!” I said. “You have within you all the knowledge and experiences of all your past lives. You just don’t remember them right now.”

I stopped walking and took you by the shoulders. “Your soul is more magnificent, beautiful, and gigantic than you can possibly imagine. A human mind can only contain a tiny fraction of what you are. It’s like sticking your finger in a glass of water to see if it’s hot or cold. You put a tiny part of yourself into the vessel, and when you bring it back out, you’ve gained all the experiences it had.

“You’ve been in a human for the last 48 years, so you haven’t stretched out yet and felt the rest of your immense consciousness. If we hung out here for long enough, you’d start remembering everything. But there’s no point to doing that between each life.”

“How many times have I been reincarnated, then?”

“Oh lots. Lots and lots. An in to lots of different lives.” I said. “This time around, you’ll be a Chinese peasant girl in 540 AD.”

“Wait, what?” You stammered. “You’re sending me back in time?”

“Well, I guess technically. Time, as you know it, only exists in your universe. Things are different where I come from.”

“Where you come from?” You said.

“Oh sure,” I explained “I come from somewhere. Somewhere else. And there are others like me. I know you’ll want to know what it’s like there, but honestly you wouldn’t understand.”

“Oh,” you said, a little let down. “But wait. If I get reincarnated to other places in time, I could have interacted with myself at some point.”

“Sure. Happens all the time. And with both lives only aware of their own lifespan you don’t even know it’s happening.”

“So what’s the point of it all?”

“Seriously?” I asked. “Seriously? You’re asking me for the meaning of life? Isn’t that a little stereotypical?”

“Well it’s a reasonable question,” you persisted.

I looked you in the eye. “The meaning of life, the reason I made this whole universe, is for you to mature.”

“You mean mankind? You want us to mature?”

“No, just you. I made this whole universe for you. With each new life you grow and mature and become a larger and greater intellect.”

“Just me? What about everyone else?”

“There is no one else,” I said. “In this universe, there’s just you and me.”

You stared blankly at me. “But all the people on earth…”

“All you. Different incarnations of you.”

“Wait. I’m everyone!?”

“Now you’re getting it,” I said, with a congratulatory slap on the back.

“I’m every human being who ever lived?”

“Or who will ever live, yes.”

“I’m Abraham Lincoln?”

“And you’re John Wilkes Booth, too,” I added.

“I’m Hitler?” You said, appalled.

“And you’re the millions he killed.”

“I’m Jesus?”

“And you’re everyone who followed him.”

You fell silent.

“Every time you victimized someone,” I said, “you were victimizing yourself. Every act of kindness you’ve done, you’ve done to yourself. Every happy and sad moment ever experienced by any human was, or will be, experienced by you.”

You thought for a long time.

“Why?” You asked me. “Why do all this?”

“Because someday, you will become like me. Because that’s what you are. You’re one of my kind. You’re my child.”

“Whoa,” you said, incredulous. “You mean I’m a god?”

“No. Not yet. You’re a fetus. You’re still growing. Once you’ve lived every human life throughout all time, you will have grown enough to be born.”

“So the whole universe,” you said, “it’s just…”

“An egg.” I answered. “Now it’s time for you to move on to your next life.”

And I sent you on your way.

Read the whole story
emrox
1 day ago
reply
Hamburg, Germany
Share this story
Delete

The Egg (By: Andy Weir)

1 Share

The Egg

By: Andy Weir

You were on your way home when you died.

It was a car accident. Nothing particularly remarkable, but fatal nonetheless. You left behind a wife and two children. It was a painless death. The EMTs tried their best to save you, but to no avail. Your body was so utterly shattered you were better off, trust me.

And that’s when you met me.

“What… what happened?” You asked. “Where am I?”

“You died,” I said, matter-of-factly. No point in mincing words.

“There was a… a truck and it was skidding…”

“Yup,” I said.

“I… I died?”

“Yup. But don’t feel bad about it. Everyone dies,” I said.

You looked around. There was nothingness. Just you and me. “What is this place?” You asked. “Is this the afterlife?”

“More or less,” I said.

“Are you god?” You asked.

“Yup,” I replied. “I’m God.”

“My kids… my wife,” you said.

“What about them?”

“Will they be all right?”

“That’s what I like to see,” I said. “You just died and your main concern is for your family. That’s good stuff right there.”

You looked at me with fascination. To you, I didn’t look like God. I just looked like some man. Or possibly a woman. Some vague authority figure, maybe. More of a grammar school teacher than the almighty.

“Don’t worry,” I said. “They’ll be fine. Your kids will remember you as perfect in every way. They didn’t have time to grow contempt for you. Your wife will cry on the outside, but will be secretly relieved. To be fair, your marriage was falling apart. If it’s any consolation, she’ll feel very guilty for feeling relieved.”

“Oh,” you said. “So what happens now? Do I go to heaven or hell or something?”

“Neither,” I said. “You’ll be reincarnated.”

“Ah,” you said. “So the Hindus were right,”

“All religions are right in their own way,” I said. “Walk with me.”

You followed along as we strode through the void. “Where are we going?”

“Nowhere in particular,” I said. “It’s just nice to walk while we talk.”

“So what’s the point, then?” You asked. “When I get reborn, I’ll just be a blank slate, right? A baby. So all my experiences and everything I did in this life won’t matter.”

“Not so!” I said. “You have within you all the knowledge and experiences of all your past lives. You just don’t remember them right now.”

I stopped walking and took you by the shoulders. “Your soul is more magnificent, beautiful, and gigantic than you can possibly imagine. A human mind can only contain a tiny fraction of what you are. It’s like sticking your finger in a glass of water to see if it’s hot or cold. You put a tiny part of yourself into the vessel, and when you bring it back out, you’ve gained all the experiences it had.

“You’ve been in a human for the last 48 years, so you haven’t stretched out yet and felt the rest of your immense consciousness. If we hung out here for long enough, you’d start remembering everything. But there’s no point to doing that between each life.”

“How many times have I been reincarnated, then?”

“Oh lots. Lots and lots. An in to lots of different lives.” I said. “This time around, you’ll be a Chinese peasant girl in 540 AD.”

“Wait, what?” You stammered. “You’re sending me back in time?”

“Well, I guess technically. Time, as you know it, only exists in your universe. Things are different where I come from.”

“Where you come from?” You said.

“Oh sure,” I explained “I come from somewhere. Somewhere else. And there are others like me. I know you’ll want to know what it’s like there, but honestly you wouldn’t understand.”

“Oh,” you said, a little let down. “But wait. If I get reincarnated to other places in time, I could have interacted with myself at some point.”

“Sure. Happens all the time. And with both lives only aware of their own lifespan you don’t even know it’s happening.”

“So what’s the point of it all?”

“Seriously?” I asked. “Seriously? You’re asking me for the meaning of life? Isn’t that a little stereotypical?”

“Well it’s a reasonable question,” you persisted.

I looked you in the eye. “The meaning of life, the reason I made this whole universe, is for you to mature.”

“You mean mankind? You want us to mature?”

“No, just you. I made this whole universe for you. With each new life you grow and mature and become a larger and greater intellect.”

“Just me? What about everyone else?”

“There is no one else,” I said. “In this universe, there’s just you and me.”

You stared blankly at me. “But all the people on earth…”

“All you. Different incarnations of you.”

“Wait. I’m everyone!?”

“Now you’re getting it,” I said, with a congratulatory slap on the back.

“I’m every human being who ever lived?”

“Or who will ever live, yes.”

“I’m Abraham Lincoln?”

“And you’re John Wilkes Booth, too,” I added.

“I’m Hitler?” You said, appalled.

“And you’re the millions he killed.”

“I’m Jesus?”

“And you’re everyone who followed him.”

You fell silent.

“Every time you victimized someone,” I said, “you were victimizing yourself. Every act of kindness you’ve done, you’ve done to yourself. Every happy and sad moment ever experienced by any human was, or will be, experienced by you.”

You thought for a long time.

“Why?” You asked me. “Why do all this?”

“Because someday, you will become like me. Because that’s what you are. You’re one of my kind. You’re my child.”

“Whoa,” you said, incredulous. “You mean I’m a god?”

“No. Not yet. You’re a fetus. You’re still growing. Once you’ve lived every human life throughout all time, you will have grown enough to be born.”

“So the whole universe,” you said, “it’s just…”

“An egg.” I answered. “Now it’s time for you to move on to your next life.”

And I sent you on your way.

Read the whole story
emrox
1 day ago
reply
Hamburg, Germany
Share this story
Delete

Could JavaScript have synchronous await?

2 Shares

In JavaScript, code has color: It is either synchronous or asynchronous. In this blog post, we explore:

  • The problems caused by that
  • How to fix them via synchronous await
  • The two downsides that prevent synchronous await from being practical
Read the whole story
emrox
1 day ago
reply
Hamburg, Germany
alvinashcraft
3 days ago
reply
Pennsylvania, USA
Share this story
Delete

The Frontend Treadmill

2 Shares

A lot of frontend teams are very convinced that rewriting their frontend will lead to the promised land. And I am the bearer of bad tidings.

If you are building a product that you hope has longevity, your frontend framework is the least interesting technical decision for you to make. And all of the time you spend arguing about it is wasted energy.

I will die on this hill.

If your product is still around in 5 years, you’re doing great and you should feel successful. But guess what? Whatever framework you choose will be obsolete in 5 years. That’s just how the frontend community has been operating, and I don’t expect it to change soon. Even the popular frameworks that are still around are completely different. Because change is the name of the game. So they’re gonna rewrite their shit too and just give it a new version number.

Product teams that are smart are getting off the treadmill. Whatever framework you currently have, start investing in getting to know it deeply. Learn the tools until they are not an impediment to your progress. That’s the only option. Replacing it with a shiny new tool is a trap.

I also wanna give a piece of candid advice to engineers who are searching for jobs. If you feel strongly about what framework you want to use, please make that a criteria for your job search. Please stop walking into teams and derailing everything by trying to convince them to switch from framework X to your framework of choice. It’s really annoying and tremendously costly.

I always have to start with the cynical take. It’s just how I am. But I do want to talk about what I think should be happening instead.

Companies that want to reduce the cost of their frontend tech becoming obsoleted so often should be looking to get back to fundamentals. Your teams should be working closer to the web platform with a lot less complex abstractions. We need to relearn what the web is capable of and go back to that.

Let’s be clear, I’m not suggesting this is strictly better and the answer to all of your problems. I’m suggesting this as an intentional business tradeoff that I think provides more value and is less costly in the long run. I believe if you stick closer to core web technologies, you’ll be better able to hire capable engineers in the future without them convincing you they can’t do work without rewriting millions of lines of code.

And if you’re an engineer, you will be able to retain much higher market value over time if you dig into and understand core web technologies. I was here before react, and I’ll be here after it dies. You may trade some job marketability today. But it does a lot more for career longevity than trying to learn every new thing that gets popular. And you see how quickly they discarded us when the market turned anyway. Knowing certain tech won’t save you from those realities.

I couldn’t speak this candidly about this stuff when I held a management role. People can’t help but question my motivations and whatever agenda I may be pushing. Either that or I get into a lot of trouble with my internal team because they think I’m talking about them. But this is just what I’ve seen play out after doing this for 20+ years. And I feel like we need to be able to speak plainly.

This has been brewing in my head for a long time. The frontend ecosystem is kind of broken right now. And it’s frustrating to me for a few different reasons. New developers are having an extremely hard time learning enough skills to be gainfully employed. They are drowning in this complex garbage and feeling really disheartened. As a result, companies are finding it more difficult to do basic hiring. The bar is so high just to get a regular dev job. And everybody loses.

What’s even worse is that I believe a lot of this energy is wasted. People that are learning the current tech ecosystem are absolutely not learning web fundamentals. They are too abstracted away. And when the stack changes again, these folks are going to be at a serious disadvantage when they have to adapt away from what they learned. It’s a deep disservice to people’s professional careers, and it’s going to cause a lot of heartache later.

On a more personal note, this is frustrating to me because I think it’s a big part of why we’re seeing the web stagnate so much. I still run into lots of devs who are creative and enthusiastic about building cool things. They just can’t. They are trying and failing because the tools being recommended to them are just not approachable enough. And at the same time, they’re being convinced that learning fundamentals is a waste of time because it’s so different from what everybody is talking about.

I guess I want to close by stating my biases. I’m a web guy. I’ve been bullish on the web for 20+ years, and I will continue to be. I think it is an extremely capable and unique platform for delivering software. And it has only gotten better over time while retaining an incredible level of backwards compatibility. The underlying tools we have are dope now. But our current framework layer is working against the grain instead of embracing the platform.

This is from a recent thread I wrote on mastodon. Reproduced with only light editing.

Read the whole story
emrox
12 days ago
reply
Hamburg, Germany
Share this story
Delete

Less Work

1 Share

Less Work

And more competence.

Read the whole story
emrox
13 days ago
reply
Hamburg, Germany
Share this story
Delete
Next Page of Stories