Tag: self hosting

  • Review – Self hosted photo management apps

    There are only two options, in my opinion, that absolutely stand out right now. One is called PhotoPrism, and the other is called Immich.

    As I mentioned before, I run a modest Chrome Box as a home server. I’ve always wanted to move away from iCloud because it becomes expensive rather quickly, but I couldn’t find a solution that also offered a great user experience.

    I initially started with Immich, ran it once, and it crashed my server. I then migrated to PhotoPrism, which was more efficient, but the UI wasn’t great.

    After a few days, I switched back to Immich. I hoped I could make it work by disabling many options, and I was right. After completely disabling machine learning and video transcoding, Immich seems to be okay, although it still consumes a significant amount of CPU and heats the server.

    But as of now, there’s nothing else like it on the market, and this is the best we have. I hope they optimize the performance and eventually provide tips on disabling heavy features during installation, which would make the onboarding process easier. To be fair, Immich isn’t even at version 1.0 yet—it’s still considered beta software. For a beta, it’s extremely well-polished, so kudos for that.

    My recommendation would be to go with Immich, but carefully go through the settings to ensure you’re disabling any unnecessary or resource-intensive features.

    The rest of the article is a more formal analysis of the pros and cons.

    PhotoPrism

    Pros:

    • Does not disturb the external library, making it very easy to migrate and maintain.
    • Machine learning for face detection.

    Cons:

    • No Android or iOS app.
    • The UI could be more polished.
    • User management UI is not included in the free version.

    Immich

    Pros:

    • Excellent Android and iOS apps.
    • Beautiful UI.
    • Machine learning for face detection, etc.
    • Implementation of configuration for custom use cases.
    • Great administration UI, including views on jobs running, active, waiting, etc.

    Cons:

    • If you run a lighter home server and forget to disable machine learning and video transcoding features, it will push the CPU to 100% consistently. Some feature flag management at the setup level would be helpful to prevent this.
  • Review – CasaOS for self hosting

    CasaOS is yet another project to assist people into self hosting. But this one gets a whole lot of things right.

    What it gets right

    • The setup process is smooth, with a machine running tailscale & CasaOS. Most of the heavylifting for self hosting a home sever is done. The UI for apps is beautifully done.
    • Gets the UI right for volume management. Adding and removing volumes is beautifully done. Assumes you understand docker compose though. Nice balance of power and flexibility.
    • Minimal but well curated app store
    • Support for third party app stores
    • Very well made file manager
    • Supports network shares with samba inherently. Very powerful.
    • Can cap ram usage and cpu usage per application. A very useful feature since some applications like Jellyfin, photoprism can potentially take over the entire ram.

    What it does not get right

    • Entire backups are not obvious, duplicati is recommended. But that only backs up selected folders. I would prefer something along the lines of time machine in MacOS. This is actually a deal-breaker, but I don’t think there is any project out there which figured this out either.
    • Hosting to public domains is not inherently obvious. It would be nice if it supports
    • Communicating between apps is non – intutive. I’ve still not figured out how to get sonarr to talk to transmission. Or how I can configure Homarr & make it talk to jellyfin etc..
    • Network shares is great, but need polishing. Currently its without auth and no way to tweak permissions. Probably advanced and might be potentially out of scope for the project, but it does have the idea of making a folder network share-able. Would be nice if there is an app just to interface with samba, so that CasaOS just interfaces with the app for network sharing capabilities.

    Verdict – Recommended

    If you are starting out on your self hosting journey, definitely recommend checking out CasaOS. Among Umbrel, Tipi & CasaOS, CasaOS definitely gets most things right.

  • Review – Tipi for self hosting

    What it gets right?

    • Install is very smooth
    • auto HTTPs for all public domains using let’s encrypt & traefik
    • local domains for self hosting out of the box
    • great UI for installing and managing apps
    • app level backups on the UI. Really big deal since not a lot of products in this space have it out of the box including CasaOS.

    What it does not get right?

    • No UI for automated app backups & No Maintenance window setups for complete server backups

    Observations

    Once I get used to the tool, I lose the advantage of having a fresh eye. Hence documenting observations here if I find anything weird.

    • Uninstall is not obvious. The expectation is to stop the app & then uninstall. Although that makes perfect sense, it would be nice to just have a button for uninstall.
    • tipi.local does not work as advertised. Not sure why too.
      • there was documentation here, did not stumble into it cause it said “Local SSL certs” but I read it as “documentation on enabling https://tipi.local”, not how to setup tipi.local. but anyways, the docs were fantastic and folks over at discord were super helpful. Made it work after following the docs.
    • connecting between services is not intuitive.
      • You just use your IP:port, it would be nice if there was a button to copy the URL from the service on the dashboard
    • mounting volumes is do-able, but no UI
      • nitpick, user-config does exist. But it should be done via code. UI around adding volumes would be really nice.
  • Review – Umbrel for self hosting

    Checkout the self hosting dream post for more context

    Verdict: The closest to ideal solution right now on the market.

    Pros

    • Stunning UI & UX
    • Great visuals
    • Seamless installs & updates. dependencies just work.
    • Authentication for all apps using a proxy in front of all services
    • Vision: these folks also do hardware. seem to be playing the long game. excited to see where they’ll take it.

    Cons

    • No WordPress support (blocker for me personally)
      • Umbrel operates in a single user, single app install territory. which means by philosophy multiple wordpress instances won’t work. Multi-site would work though. Which is good enough if they happen to deliver. Maybe I can make a PR.
    • No systematic & scheduled backups – as of yet at least (blocker again)
    • They seem to stress on crypto. Not a big fan.
    • No multiple user support
  • The self hosting dream

    If mobile apps have gotten so good with local sqlite databases, why can’t we hold ourselves to the same standards for servers?

    Families or individuals should be able to self host their own software under a sub-domain, give limited access to its some folks and run the show from their servers.

    A man can dream, So let’s dream for a bit..

    In an ideal world, a customer orders a box with storage of say, a TB and a domain for a year as well.. Should have a small screen which boots up.

    Something like Umbrel home.

    On power on, the screen boots up. Post startup asks you to connect Ethernet and once done asks you to scan a QR code which will open a url for onboarding. Where it’ll ask

    • Admin username & password
    • Base domain or maybe tailscale setup for networking.

    At this point , an authentication solution like authentik is setup which all the services will use going forward.

    At this point a vpn, something like Tailscale should also be setup so that secure access is shared cross devices.

    Now the installer suggests installing some apps like Jellyfin, omnivore, vaultwarden, WordPress etc.. & guides the user to start using that website on their other devices. The App Store clearly highlights which apps support SSO and which apps don’t.

    Apps should not ask for any input from the user, similar to how mobile apps don’t ask anything from the customer while installing. Similarly during uninstalling, the app will ask if it wants to delete data along with it or not.

    App Store listings should also come with companion app information along with QR codes for installing them on other devices. The App Store should also have feedback/reviews similar to Apple App Store.

    If an app requests for file permissions, they should just pop up stating that they require access to a certain directory similar to how phones do it.

    Stuff like backups are sorted so that if the device happens to be corrupted or non functional for some reason, you should be able to connect the phone & hit restore to the latest functional version. Even backups at a app level are sorted so that restoring to a particular checkpoint is seamless & can be done through admin panel.

    Upgrading storage should be a breeze, similar to how you would plug in a 512 GB SD card and move data into it.

    Support should be always at reach, maybe with a cost per consultation. So that if an elderly person is not able to log into her Jellyfin account, someone can take control & fix it seamlessly.

    Autoscaling should be possible, the user should be able to purchase a new node and during onboarding select that this is a non leader node. The leader will be responsible for managing load.

    Status

    Settled on using Tipi running on a chromebox.

    I’ve currently explored CasaOS, Umbrel, RunTipi and settled on Tipi. I’m also working on a tool to simplify all of this, a project I call Citadel.

  • Practical self hosting

    Self hosting absolutely everything I feel is not practical as of today. Hopefully it will be possible one day, but currently is not. In that case, what can we actually self host? Maybe the question to ask is, why do we self host?

    Why do we self host?

    Privacy : Placing all our personal data in the hands of large multi national companies which in-turn sell our data or use it to train their large scale AI models is unfortunately the world we live in today. With self hosting, privacy is protected.

    Cost : Sometimes the storage costs of certain services mean that the subscription cost of services tend to be prohibitive. Self hosting that service means that we don’t have to incur that cost.

    Why don’t we already self host everything?

    Although this sounds like a stupid question, its very important to think through this one. The reasons I specifically do not self host for the longest time is

    • Deployment complexity: A non issue with projects like Caprover
    • Opportunity cost of failures: sometimes the opportunity cost of an action failing is higher than the subscription cost itself. For example, the opportunity cost of an email send or receive failure could mean a lot. During some ops work or because of some other random reason, what if the disk gets corrupted or data gets partially deleted. Can I just hit a button and restore my stack back what it was today morning? This seemingly simple ask is surprisingly complex.
    • Missing Network effect: Cannot move people from Instagram or Whatsapp. With the current setup, meta knows everything and there is nothing we can do about it if we want to live normally in this society unfortunately.

    With this information, what is that I use day to day but can’t self host (for context, look into the stack post)

    • Finance apps : PayTM, Fi bank etc.. obviously
    • Social media & distribution channel apps: Instagram, Whatsapp etc.. cannot ask people to move to matrix suddenly. Similarly Uber, Youtube, Prime video cannot be a self hosted solution since the moat is the network.
    • Critical communication apps: gmail, google calendar. The cost of missing an email or an invite is super high and not worth it. Better to switch to more secure apps like proton mail etc..

    So what can we self host then?

    App picks

    Library streaming solution – Jellyfin

    Libraries tend to be irrationally large after a while, hosting jellyfin on a old PC at home & using that as a base and streaming media to your TV / mobile across your family members & yourself is extremely cost effective. Going the subscription route will be extremely expensive.

    Password management – Vaultwarden

    Bitwarden is a beautifully done software to manage passwords across all kinds of devices. Vaultwarden is the rust implementation of Bitwarden.

    Bookmarks management – Omnivore

    Looking forward for omnivore to wrap up their self hosting setup so that I can start self hosting. Right now it does not exist.

    Status monitoring – Statping

    Simple, straight to the point and solid. Recommended!

    Missing apps in the ecosystem

    • A great to do app similar to TickTick with solid reminders, good apps on mobile & collaboration.
    • Sync solutions for photos & files. Automatically backing up photos, videos & documents so that information is not lost. An alternative for iCloud.
    • A great note taking / voice notes app with solid mobile apps and collaboration. Alternative for iCloud notes, simplenote etc..
    • Health tracking, ideally with hardware.

    Also, checkout The self hosting dream