Self hosted FLOSS fitness/workout tracker
github.com
github.com
I suppose an alternative design would be to be on-device storage first, and then have an optional sync to a server (or laptop/desktop).
https://raphael.lullis.net/thinking-heads-are-not-in-the-clo...
[0] localfirstweb.dev
That way your data is still in cloud and you don't actually need a server.
In fact if something is "in the cloud", it's by definition being made available by a remote machine, AKA a server serving the data.
The alternative is not to have a server and instead have clients share data if data needs to be shared.
The mobile app is also open source https://github.com/wger-project/flutter
I don't know how but I imagine you could build it and side load your own build to your phone?
Like I think there should be some way to "one-button-click" install "self-hosted" apps in the cloud, tied to my personal account (and maybe with auth tied to that account). And I pay the usage fees for the cloud (hopefully on a per-request kind of basis, not an always-on server instance).
Is this a thing that I don't know about? Or is the market too narrow to be useful? (Otherwise, why doesn't it already exist?)
In particular, self hosted apps usually are using relational databases or SQLite which need persistent disk so can’t run serverless. They also sometimes require writing to physical disk instead of object storage like S3. Writing or rewriting apps to support serverless when they have no technical need to when self hosting would make things more complicated. Most CRUD frameworks used to write self-hosted apps do not work with NoSQL out of the box.
Thing is, almost every self hosted app supports docker now and so if you like, install portainer on a VPS or NUC or raspberry pi and you’ll be able to set up most self hosted apps easily without touching the command line.
As far as I know, myself and other self-hosters run these sort of applications/services on home infrastructure or VPSes/dedicated/bare-metal where multiple applications usually share one instance. This could be done with docker, or cgroups, or countless other ways. I'm not sure if that's what you mean with a "hosted container" though, don't think I've heard about that before.
And I said the same thing at the end of my comment about the way people would host things using docker on a VPS or home server.
> Thing is, almost every self hosted app supports docker now and so if you like, install portainer on a VPS or NUC or raspberry pi and you’ll be able to set up most self hosted apps easily without touching the command line.
And I did say at the end of my comment:
> Thing is, almost every self hosted app supports docker now and so if you like, install portainer on a VPS or NUC or raspberry pi and you’ll be able to set up most self hosted apps easily without touching the command line.
I'm not super familiar with it, but I think what you describe was/is the goal of Sandstorm (https://sandstorm.org/).
Then there are also efforts like YunoHost (https://yunohost.org/) which are kind of like that, gives SSO auth and everything out of the box for all the apps it supports.
Even easier to use and less involved would be maybe what TrueNAS Core has in terms of apps support, which is essentially also "one-click install" of self-hosted applications, backed by local Kubernetes installation if I remember correctly.
A more involved option for people who want to manage more themselves (both infrastructure and configuration-wise) is using NixOS, which is the approach I chose for my own local infrastructure at home. For the packages supported by NixPkgs, many applications are like ~4 lines of configuration to setup and get integrated with the rest of the apps you run.
All of these options you can run in the cloud, bare-metal or at home servers, afaik.
Huh, interesting as I literally moved from TrueNAS to NixOS because of two reasons 1) not liking something as complicated as Kubernetes for something as simple as home infrastructure and 2) to have a more reproducible setup.
Happy to hear 1 won't be an issue for others in the future :)
This 5 disk pool started from the freebsd truenas, to Debian, to nixos, back to linux truenas.
And the disks where bumped from 2TB to 12Tb
The only problem is that the existing apps wouldn't work with it.
Even decades ago, you could buy a web hosting account and simply click an icon to install Wordpress, CRMs, webmail clients, etc in your account and get started with minimal hassle. There are very likely many of these still around. Of course, if you are not a technical user, you are limited to what they provide.
In the realm of containers, there are also many many choices for this. Most are open source, some are commercial. The problem with all that I know of, is that when you want to use an app that isn't in their "store", or when you want to use it differently than how they have packaged it, either you can't do it because it's not supported, or you essentially have to learn docker from scratch anyway.
You’re not going to get per-request billing, but shared hosting is typically as cheap as you’re going to get for “always-on” web hosting.
To a lot of people, self hosting is about getting complete (or effectively complete) control of your data and privacy. That can be compatible with the cloud.
There are many more, though. Things like proxmox with app stores, which are easily installed in most clouds.
Also CasaOs and others.
Demo: https://demo.ryot.io/_s/acl_vUMPnPirkHlT
Code: https://github.com/IgnisDa/ryot
(PS: they opted to go in a direction where it also includes some media-related features -- like tracking movies or books you've seen/read -- but this can be disabled).
All OSS software is inherently without cost, that seems unquestioned here. So free only ever means one thing to non-laypeople, in this context. So isn’t FOSS already the neutral middle ground between OSS and FS??
Regardless, I’m struggling to conceive of how a piece of software could be OS but not F. I guess if it’s, like, surveillance software known to be used by governments…? Maybe OSS that is paradoxically restrictively licensed, threatening any forks or unauthorized compilations with legal action? That seems like a terribly naive proposition, but I’m sure it’s been floated by at least one MBA…
In other words: you can argue all day about the justifications for OS’ing your S being more related to removing cost barriers or to sharing control, but in the end, you clearly have to do both. Making “F[L]OSS” redundant at best, confusing at worst!
Surely I’m missing something, bc I know this has been litigated for many thousands of hours both pre- and post-Eternal September. But rn it just comes across as baseless pedantry
I don't think so, you could charge money for FOSS (like charging for a built binary but having the source be FOSS) and it'll still be as much FOSS as any other FOSS out there. It isn't very common to do so, but there isn't any inherently wrong or incorrect with charging for FOSS.
You don't make a binary publicly available, then you put the binary behind a paywall.
Some examples:
- Ardour - Lets you pull down the source and compile locally for free, or you pay to use their compiled binaries. Author/creator of Ardour hangs around on HN, maybe they could share their experience if they see this.
- Radium - Another DAW like Ardour, does it the same way.
- Fritzing - Designer for PCBs, same approach, pay for the binaries if you'd like, but free to compile from source if you can
I'm sure there are many more examples out there, but these are the ones I thought about when I wrote my previous comment.
With that in mind, the proposition is basically just the honor system. Which maybe works a little sometimes, among professionals? I paid for SublimeText to support them, for example. But WinRar is a very compelling counter example.
It feels like publishing a pdf of a book but with a big red “don’t click this until you’ve Venmo’d me $5!” above it. Regardless of what I individually would do, that’s just kinda… goofy?
Open Source was a later "rebranding" of free software by some people who fell out with Stallman and wanted to emphasise more the practical advantages over the ethical ones. Stallman wasn't happy because he felt (and still feels) the most important thing is that each person should be able to do computing freely.
Anyway, long story short, free software is nothing to do with cost. Horrible acronyms like "FLOSS" are to try to make everyone happy.
There is open source software that requires payment to obtain.
There is open source software that you are not free to do whatever you want with (non-libre)
There is software available at no cost which is neither open source or libre.
Just about every permutation of these 3 concepts has some actual example in the real world. Please do not promote the idea that they are in any way synonyms.
Like the other commenter said, the F in F(L)OSS does mean free as in speech, not necessarily free as in beer.
I've been in the GNU/libre/open source world since 1986. My experience is that the L (for libre) was added specifically because the english "Free" is ambiguous and too often interpreted as without-cost/free-as-in-beer/gratis.
Stallman wants people to say FLOSS to denote free software versus open source software, and my interpretation of this article is that he only deems the GNU licenses to be truly free (libre) software.
Simply has never been the case.
One example I am familiar with is an (old) project called LinuxSampler. It was (probably incorrectly) licensed GPL+modification clause that prevented its use in any commercial hardware project.
There have been some other projects that are released under what might be termed "GPL-but-no-military-use".
The people I know who have added clauses like this do not believe they are breaking the spirit of open source; I'm not here to insist that they are right or wrong.
And let's not forget, licenses are legal contracts, so it behooves people even more to get them correct lest they be sued.
I settled with Iron for iOS, which is also free software despite the platform it runs. Still looking for an equivalent on Android, the LiftLog app seems to have potential, but I think the UI is not that great.
the ui is old but effective.
I've given up on apps completely and log with a reMarkable.
All of these apps use their own data schemas, which makes normalizing the data for export into something like Google Sheets really hard. Consequently, you're locked into those apps and whatever design choices they choose to implement.
Moreover, I don't like using my phone when I'm at the gym, and, well, they're phone apps.
What's the advantage of having the server and data on some device other than the one I'm using to interact with it?
No a lot of people would use fitness trackers if you manually had to enter all the information.
For a recipe database, if you're thinking of something like a food logger, having the food database shared by all users instead of local to each user is what allows the data to already be there the first time you ever log that same food. If it has a barcode or simple description and anyone else has ever input the nutrition data associated with it, it's already available to you without every user having to input that data individually.
DISCLAIMER: I'm a backend software engineer so I'm biased.
All replies focus on "service" or cloud-in-general is needed to implement sync between devices.
Why we don't have "own" sync-my-files as-service that can be connected to many apps?
I would prefer this one (in all incarnations - desktop/mobile/watch) to be just apps, but connected to something like "folder in dropbox" or "folder in gdrive" ...
My cloud my choice. Their program my data (here or in my cloud).
I know that it doesn't work in todays economy when everyone expects free in exchange for some invonvenience like ads/data-scraping by vendor.
That's the opposite of gp's question of: >no reason to ever leave my laptop [...] What's the advantage [...] data on some device other than the one I'm using to interact with it?
Gp was wondering why the data can't remain local to that device [i.e. laptop]. Proposing "choose-your-own-cloud-service" like DropBox and Google Drive contradicts that.
Mostly that many people have more than 1 computer these days: a small one that just about fits in the palm of their hand, and a larger one that stays in a room.
This means that most people are instantly operating within the realm of "distributed computing", and one of the fundamental approaches to that sort of thing is to allow one of the computers to both provide and accept data to/from the other.
Of course, if you have an application that will only ever be used on a single computing device, and whose data has no utility anywhere else, there's no need for the data to be able to move to/from a server. Such applications do exist, but so do many, many more where the ability to view and modify the data on different devices in different locations is desirable, even when there's just a single user involved.
- They might have less control over the algorithms deployed on client side vs them being on the server. In case of android apps it is a hassle to get the users to upgrade the app. - In case there is a bug in the data I can't easily see the shape of the data and debug faster.
Probably in this case developer might be ambitious and would be thinking about adding extra features to their stack which would be potentially easy if algorithms and data is under their control.
Thanks to all the spying/telemetry in most of those platforms once you use your privacy protecting app on them you lose the advantage of your data being self-hosted in the first place.