There're many tools that make app deployment simpler, but we made it crazy simple.

Impero is a service which which simplifies deployments and management of multi service-platforms. It combines automatic configuration changes and service reloads on entrypoint and top level services with composing docker configuration files and container scaling managed from web interface and project configuration file.

Start with Impero

  1. Create account and your first server. Connect new or existing server by executing:
    $ bash <(curl -s https://impero.foobar.si/install-key.sh)

  2. Create new application and select project source GIT repository.

  3. Configure your /.pckg/pckg.yaml file and commit it.

Minimum configuration

We want to deploy apache webserver with php (foo/web image) and mysql database server (foo/db). Example below would be sufficient enough for basic wordpress instalations.

repository: git@bitbucket.org:foo/bar.git
branch: master

system:

  web:
    image: foo/web

  database:
    image: foo/db

resources:

  database:
    system: database
    mysql:
      type: search
      name: foo_db
      foo_user:
        foo_db: basic

services:

  web:
    system: web
    apache:
      root: www
        

Basic commands

By adding additional commands you control what happens on each step: init (initialize project), prepare (import project defaults and populate database) and deploy (change database schema or execute migrations).

init:
   - command:install-dependencies

prepare:
   - php console migrator:install --repository=default --schema
   - php console migrator:install --repository=default --fields
   - php console user:create john@doe.com
   - command:clear-cache

deploy:
   - command:pull-git
   - php console migrator:install --repository=default

commands:

  install-dependencies:
    - yarn install --silent --production
    - composer install --no-dev --optimize-autoloader --ignore-platform-reqs --prefer-dist

  pull-git:
    - git reset --hard
    - git pull --ff
        

Deployment strategy

Additionally, there's a section called bring-up where you can tweak steps taken to deploy project.

bring-up:
  resource:database:
  service:web
  command:checkout:
    when:
      - service:web:filesystem:ready
  service:config:
    when:
      - resource:database:ready
      - command:checkout:end
  service:cron:
    when:
      - service:config:ready
        

Features

About Impero

Centralized management

Impero is Software as a Service which means we take care of infrastructure.

Learn more

Zero overhead

All communication is done through SSH protocol. No services or daemons are installed.

Learn more

Team collaboration

Share server access to users on team and tag access. You can also give them specific privileges.

Learn more




Scaling

Load balancing

Simply distribute TCP or HTTP/S traffic to any node using roundrobin or any other algorithm.

Learn more

Database replication

Replicate MySQL databases and manage your active and passive master and slave configuration.

Learn more

Web, API & CLI access

Access and manage your infrastructure from web interface, API or CLI.

Learn more




Features for DevOPs

Testing

Integrate your test service such as Jenkins, Travis, CircleCI, BitBucket pipelines or other cloud testing provider into your CI / CD strategy.

Learn more

Deployment

Deploy applications with one click. Connect your GIT repository to Impero application and automatically test, build and deploy your project.

Learn more

Scaling

Clone whole web server faster then ever. Use services on bare-metal, vps or docker image.

Learn more

Automatic updates

Don't worry about security updates. We will update supported services by default and let you know about any changes.

Learn more




Storage

Storage management

Manage external storage attached to your server..

Learn more

Backups

Enable automatic database, storage and configuration local and remote backups to make sure your data is safe.

Learn more




Services

Dependency management

Define which services and dependencies your project needs and let Impero take care of instalment and configuration of git, composer, npm or other project dev or production dependency.

Learn more

Service management

Impero offers automated management of popular webservers, load balancers, database and other services.

Learn more

Smart cronjobs

Manage cronjobs with intuitive web interface, review past execution details and configure them in single file.

Learn more

Queue

Build apps on top of powerful message broker RabbitMQ and organize your queue.

Learn more

Supervisor

Manage long running tasks, workers and websockets with supervisor.

Learn more

SSL management

Manage SSL certificates for your websites and applications for free with LetsEncrypt.

Learn more




Network

Network management

Manage networks for different applications on same server and even services in same application.

Learn more

Firewall management

Allow or deny access to some ports or applications and make your services secure.

Learn more




Advanced features

Enterprise prepared

We also offer deploying Impero to dedicated servers managed by us, or managed by you. Contact our sales for more info.

Learn more

Log parser

Read apache, mysql, system and other logs in human readable format.

Learn more

Webhooks

Setup some webhooks and watch how your infrastructure changes.

Learn more




Free Pro Enterprise
Number of servers 2 10
Number of applications 5 100
Services
Resources
Deployments
Cronjobs
Firewall
API
Networks
Backups
CLI
Clone
Scaling
Replication
Load balancing
Support
Price per month Free 9$ per server 19$ per server

Full example

  • Create a server and make sure that ssh connection is successful.
  • Create a site and checkout some code from git. Web (apache) and storage services are enabled at this point.
  • Create database, user and set privileges. Database (mysql) service is added at this point.
  • Add a cronjob for website. Cron service is added at this point.
  • Enable cold and passive backups for code, config, db and storage with backup service.
  • Add another web worker. Loadbalancing (haproxy) is enabled at this point.
  • Replicate mysql as active or passive slave for better performance and quicker restore in case backup is needed.
  • Configure ./pckg/pckg.yaml file and integrate /impero API to automatically manage your infrastructure.