Self hosting is great. The examples in this article are not exactly shining examples: an API that shows your Spotify stats?
If we’re going to talk about self hosting music, I’d like to mention Roon, which is loved by audiophiles. It aims at creating a magazine like experience for navigating and discovering music. Been using it since COVID and it’s completely transformed my experience of listening to something else than the same playlist over and over.
Thanks for the tip! I run these things mostly for fun - the Spotify stats thing isn't super useful, but it is fun to look at how my listening habits have changed over the years.
It slightly more than just an API though: one can't aggregate directly from the Spotify API.
I like listening to the same playlist over an over.
Magazine for music? I would like to have time for magazines. But it would be about electronic and RC-models.
You can self host a server on your machine, and buy a license for it. Not all software you run on your own machine has to be open source. See: Plex for example.
I'm not super familiar, but it looks like you're subscribing to Roon's metadata but it's "bring your own music" (to quote their FAQ) which can be files you self-host and/or supported music streaming services (which don't include Roon) that you subscribe to separately.
There seems to be a fad for "self hosting" things now. What I don't understand is: what happened to just having a single device and having it run the code directly and show you the result directly? For example, why can't the thing that connects to the Spotify API just... do that, from a program that runs locally, independent of a web browser, with a GUI created using a standard non-web GUI toolkit? Why would I want to use it by pointing my browser at a machine name (of another device I own) and port number, rather than by launching a dedicated program?
Most people have many devices: phones, tablets, laptops, etc... so this makes that stuff accessible from anywhere. And if you lose your device, or it dies, you don't lose all your data. On that note: self-hosting allows you to centralize your backups.
It's hard for me to imagine wanting to use a phone for anything other than making calls or sending SMS; that's what I've been doing for many years now and I see no reason to change. But if I did have a tablet or laptop, I could just sync the program to it and run it locally. Maybe using, for example, good old rsync.
And I can't imagine being away from "home base" on a laptop for long enough (or using it for anything critical enough) to really worry about how to achieve "centralized backups". I'd rather not transmit that data over the Internet when I could just connect the laptop physically to my backup storage when I got home.
Others already answered with information that you usually have more devices then just 1. So you can have access to your data from PC, laptop and your phone.
I for once also like to have my own data my own. I.e. I have:
- my own email server
- my own files sharing service
- service for cardDav, CalDav etc.
- service for editing my own office files on mobile
I tried various Things to be able to access my own DNA while not at home and ended up using wire guard for my subnet so that I always have access to my DNA server. Right now I am solving it with mikrotiks "back to home" app., but the regular wire guard app does it as well. It uses very little battery.
A lot of the stuff we're selfhosting just.... isn't a standalone application. My mastodon server has to run always to get messages. My nexcloud has to be always on to get my phone backups.
The only thing that might make sense to be local is media, but only if you don't share with someone else and you want to maintain an offline copy of your library on each device you use.
In general, it's stuff that needs to be shared or needs to run 24/7. A lot of that just doesn't make any sense as a desktop application.
All rationalization aside, it's a hobby. It's fun. People spin up hulking enterprise gear at home and run jellyfin just for kicks. It's not supposed to be at all practical or to even make sense. It's silly nonsense on purpose.
Specifically with the Spotify service, the problem with the Spotify API is that you can only request listening data for the last 100 played songs iirc. You can manually request the data from Spotify, but it will take them a month or two to give you the data and it will be a snapshot of it.
So if you want live updates on statistics about your listening habits you need a service running 24/7 querying the Spotify API and storing the information in a database. Assumedly since most people don't have a computer to run this on 24/7, a server is necessary / preferred.
I've actually written an application doing something similar, it's very annoying that Spotify's API works like this.
> what happened to just having a single device and having it run the code directly and show you the result directly?
Having access to multiple computers/devices as a single user became cheap and more common. If it was still the 2000s (or maybe early 2010s) and somebody only used a single PC for most of their tasks that'd make sense, but that's just not the reality most people live anymore
As far as I can tell, the price range for consumer PCs hasn't really moved since then. If anything it's worse now for people who expect to have a good quality graphics card. Owning a smartphone outright isn't cheap, either.
I think people don't know what they want, but they like fiddling with computers. So, they imagine future scenarios where they would have problems (which they don't) and imagine solutions for those problems they don't have, and spend time implementing those solutions.
For example. Whenever RSS comes up, I say that newsboat is the best thing. People don't like it because it doesn't synchronize devices. Really? Why not have a device for reading, and read there? I have newsboat on my laptop and I A) don't have to read on my phone, B) can't read on my phone, and C) don't have to spend my free time doing unpaid maintenance for a job which I created for myself. Win-win-win.
> Why not have a device for reading, and read there?
I'm curious to know why you think this way of doing is "correct"? I like reading my RSS feeds on my phone. And on my laptop. And on my tablet, sometimes.
I read RSS on my desktop when I'm at home, on my work laptop when I'm at work, and on my phone in-between. And that works perfectly.
Why would I want to reduce my options?
Maybe for some. But for me I do not want giant corp own my data. Like I do give keys to my house to some company or I do not have people manage my own money. Just as a principle.
I guess there are a few reasons: easier to develop cross platform, easier to reuse for non-self hosted, easier for programmers familiar with web development to implement, less activation cost for users, less friction to use with multiple devices.
You'll need to port that to windows, linux, Mac, android, and ios for a typical device mix of someone doing self-hosting, and no access from more closed platforms that have a browser.
I can understand Linux programs not being easily made to work on Android, but I can't understand why I'd ever need or want a device that runs Android and a device that runs IOS. Unless they're test devices for development, but I wouldn't be using those to access services in my day-to-day life.
There is always going to be a point of failure. For many of us, self-hosting on a dedicated server, VPS, or some sort of cloud service is much better than keeping the hardware to do it at home.
My stuff is spread out among a dedicated server and 3 VPS's. --I could and should drop one of the VPS's, but if it'll take me a couple of hours, it's just not worth it until I actually have the time to spare.
It depends of your needs and resources of course but you can keep in some drawer or basement some old or small PC and you basically do not have to spend money on this, but for paid servers you have to spend 20-50$/month for something sensible.
1tb of backup in some s3 service costs like 120$ per year, and 1TB is not that much. In reality paid servers will be close to 1k$/year and in that price you can have sensible machine.
You can always "do more" yourself. I think we all can agree that it would not be reasonable to build your own server (including) from first principles so it's always a question of where you want to draw the line. IMO what matters is how much you influence the end result and how well you are equipped to deal with bs from those your solution depends on. A VPS just means you let someone else deal with hardware issues but are still fully controlling the software - and the interface between the two is a relatively standard virtual machine which makes it easy to migrate elsewhere when the provider decides to sequeeze you.
I didn't realize, but apparently this is a long-standing argument. I did just a tiny bit of digging because I'm sort of into self-hosting and I ran across the selfhosted Reddit's wiki on the topic.
Basically it sounds like IaaS is fine (even though someone else manages the hardware and restricts OS choices), and even PaaS is fine (even though someone else manages the hardware, the OS, and the configuration of interpreters such as php / node.js / python / etc.), since these let you run your own code (which can include your instance of community code). Only SaaS would be excluded, as these don't let you run your own code.
Something pikapods looked neat at first then soon I realised the costs add up and add up a lot. One day I was calculating it at pikapods at I realised I had crossed 27 USD/m and I wasn't even finished. Like those streaming services - everything on a new streaming service i.e a new pod and they cost separately. I wish there was a service which would take away the pain of installation and maintenance away from me but let me host a lot of absolutely single user (i.e. only I'd access that of course) and as light weight as it can get and as low in usage at it gets on one single "pod" or "instance" or "box" and charge for that. Also, it's not a pikapods or pikapods' problem, it's a general problem I believe.
I will say, Pikapods is really nice because they give a cut back to the developers of Open Source. I'm the maintainer of Kavita, a popular self-hosted reading server and pikapods gives me something like 10-15% cut of each user running Kavita.
My comment was not on integrity of pikapods or their functioning. Rather how even such a setup results in costs adding up and that could be a net negative to self hosting.
PS. Your app's name kavita - does it mean poem/poetry or it means something else?
I've taken this one step further: I self-host archivebox which is basically a self-hosted wayback machine. That way my bookmarks are immune to articles being taken down / moved / modified.
If we’re going to talk about self hosting music, I’d like to mention Roon, which is loved by audiophiles. It aims at creating a magazine like experience for navigating and discovering music. Been using it since COVID and it’s completely transformed my experience of listening to something else than the same playlist over and over.
Loved the UI photos, but I guess I'll continue with Navidrome + Feishin/Symfonium.
Deleted Comment
It slightly more than just an API though: one can't aggregate directly from the Spotify API.
It's hard for me to imagine wanting to use a phone for anything other than making calls or sending SMS; that's what I've been doing for many years now and I see no reason to change. But if I did have a tablet or laptop, I could just sync the program to it and run it locally. Maybe using, for example, good old rsync.
And I can't imagine being away from "home base" on a laptop for long enough (or using it for anything critical enough) to really worry about how to achieve "centralized backups". I'd rather not transmit that data over the Internet when I could just connect the laptop physically to my backup storage when I got home.
- my own email server
- my own files sharing service
- service for cardDav, CalDav etc.
- service for editing my own office files on mobile
- notes that are synchronized
- streaming of movies and music
- build and git server
- my own smart home service
- notification service
- chat
- VPN
- desktop sharing service
- my own DNS for blocking adds
- and others
Deleted Comment
The only thing that might make sense to be local is media, but only if you don't share with someone else and you want to maintain an offline copy of your library on each device you use.
In general, it's stuff that needs to be shared or needs to run 24/7. A lot of that just doesn't make any sense as a desktop application.
All rationalization aside, it's a hobby. It's fun. People spin up hulking enterprise gear at home and run jellyfin just for kicks. It's not supposed to be at all practical or to even make sense. It's silly nonsense on purpose.
So if you want live updates on statistics about your listening habits you need a service running 24/7 querying the Spotify API and storing the information in a database. Assumedly since most people don't have a computer to run this on 24/7, a server is necessary / preferred.
I've actually written an application doing something similar, it's very annoying that Spotify's API works like this.
Having access to multiple computers/devices as a single user became cheap and more common. If it was still the 2000s (or maybe early 2010s) and somebody only used a single PC for most of their tasks that'd make sense, but that's just not the reality most people live anymore
For example. Whenever RSS comes up, I say that newsboat is the best thing. People don't like it because it doesn't synchronize devices. Really? Why not have a device for reading, and read there? I have newsboat on my laptop and I A) don't have to read on my phone, B) can't read on my phone, and C) don't have to spend my free time doing unpaid maintenance for a job which I created for myself. Win-win-win.
I'm curious to know why you think this way of doing is "correct"? I like reading my RSS feeds on my phone. And on my laptop. And on my tablet, sometimes.
New to me might not mean new to others.
Self hosting is not valued on what someone else self-hosts, it's about what you self host that's valuable to you.
Wait, I thought self hosting meant having your own hardware at like home running all your services. Not DigitalOcean.
My stuff is spread out among a dedicated server and 3 VPS's. --I could and should drop one of the VPS's, but if it'll take me a couple of hours, it's just not worth it until I actually have the time to spare.
https://www.reddit.com/r/selfhosted/wiki/selfhosted
TLDR: they don't differentiate on whether you own the hardware or not.
But it was fun to and educational to build and could pretty easily be extended to add more features.
I would recommend just going for it if you are interested in writing one. It's not as hard as it sounds.
PS. Your app's name kavita - does it mean poem/poetry or it means something else?
1. siyuan - a lightweight note-taking website like obsidian
2. readeck - a lightweight bookmark website scrapes original page to the local server while keeping the original formatting.
3. leantime - a lightweight project management website