Elegant open source project tracking, Trello like but self-hosted
github.com
github.com
Note: The project is in maintenance mode, it hasn't shut down or been abandoned.
docker run -p 80:80 -t kanboard/kanboard:v1.2.8
https://docs.kanboard.org/v1/admin/docker/#running-the-conta... (that page has info about persistent storage, configuration and so on)Honestly one of the fastest and least "bloated" pieces of software in recent memory, way more responsive than something like OpenProject (which I use as a self-hosted Jira replacement for my personal needs), as long as the feature set is enough for you. I did rather enjoy the cost reports of OpenProject, as well as having all of my usual epics and whatnot, but kanban works better for smaller projects than scrum.
The main appeal of PHP for me has always been it's ability to work as a “serverless” execution environment, long before this marketing concept even existed, so hosting your own PHP on a cloud machine with Docker sounds really backward to me.
I can give them resource limits the same way (CPU/memory limits, except easier than cgroups), as well as set restart policies and have a clear look at what's executing where, with something like Docker Swarm it becomes like systemd across multiple nodes and scaling up/down becomes easy, especially with load balancing for network calls. Software like Portainer also has pretty nice discoverability.
Speaking of networking, I don't have to worry about tunnels or firewall configuration myself, can just expose a web server that acts as a reverse proxy and give everything else custom private networks that span across nodes (with something like Docker Swarm again, though Consul and Kubernetes have the same functionality, details aside).
I can have custom port mappings (regardless of what the software uses, I might not even care about digging in some configuration file to change it), which is especially useful when running multiple separate instances on the same machine (like different versions of PostgreSQL, or separate instances for different projects), or hostnames in case I don't want to expose ports.
I can easily have custom persistent/transient storage paths or even in memory storage (tmpfs), when I have persistent storage then suddenly backups become easy to do and I can be very clear about all other directories being wiped and being in a known state upon startup/restart. It's also immensely useful for me to escape the sometimes weird ways how software on *nix uses the file system, I can just mount my persistent files in /app/my-app/database/var/lib/postgresql/data or /app/my-app/web-server/etc/apache2/sites-enabled and know that I don't care about anything outside of /app.
I can also treat Docker as lightweight VMs, except a bit more stateless, in that I can have container images that I base on a version of Debian/Ubuntu/Alpine or whatever, ship them, and then don't have to worry about a host OS update breaking something, because only Docker or another runtime like Podman is the actual dependency and most of the other software on the node doesn't come in contact with what I'm running. With rootless containers, that also improves the separation and security there a little bit.
With all of that in place, suddenly I can even move apps and all of their data across nodes as necessary, load balance software across multiple nodes, be able to easily tell people how to run what I have locally and store and later use these images very easily. Are there pieces of software or alternatives (e.g. jails) that do a lot of the same? Sure, but Docker essentially won in ease of use.
That's the biggest problem I see with Docker: nobody has an incentive to make well structured software with a lean dependency chain and a straightforward installation process… These used to be good proxy of the overall software quality of the project, but now Rube Goldberg projects that just happen to work by luck are routinely distributed and the user has no idea of how big of a mess it is internally.
If I tried to run all of these directly on the hardware with whatever minimal non-Docker setup each uses, I'd have a dozen update processes, a dozen different ways to start the server, and a dozen log files following a dozen different conventions for storage. I'd also have to be sure that each app I add either uses a different database and language runtime than the ones I've installed already or is compatible with the versions of those that I already installed.
Instead, with Docker/Podman, I can use the same tool (compose files stored in a git repo) to manage all of the apps and their dependencies with zero risk of weird dependency issues across app boundaries.
Same reason you'd use Docker for anything, why would it matter if it's Python, PHP or Rust?
Is there something specific about the language that makes Python (or other language) more suitable with Docker for you, compared to PHP?
(Personally I only use Docker when I start to deal with multiple hosts/distributed architecture, which doesn't happen a lot tbh)
Python has notoriously awful dependency management. One of the biggest appeals of Docker is that it lets you build the equivalent of a "fat jar" so that you get at least somewhat reproducible versions of your dependencies at runtime. For a language with decent dependency management the value proposition is much weaker.
Not that I wouldn't just use Docker for this, but those two help a lot when dealing with multiple clients who have different versions requirements.
I would ask the same question if you were using docker for a Rust project btw.
IMHO Docker mostly make sense when you have projects that require globally installed dependencies (like C or Python).
As such it makes little sense to deploy a PHP app on a dedicated server where you're responsible for the PHP server. Or when it is, it's because that you have many of such apps, but then deploying them all side by side with their own Apache/Nginx is going to be very wasteful.
I can easily see which directories or files to back up, and it's fairly explicit which knobs I've tweaked or config files I've changed, regardless of what stack the app relies on.
It's also makes it much easier to roll back a version. Just take zfs snapshots of relevant directories before pulling new image, if it goes south just roll back snapshots and use the old image.
What about keeping the machine up to date to new distro release that inevitably comes with a new version of PHP that isn't compatible with the app ?
Don't get me started on setting properly php-fpm and any other reverse proxy.
All of those issue are gone with docker. You always run the right version of everything as it was intended by the developer (if they are the on that maintain the image)
Docker has its advantages, but the approach also has a lot of disadvantages which are not so obvious to junior developers.
Isolation seems fun, but the interfaces (Unix sockets where anything goes) are extremely brittle. Version management seems simple at first, but will become horrible once old containers offer no upgrade path in the future, or when the free hubs from today will become tomorrow's subscription model.
I'm not advocating for PHP, but it sure made deployment of several websites on one machine extremely simple. Eventually version management destroyed some of the fun, which will probably happen with Docker containers as well, given enough time.
Java's application servers were initially also hailed with similar enthusiasm as Docker containers, and look at the complicated mess that has become.
To some, all that is old is new again.
I was more looking for use-case as opposed to a barf of all dockers....
"I want to do TASK so here are all the dependencises for you to do TASK and how they will link"
---
And yeah; how do you tink a 3-year old in 2050 is going to be able to setup his dev env? Do you want him to learn binary.
Dunno about 2050, but it wasn’t particularly difficult in the 1980s.
This application is in maintenance mode. What does it mean?
Citing Wikipedia:
In the world of software development, maintenance mode refers to a point in a computer program's life when it has reached all of its goals and is generally considered to be "complete" and bug-free. The term can also refer to the point in a software product's evolution when it is no longer competitive with other products or current with regard to the technology environment it operates within.
- The author of this application is not actively developing any new major features (only small fixes)
- New releases are published regularly depending on the contributions made by the community
- Pull requests for new features and bug fixes are accepted as long as the guidelines are followedThere are more self-hosted options in this link[2].
[1] https://github.com/mattermost/focalboard
[2] https://awesome-selfhosted.net/tags/task-management--to-do-l...
Curious what your experience has been like using it?
But, there are some frustrating aspects.
LDAP is only available in the "enterprise" edition which is kind of crazy and there is no price-break for < 10 users. So for personal / non-commercial usage if you want LDAP you're placed into an enterprise bucket. I reached out to Mattermost and pointed this out and even said "Hey, what about offering a 10-user license for some reasonable fee?" No response.
[0]: https://plane.so/
curl -o docker-compose.yaml https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/variables.env
vim .env # adjust for your environment
docker compose up -d
I really don't understand how the above is too complex that it required the creation of a bash script.Some other notable docker-based projects that I've seen require an .sh are Sentry [1] and Postal [2].
[1] https://develop.sentry.dev/self-hosted/ [2] https://docs.postalserver.io/getting-started/prerequisites
Planka changed from MIT license to AGPL-3.0 license https://github.com/plankanban/planka
There is Planka fork 4gaBoards with MIT license at https://github.com/RARgames/4gaBoards , newest change one hour ago.
There seems to be just a blank canvas, basically [2].
This is what I use, and find it to be pretty good. It’s not as good as a dedicated solution but it’s one less app I have to tend to, and the Gitea backups are already mega mission critical so the PM stuff (and issues and wikis) get this vigilance baked in for free.
Anyone knows of something like this but for the terminal?
I’m building a job searching app for the terminal and a main upcoming feature is to have application tracking within the app. It would be great to use a kanban system for it
Thank you!
I'm curious what other people think of their approach, and whether that should be a model for open source kanban boards to follow. It's not Trello, which is way to flexible turning work items into a mess, but it's not Jira either. For me it seems to nicely fit the sweet spot of structure and ease of use.
It's like people are posting their preferred project manager without even checking out what planka brings to the table. So many kanboard comments.
From the kanban suggestions, I tried kanboard in the past, but really disliked the mobile experience. In this regard, Deck is much better, and it has at least two ways to access the boards; one is the Nextcloud Deck companion app, and the other is the jtx board, which stores its tickets in a way that they can be synced with CalDav. So by using Nextcloud Deck, one is not even locked in into one application / provider.
I can't see any API documentation, is it somehow Trello-like?
git commit -am "update"
is very tedious.
Can you elaborate on any synergy or connection you are referring to?
Are there any similar OSS tools? I just need task tracking that works offline, on mobile, let's me filter/sort, and creating public shareable links for customers would be a nice bonus. It's probably something I could whip up in an hour with Django but open to options.
Similar/inspired-by software is fine but if a commercial project were to rip off everything down to the style and design of an existing app it would not be okay at all, what makes it okay if it's open source?