I am going to start by stating that I've read (almost) all the posts related to the AGPL license. Unfortunately it's not yet clear. Most of the posts refer to libraries while I use it as an application.

My use case: Use pm2 (https://libraries.io/npm/pm2) to manage (proprietary) services on a server without modifying the source code (so start, restart etc.). The users would interact only to the services that are managed by pm2.

Do I need to make public anything ? (if yes, what exactly?)


There were heavy debates on the extent of AGPL on this site that were not really clearly solved, but as you said they concern mostly the use of AGPL software as a library.

When looking at the page you linked, we can read in particular:

PM2 is made available under the terms of the GNU Affero General Public License 3.0 (AGPL 3.0). If you use the PM2 API contact us for a possible LGPL license.

What they mean to say (clumsily) is that they consider that as soon as you are using the PM2 API, you are producing a derivative work (a "modified" version of the software) and thus you are bound by the terms of the AGPL license. In that case, they offer (probably for a fee) to license the software to you under a more lax license (even though, it won't exactly be the LGPL, unless they are a bit dumb, because if it were the LGPL, then you could redistribute their software under LGPL to anyone else).

Now, if you are not using the API but only using the software through scripts / command-line / pipes / sockets, then this is what is generally considered arm-length interaction, and the FSF has repeatedly claimed that this should probably not be considered modification in the case of GPL, thus it should not either in the case of AGPL.


First off, disclaimers: 1. I'm new to the understanding of FLOSS. 2. IANAL/IANYL. 3. I can only give my opinion based on what I read in your question.

I'm going to say that there is nothing for you to do. You are "running" PM2, and you didn't say anything about distributing it. AGPL 3.0, Section 2 appears to cover this:

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

(Emphasis mine.)

In addition, since you are not modifying it, only running it, you don't even have to accept the license at all. C.f. AGPL 3.0, Section 9

You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

(Emphasis mine.)

Nothing in your question suggests you're doing anything which would trigger any other sections of the license. So, I don't even see that you have to tell the users that you're using PM2. The users only interact with the services it controls, so they aren't using PM, and have no contact with it at all.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.