Exoframe is a self-hosted tool that allows simple one-command deployments using Docker.
If you are not familiar with it — you can find out more in the article on initial release and the project repository.
I am happy to announce the release of Exoframe 3.0!
Two major highlights for this release are complex deployment recipes and Docker Swarm support.
Docker allows to deploy complex systems using docker-compose files, but they are limited due to Docker constraints — you cannot wait for services to become available, cannot execute post-init scripts, it might be hard to prepare configs, etc.
There are of course workarounds for some of those things — some of them are mentioned in the official Docker docs, others discussed in github issues.
Those recipes provide a quick and easy way to deploy complex projects in one command.
The way recipe work is pretty straightforward:
- Developer writes an exoframe recipe and publishes it on npm
- User installs and configures Exoframe on server and locally
- User executes recipe with
exoframe setup recipe-namewhere recipe-name is the package name from npm
- Exoframe pulls the recipe from npm and presents a set of developer-defined questions to the user (see screenshot below)
- Once the user answers the questions, Exoframe server executes the recipe code and sets up the system in a required way
As an example recipe, you can deploy WordPress backed by MariaDB along with PHPMyAdmin by simply executing
exoframe setup exoframe-recipe-mysql and answering a set of simple questions (screenshot above).
If that doesn’t look convincing — I don’t blame you, that deployment is pretty simple and can be easily done with one docker-compose.yml 🙂
Here’s an example of something a bit more complex — HOBBIT platform. You can find the setup guide for it here — as you can see, it’s not exactly simple and there’s more to it than just running
docker-compose up. And here’s how the setup looks with Exoframe recipe:
Looks exciting? Give it a try! And don’t forget to share all the awesome recipes you build!
Docker Swarm support
A slightly smaller new feature in 3.0 (but something that’s been frequently requested by the community) is Docker Swarm support.
Exoframe can now work in Swarm environments and allows you to deploy your services to Swarm in exactly same way you deployed them to one Docker server. Note that if you are using custom deployment templates — they have to be updated to support Swarm.
The support also extends to the setup recipes mentioned above. Of course, the recipes do need to support Swarm themselves to work correctly.