Build and operate your apps the Heroku way, on your own servers
Get Debian, Ubuntu, CentOS/RHEL, and SuSE Linux Enterprise Server packages built on demand, including a powerful CLI to scale, run, inspect, and configure your applications, on your own servers.
Scale your processes up and down:
my-app scale web=1 worker=2
Run arbitrary processes in the context of your application:
my-app run ruby -v my-app run rake db:migrate my-app run console
Inspect your application's logs:
Set configuration variables for your application:
my-app config:set DATABASE_URL=...
Start/Stop/Restart the application, in a distribution-independent way:
my-app start|stop|restart [web|worker]
Advantages of a package-based installation
Install and update in one command
It's a fact: modern web applications are a pain to install. With packages, no more complicated install intructions, and no need for heavy-duty configuration management tools to install an app. Packages get built and hosted in your own package repository, so that you (or your clients/users) can just
apt-get install (or
yum install) the application and be done with it.
Based on Heroku buildpacks
Heroku buildpacks are a standard for web application deployment. That means you're not entering some dark world, but you just use our (slightly) customized version of the Heroku buildpacks you've known and loved for a long time!
Everything is precompiled, which makes for a really fast installation procedure. On any number of servers.
Packages only embed what's absolutely required to make your app work. This includes the language runtime of your app (Ruby, NodeJS) and its dependencies (gems, modules, etc.). For the rest, packages rely on the system libraries of the distribution as much as possible.
Support for multiple delivery channels
Get packages built for some or all of your branches, so that you can keep maintaining multiple delivery channels of your software in parallel (e.g. staging, production, release/7.1).
Secure package repository
All your packages are published to a package repository dedicated to your application, complete with authentication tokens if you want to restrict access. Plus your repository metadata is signed using GPG, and only available through HTTPS.
What if you could know how many times your packages have been downloaded? And from where? And how many servers are still polling for updates? We surface all those informations on a map so that you can see at a glance your installation base.
Easy installation, for all major Linux distributions
- Fetch the public GPG key and the repository details (e.g. for RHEL/CentOS):
$ sudo wget -O /etc/yum.repos.d/openproject.repo \ https://dl.packager.io/srv/opf/openproject/stable/11/installer/el/8.repo
$ sudo yum install openproject
- OpenProject (ruby, nodejs) - Web based project management built using Ruby on Rails.
- Zammad (ruby) - Web based open source helpdesk/customer support system.
- Ekylibre (ruby) - Connecting farms to the world.
- Gogs (go) - Go Git Service
- Discourse (ruby) - A platform for community discussion.
- GitLab (ruby) - GitLab is version control for your server.
- Joola (nodejs) - Data middleware for building custom analytics applications
- docker-gc (go) - Docker garbage collection of containers and images
A few notes from happy users
Prior to using Packager.io we experimented with many options. The obvious starting point was a combination of Chef or Puppet with Capistrano. Chef/Puppet get it to the point where Capistrano can deploy the application, but that still leaves a lot to be desired. It's also not in any way "simple". As a former professional systems administrator, I'm very sympathetic to the needs of the Ops Team. Anything we as developers can do to lighten their load just means better uptime for us.
Packager.io makes it extremely simple to distribute our software packages to clients on a variety of platforms. It's easy to use, and their support is excellent.
We've used Packager.io to publish Joola as packages for Debian, Ubuntu and CentOS and we wanted to share our reasoning behind offering Joola as a packaged downloadable and our experience with Packager.io. Spoiler alert: it took us less than 10 minutes, worked on the first time and was overall awesome!
I never even dreamed that it can be fun to build debian packages :)