Drone

I have been implementing Drone CI/CD open source platform for many years, and many people would ask me, “Is Drone really free to use? How should I calculate the cost of using it for open source or importing it into my company’s internal team? Well, this article will take you to understand Drone used in open source or the internal team of the company need to pay attention to places, the official actually wrote a full page FAQ very detailed, the following is I organized a few points to you know.

FAQ

The following is a few points that you may want to know that should be noted, the details can be directly in the official FAQ view.

How many versions of Drone are there?

Drone is a set of completely open source code, the detailed code can be found on GitHub, and on this open source project, there are two versions, one is the Open Source Edition, which is commonly known as the open source project, the project’s License is Apache License, and the other version is Enterprise Edition, but this Enterprise Edition is also [fully open source], and the Enterprise Edition Licnese is Polyform Small Business License, so please read the License information before you choose the version, both versions The code of both versions is basically in the same repository.

How to choose open source or enterprise version?

It’s easy to differentiate here, as long as the company or organization’s turnover is less than $1 million US dollars ($30 million in Taiwan dollars), you can use it for free. It doesn’t matter what your status is, as long as your turnover exceeds this figure, you have to start paying for it. Then how to try the enterprise version? It is very simple just follow the official instruction can be, but there is a limit here, free use can only have 5000 builds, this limit to a limit, the whole system will not give a trial.

Free to use open source or enterprise version

As mentioned in the previous point, the official installation steps are by default for the trial enterprise version, so there is a limit of 5000 builds. The first is to use one of the two sets of Gitea or Gogs as your Git service, and you won’t have this limit. This is a benefit that Drone gives to open source, and it helps promote open source projects that are also developed in Go. The second way is to use the Go language go build method, and for open source and enterprise versions, please use the following method to build the new binary (the bottom is to lift the open source version restriction).

1
go build -tags "oss nolimit" github.com/drone/drone/cmd/drone-server

To unrestrict the business version:

1
go build -tags "nolimit" github.com/drone/drone/cmd/drone-server

If the company’s turnover is already over $1 million, please do not use the above method to bypass the restriction, it is more practical to pay the money. Many people ask why Gitea or Gogs don’t have this restriction, please refer to the code below, code will talk 4b7f52ad8a96e8e447f813d4b3de19ca30ff4b0d/service/license/load.go#L37-L56):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Trial returns a default license with trial terms based
// on the source code management system.
func Trial(provider string) *core.License {
  switch provider {
  case "gitea", "gogs":
    return &core.License{
      Kind:   core.LicenseTrial,
      Repos:  0,
      Users:  0,
      Builds: 0,
      Nodes:  0,
    }
  default:
    return &core.License{
      Kind:   core.LicenseTrial,
      Repos:  0,
      Users:  0,
      Builds: 5000,
      Nodes:  0,
    }
  }
}

Open Source vs Enterprise Edition Differences

Below is the official list of features of the Enterprise version

  • Supports distributed runners
  • Supports kubernetes runners
  • Supports organization secrets, vault secrets, etc
  • Supports cron scheduling
  • Supports scalable storage (postgres, mysql, s3)
  • Supports autoscaling
  • Supports extensions

Compared to the open source version, there are more restrictions underneath

  • Limited to a single machine
  • Limited to an embedded sqlite database

It does not support Postgres or MySQL database, and can only be set up on a single machine. All other important features are the same, if you do not mind these two points, in fact, the open source version is already very enough to use.