| Tool / Project | Type / Architecture | UI / Dashboard | CLI / API | Multi‑node / Clustering | Auto TLS / SSL / ACME | Zero‑downtime / Rolling Deploy | Preview / PR Environments | Team / Permissions | Volume / Backup Support | Open Source / License | Heroku‑style Compatibility | Pros / Strengths | Cons / Caveats / Weaknesses |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dokku | Single‑server (extensions for multi) | Minimal (no central UI, though plugins exist) | CLI, plugin APIs | Via community / plugin / custom setups | Yes (Let’s Encrypt plugin) | Via Docker techniques / plugin | Limited, requires extra setup | Basic (single admin; community plugins) | Plugin / manual (e.g. volume backups) | MIT (fully open source) | Good: git push, buildpack style, plugins add DB, etc. | Very stable, mature, lots of community extensions | Scaling / multi‑node is manual; UI is weak; managing many apps / teams is harder |
| Dokploy | Multi‑node / cluster (Docker Swarm) | Yes (built‑in UI) | CLI + AP |
| Name | Version | Size (uncompressed) | Size (minified) | Size (gzipped) | URL | |
|---|---|---|---|---|---|---|
| Bootstrap | v3.3.7 | 143 KB | 117 KB | 20 KB | http://getbootstrap.com/css/ | |
| Bootstrap | v4.0.0 | 187 KB | 147 KB | 20 KB | https://v4-alpha.getbootstrap.com/ | |
| Materialize | v3.0 | 114 KB | 90 KB | 18 KB | http://materializecss.com/ | |
| Material Design Lite | v1.3.0 | 350 KB | 137 KB | 21 KB | https://getmdl.io/ | |
| mini.css | v2.1 | 47 KB | 36 KB | 7 KB | https://chalarangelo.github.io/mini.css/ | |
| Semantic UI | v2.2.6 | 730 KB | 550 KB | 95 KB | https://semantic-ui.com/ | |
| Foundation | v3.0 | 90 KB | 64 KB | 12 KB | http://foundation.zurb.com/ | |
| Pure CSS | v0.6.2 | 80 KB | 17 KB | 3.8 KB | https://purecss.io/ | |
| Picnic CSS | v6.3.2 | 55 KB | 38 KB | 7 KB | https://picnicss.com |
For ETS's SKLL project, we found out the hard way that Travis-CI's support for numpy and scipy is pretty abysmal. There are pre-installed versions of numpy for some versions of Python, but those are seriously out of date, and scipy is not there are at all. The two most popular approaches for working around this are to (1) build everything from scratch, or (2) use apt-get to install more recent (but still out of date) versions of numpy and scipy. Both of these approaches lead to longer build times, and with the second approach, you still don't have the most recent versions of anything. To circumvent these issues, we've switched to using Miniconda (Anaconda's lightweight cousin) to install everything.
A template for installing a simple Python package that relies on numpy and scipy using Miniconda is provided below. Since it's a common s