Our deployment tool opensourced!

During the first FixFusion in May 2014 we have released one of our Internal systems - a TEONITE Deployment tool for deployment, provisioning and database migration to the OpenSource world. Many great products come from solving your own problem. The same happened with this project. We welcome the fact that the first pull requests appeared soon after FixFusion!

We pushed Fabric to the next level!

We have tried various deployment tools and since Python is our main choice when it comes to programing language we mostly used Fabric. But as always, we wanted more out of that and decided to build our own solution that meets expectations of our developers and fits the way we work.

So we we pushed Fabric to the next level by using it handle operations on the remote server but we added functionalities that automate the whole deployment process for us:

  • full control of every step - process preparation, files selection (copy, remove, keep), unpacking
  • setting procedures to be triggered before, during and after deployment
  • predefined deployment model for all projects and a dedicated configuration per project
  • check if necessary virtualenv exists and required packages are installed
  • restart processes using Supervisor
  • mail notification after deployment

Our first Open Source release

As we use TEONITE Development in almost all of our projects and were super-excited to contribute it to the Open Source community as many areas of our business is based on the open code. Deployment is our first step in this direction and we hope that next FixFusion events will allow developers worldwide to benefit from using other projects we have developed so far.

Typical deployment flow

Folder structure

remote_dir |-deploy_dir | |-20130411_212959 | |-20130411_213213 | |-20130412_181014 | |-current -> 20130412_181014 | |-previous -> 20130411_213213 |-migration_dir |-upload_dir |-dump_file'

Deployment process

  1. Test remote server & check if connection to remote server is possible.
  2. Execute pre-deploy commands
  3. Get sources & if local git repository is found, it will be pulled, else will be cloned.
  4. Archive sources
  5. Upload sources to remote server
  6. Extract source to target subfolder
  7. Switch current/previous links
  8. Copy config files
  9. Run post-deploy commands
  10. Documentation

Full documentation can be found here:

hire us

Let’s talk about Mobile Apps

We’d love to design, develop and release them for you.

Highest DevOps Standards

Our team wield the right skills to make things work.

Angular magic in the making

Most flexible development technology for stunnig results.

Web Apps cooked the right way

The ultimate combination of code, design and user experience.

Django REST Framework

TEONITE develops, supports and donates open source projects.