I guess many know the saying
If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.
In our industry things get advertised to be simple, without feature bloat, … but upon closer look you find out they are far from simple, implement half backed features you can provide by using established infrastructure projects (seriously who really runs his web-apps without an nginx in front of it?), … .
I ran into this lately when I searched for a replacement for nexus to publish our artifacts hosted at https://maven.bestsolution.at/.
We just need something dead simple (yet a bit more feature rich than https://seeseekey.net/archive/123761/) but all those alternatives we found looked like a duck, swam like a duck and quacked like a duck, but upon closer look are not a duck.
The feature set we looked for:
- must use the filesystem to store stuff in directories and files (unlike nexus)
- must provide https endpoint
- must deny overwriting released artifacts
- simple directory browser (similar to the nginx directory page)
Features we don’t require:
- User management
- Administration UI
After having struggled a few days with alternatives – even looking into the sources of one alternative to see if I can fix problems caused by implementing features a dead simple maven-repo does not require – I fired up https://code.quarkus.io/ to generate me a project named “quak – The dumbest maven repository manager with the minimal feature-set required (by us)”.
Do I suffer from the NIH-Syndrom? Sure like most of us! But at least I first tried to find a duck but all of them turned out to be everything else but a duck.
Interested in the source, I doubt we can build a businessmodel around ~100 LoC, so I pushed it to https://github.com/BestSolution-at/quak
Finally if you:
- think it should be named quack – well in german it is “quak” beside that it maps nicer to quarkus (the framework we build all our microservices, moduliths, … on)
- found a bug in my code: File a ticket at https://github.com/BestSolution-at/quak/issues.
- miss a feature who is a must-have for a duck: File a ticket at https://github.com/BestSolution-at/quak/issues and provide a PR – no guarantee I’ll pick it up
- think the frontend needs more JS: Fork the project and add it to your fork
- miss a super cool extraordinary amazing feature: Fork the project and add it to your fork
- … – i guess you get the idea 🙂