This page explains which services we provide, and how much we charge for them. At a quick glance:
Finally, if you are working for a large organization and are wondering about procurement and compliance, then you may also find some answers in the note at the very bottom of this page.
Omaha is the Google technology behind Chrome's automatic update mechanism. If you want to use it for one of your own applications, we can assist you.
Using Omaha requires the following:
In a typical project, you implement 4. while we provide 1., 2. and possibly 3. This distribution of responsibilities works well because we know Omaha and you know your application. But we generally offer help with any of the above points. For example, some of our customers only wish to obtain the update server 1. from us.
Omaha uses a special protocol for distributing updates. You can find an old Python 2 server implementation of this protocol in our GitHub repository omaha-server. However, this version of the server is not compatible with recent Omaha releases and no longer receives security updates.
Active development of our Omaha server implementation takes place in a private repository to which only our customers have access. Unlike the open source version above, this implementation is based on Python 3. It receives regular security fixes and other updates as Omaha evolves. One of our customers, Brave, use a fork that is 99% similar to our implementation to serve tens of millions of users.
You can obtain the server from us in one of three ways. In the first, we host the server for you. In the remaining two, we give you the server's source code and help you deploy it onto your infrastructure. These latter options are usually preferred by organizations that want to protect their risk from us as a vendor. While this sounds attractive, it comes at higher operational costs. One of our customers used to self-host but decided it was not their core competence. They are now very happy that it is us who deal with the technicalities of serving their ~100,000 users.
The options and costs for the update server are:
Our server offerings come with a basic SLA and can accommodate stricter requirements if necessary. This is sometimes important for customers who deploy to sensitive environments, such as corporate banking infrastructure. However, as it turns out, the update server is a smaller attack surface than one would initially believe. The reason is that Omaha can be configured to only execute update binaries signed with a fixed list of code signing certificates. In this way, even if an attacker were to gain access to the server, they would still need your code signing certificate to distribute malicious versions.
As in our other offerings, we can customize the server implementation if you need specific features. To obtain our server or discuss your requirements in more detail, please get in touch.
Out of the box, Omaha is only able to update Google's products. Using it for your own application requires modifying Google's C++ client implementation in many places to remove Google's branding, to use your update server instead of Google's, and to make sure that your client doesn't accidentally update Chrome instead of your application. Because Omaha is a complex technology, it is not uncommon that engineers who do this for the first time take weeks to produce a prototype. And then, the prototype may work on the engineer's machine, but has not been tested on the potentially wide range of user systems.
Because we do it on a regular basis, we are able to create tested Omaha forks very quickly. If you wish us to perform this work for you, then the one-time fee for this is EUR 5,000. We can also customize Omaha for you. To discuss this or obtain your fork of Omaha from us, please send us a message.
Omaha runs as a separate application on your computer. As such, it needs to be installed like other software. Most projects therefore typically have an installer that doesn't just set up your application, but also the Omaha update client.
Installers come in many different forms. Chrome itself for example uses a 1 MB online installer:
Such an installer can be produced with Omaha itself. We can create it for you (with instructions how you can do it yourself in the future) for a one-time fee of EUR 500 in addition to the fee for forking Omaha in section 1.2.
Another kind of installer that we sometimes provide for our customers are MSI packages. This requires several extensions to Omaha itself. For a one-time fee of EUR 3,000 we can provide you with the necessary code and instructions for integrating Omaha into any WiX project.
There are many other kinds of installers. For example, in one client project we implemented a graphical wizard installer with custom statistics logic and license key verification. Due to the large number of possibilities, we are not able to give a fixed price for creating an installer in general. If you want to create the installer yourself, we can provide you with relatively simple instructions along with your Omaha fork 1.2. Otherwise, please get in touch to request a quote.
Omaha works solely on the basis of self-contained executables. These are .exe or .msi files which you upload to the update server. Omaha invokes these executables to install or update to a specific version. To use Omaha, you need to create a standalone .exe or .msi for each new version of your software. Our packages above include instructions what your executables must do to integrate with Omaha. If you would like additional help, please let us know.
A question that often comes up in this context is whether the update server has an API that can be integrated into a CI/CD system for automatic uploading of new versions. The answer is yes; The server has a REST interface that can be used to programmatically create and change versions.
Chromium is the open source basis of Google's Chrome browser. On Windows, Chromium uses Omaha for automatic updates. Because of this close connection between the two technologies, we also offer development services for Chromium-based browsers, particularly when it comes to automatic updates.
On Windows, we can provide you with the necessary source code for integrating Omaha into Chromium. This is highly non-trivial work. Teams who have to develop this integration for the first time usually take 1 – 4 man-months. We can typically send you the necessary source code within a few days. Our fee for this service (on top of which you will need an update server 1.1. and an Omaha fork 1.2.) is EUR 5,000. Our implementation supports both automatic background updates, as well as on-demand updates on the chrome://settings/help page:
On Mac, Chromium uses Google's Keystone framework for automatic updates. Unlike Omaha, this technology is not open source. Chromium projects therefore usually use the popular Sparkle update framework instead. Similarly to the Windows implementation 2.1. above, we can integrate Sparkle into your browser for a one-time fee of EUR 5,000. You do not need Omaha or our update server for macOS. However, you can still use our update server if you like, because it also supports the Sparkle update protocol.
If you are working for a large company, then it is likely that you have processes in place for vendor selection, procurement, SLAs, provisioning of infrastructure, security, compliance or auditing. We are usually able to accommodate such requirements, but they may incur additional costs. When you get in touch with us, we will be happy to discuss how we can not just be a strong technical partner for you, but also a good organizational fit.