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.

Deployment recipes

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. …


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 2.0!
This release includes a number of additions requested by the community as well as migration of Exoframe server to Fastify and tests to Jest.

Project templates

The major highlight of 2.0 release is the support for 3rd party templates. With this, Exoframe is no longer limited to deploying Node.js, static HTML, Docker and docker-compose projects. It is…


Exoframe started with one goal — to provide a simple self-hosted solution that allows one-command deployments using Docker.
I’ve been working on Exoframe since its beta announcement about 6 months ago. All that time Exoframe has been used for my personal project as well as for the number of projects we develop in our research group.

Today, I am excited to announce the 1.0 release of the Exoframe, a major step for the project. Exoframe is now considered “production ready”.

What’s new in 1.0

Over the time Exoframe gained a significant number of features that will help you manage and deploy your projects on…


Hi, I’m Tim and I’m doing free open source courses on building things with javascript. So far I’ve done a course on building client-server products and desktop applications.
Now is time to pick a topic for the next course — and I need your help!
As usual, the course will be published on GitHub and YouTube, with livestreams happening on Twitch.

If you prefer video format, you can watch the video below. Otherwise — read on!

I’ve prepared 5 topics for you to pick from.
Those are:

1. Data science/analytics project

This is what I do during my day-to-day…


Setting up continuous deployment for your project can be quite tricky. Puppet, Ansible, Chef — all those tools are great, but sometimes you just want something small and simple to use to deploy your pet projects to your virtual or dedicated server.
I want to show you how to setup continuous deployment for your Node.js project with rolling updates, HTTPS and all that fancy stuff in ~10 minutes using Exoframe.

For demo purposes we’re going to be deploying simple Node.js project based on Express.js, …


Back in September 2016 I’ve presented the first public version of Exoframe. At a time I’ve positioned it as a tool to simplify management of Docker. The idea was pretty simple — take away the pain of writing, maintaining and deploying docker images to your server. That was done through templates and project detection — Exoframe alpha would read your project directory, try to figure out which template to use, add Dockerfile from that template and then deploy it to your server while asking you a bunch of questions. In a long run — it didn’t quite work out for…


Hi, my name’s Tim and you might remember me from my original post I made about 8 months ago — I promised to teach people to build products using javascript for free. No strings attached.
The idea was to make a course that showcases and talks about technologies that are used day-to-day in development (intermediate/advanced level), not talk about development basics.
Few days ago I’ve uploaded the final video of the course. All materials are published absolutely free, without any ads and under permissive licenses (MIT for code, Creative Commons for videos).

The course ended up containing 11 core videos


Docker is an amazing tool. It can help you setup self-hosted PaaS, scale things, do Android CI and even develop for IoT.
But even though Docker is a great tool, it has its own problems.

First of all — it’s not that easy to use. Mainly because there are so many different flags you can use during pretty much every step. Even after using it daily for the past few years, I still have to open the manual to remember how to correctly forward ports or how to set resource constraints.

Then there’s a challenge of setting up an authentication…


Update: The course is now finished. See new post for more details!

Here’s the thing — there’s a whole lot of different online courses, articles, tutorials and other materials on how to program in javascript (or any other language). And some of those are amazingly good, e.g. You Don’t Know JS. But none of them actually tell you how to build something real, how to build a product. That’s why I decided to make a simple online course that will try to teach you how to build a complete product — starting from the basic idea and going towards the…


I would imagine that it’s a dream of every developer — to be able to write pure logic and to be able push it live with a touch of a button. No worries about frameworks, deployment procedures, provisioning, etc — just your business logic. Kind of like magic.

Of course, I had dreamed about something like this as well. Even though I do enjoy tinkering with docker, checking out new shiny libraries and frameworks (hey, I’m primarily writing javascript after all!) — sometimes I just want to quickly build a solution for a very specific problem. Most likely the problem…

Tim Ermilov

Hi, I’m Tim! I talk about webdev, javascript and big data.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store