HortusFox – A self-hosted collaborative plant management system
github.com
github.com
But then I saw the setup guide. Manual sql imports? Needing a previously set up MySQL? Webserver launches via the php command? I get the use of composer but the rest seems so easily avoidable and horribly overcomplicated.
Every time I see a system that wants me to run “docker compose” or something like that I find it is the wrong version of Docker than the one installed on my machine or for some reason it doesn’t work and then it is a maze of twisty little configuration files…. Snake oil tools like Docker, Ansible, Chef, Pupper, etc. might have some value if they absolved you from understanding the underlying tech but they are just another thing to learn and if anything goes wrong you’d better believe there is every version of Python and Java and every other runtime and library in use somewhere in some container.
Before upgrading my DSL I could never get Docker systems to work at home since somehow Docker can take a 10 MB app and download 10 GB of files to attempt to make it work…. And it times out. And a cacheing facility that would make it reliable on a less than gigabit connection is probably an “enterprise” feature that costs vastly more.
I haven't encountered issues with "different versions of Docker." On the contrary, I've faced challenges with various versions of Python, PHP, packages, and system libraries when not using Docker. These are issues that simply don't arise within the Docker environment.
While it's true that some users neglect image hygiene, using the wrong base image or including unnecessary elements in the final image, I've noticed a decreasing trend in such practices.
Regarding configuration files, my understanding is that they remain the same files needed for a vanilla install, simply mapped inside a container.
In my opinion, Docker is not just "yet another thing to learn"; it's a single tool to learn and use universally, both now and in the future.
I'm not well-versed in PHP development. If I were to use a tool for PHP development, I would need PHP installed, but there are numerous versions available. Do I need Apache? Is it compatible with my three-year-old version? Will it work with a nightly build? What about Composer? Does it have dependencies?
And then there's the matter of the database. Now, I'd have to install and configure a complex piece of software with numerous dependencies. SQL is a familiar term to many, but not everyone is comfortable navigating the MySQL CLI, especially when it doesn't come by default on your machine.
But what about more than just experimenting? With Docker, a simple Compose file can be created to spin up a configured database, including all necessary dependencies. If required, it can also handle any migration or initialization needed.
https://github.com/danbooru/danbooru
and the compose file “just doesn’t work” because it is a few years old and not compatible with the docker compose version installed with Ubuntu. I took a crack at updating the config file but didn’t find a lot of documentation to help…. And remember I’ve frequently had “simple” Docker installations become a matter of “download files for hours, have the installation fail, repeat…” so engaging with that monster at all seems like a risky time sink.
My hope is that, long run, we all collectively get better at building systems that help us with this stuff. There should be off-the-shelf recipes that combine all these ingredients for us.
There's already a very very strong self hosted community, mostly built around Kubernetes. They have a huge archive of Helm charts and other assemblages of easy to use off the shelf pre-assembled setups for stuff like this! There's also works like Yunohost, which offers a more bespoke set of automations and abstractions to make installing and running stuff easy.
Sure, as a consumer, I get it: everyone just wants a dumb embedded sqlite and something easy to run. But it feels reductionist to demand that every author conform to the lowest common denominator.
Tyranny of the lowliest user can not go in forever. And I for one am delighted to see how much better we have gotten at being able to helm-ify or whatever other packaging you please these concerns so someone can deliver an easy to use experience, composing the many parts. I think, I hope, I pray that is how we escape the lowest user trap.
This is a valid need that any project maintainer should aspire to address.
The ‘lowest common denominator’ is absolutely acceptable in an era of cheap storage and memory available to the average self hoster. Even a Pi4 or 5 will handle clunky containers.
Everyone will have different definitions of easy. The person here clearly assembled very popular very well known within php tools that make everything simple, and took inordinate care to carefully document all the steps if you know anything about modern php.
It's just pandering bullshit from gross people to insist on making it simple. It's never going to be simple enough. Everyone will complain forever, be sad and unhappy that the machine doesn't just work, that there's not a service already running that does it, that they have to lift any fingers.
The bar for for simplicity is ever diminishing, will forever sink, and the outrage that it's not simple enough is infinite. We cannot prey forever upon those who do by those who won't.
We just can't demand this endless hell from everyone with a good idea. They can't all be your simple trite subject of decision for not having made it simple.
> The ‘lowest common denominator’ is absolutely acceptable in an era of cheap storage and memory available to the average self hoster. Even a Pi4 or 5 will handle clunky containers.
The lowest common denominator I was talking about isn't hardware, it's shitty low class negative internet dweebs who won't lift a finger to try to run something trying to make some auters interesting weird awesome software take a dive because it doesn't run whatever their preferred "simple" is. People are the low denominator, sucking up the oxygen in the room with their pissy "not easy enough" negativity. This system scales probably way way better and to way lower targets because it runs MySQL, because it can be tuned better, because it's more perfoant, because it's not "simple" enough for some. You can probably host way more people on an RPi with this. The hardware requirements are simple as heck, it's the how fucking low and how frelling stupid an author has to make it to run it that sets this bozo-bit bar.
This author clearly spent hella time carefully documenting & using best-of-breed tools automating setup. But the shitty riff raff keeps demanding it be simpler. These people will never contribute anyways, is my suspicion, but I agree with them still: as I said, it should be simpler! The bar should be lowered! But it shouldn't be on authors to help lower the bar (endlessly imo); we should intermediate and build better tools (like Yunohost & Helm) to take & package excellent cared for beautiful works like this & help deliver & make them operable to lower denominator people, for whom trying to run a MySQL database is just too much.
This clearly has my goat, and psuedo-applogie-ish on that. Those who crow for simplicity usually (in my view) have a version of reality in their mind that lays blame and waste to others & cherishes some nonsense internal pleasantville where we can just do away with a reality that the people actually doing the work have to live in, and which exists for very real reasons. There's high-level infantalized engineering where everything is imperfect for not perfectly matching expectations of how simple we want it to be.
Getting irate about what the customer wants (‘use software easily’), then blaming them for not wanting to understand the brilliant techniques that a hallowed developer has used is simply arrogant.
Sibling comment:
> This is a valid need that any project maintainer should aspire to address.
I think either of these things can be true, depending on the goals and intended audience of the project. It's totally valid for someone to make software like this primarily for themselves, and leave it up to others to tailor it to their own needs or contribute to make it more accessible.
I get the impression this project was made for the author's particular use case and isn't (yet) seeking a broad audience. The readme for this project doesn't really explain this, though, which makes me realize several of my own projects don't clearly set these expectations either.
This one wasn't really an offender in that vein I suppose. But it is so convoluted as to alienate 99% of people and even >50% hackers I would guess.
Will come back to this in a bit if I remember, seems like a very capable complex system! I would love something that lets me track everything I want to about my plants with minimal overhead.
Perhaps this URL should be in the linked repository? I read through it and was waiting to understand what it _did_. I almost gave up, but now that I've seen this, it is exactly what I've been looking for to help manage my outdoor plant "guilds".
I also figure that I could use this to catalogue local wildlife as well to get a sense of what is where, and when. Put that together with particular plants and that's some really nice longitudinal data!
For cataloguing both plants and wildlife, inaturalist.org may be closer to what you're looking for (depending on what you want to do with that information).
A docker install option would make it more approachable for me as well.
On the other hand, I suppose it's an opportunity to practice MySQL if you expect to need it later for pro sysadmin work.
It's still in development but worth having a look if you're interested in server rendered web apps built with Clojure, htmx, AlpineJS, TailwindCSS, etc.