Deploying listmonk on Fly

For anyone interested in deploying the open-source newsletter app listmonk on Fly, I’ve created a repo and instructions on github.

1 Like

Neat. That was a lot of work. This should be submitted to Listmonk docs?

Btw, Listmonk is AGPL; and so to anyone modifying and deploying it: Don’t forget to distribute your source to whoever is using it, even over the network.

Zerodha (a stone throw away from where I am) uses it too (its CTO authored Listmonk) and I’ve always wondered how they comply with the license themselves!

Thanks! I spent way too many hours over the past couple of weeks getting familiar with both Fly and listmonk in order to work this out. :nerd_face: Happy to share the results.

I posted the repo in response to a question in listmonk’s github issues, but I’ll try submitting it for potential inclusion in their docs, too.

Thanks for the heads up about this. I’m totally unfamiliar with that license. I read this article which concludes:

To put it in one simple line — if you use an AGPL licensed binary “as-is”, without any modification, then you don’t have to think much — just work on your stuff man! But, if you make changes to the AGPL code and distribute it — then you’ll have to make your modifications available to your users in source form, to remain legally correct.

Perhaps I’m reading it wrong, or the article is incorrect. But since I don’t modify any of listmonk’s code (neither in my repo, nor in my deployment of listmonk), it seems like I don’t need to do anything?

1 Like

Seems like. IANAL. Generally, there’s a lot of FUD going around about xGPLv3s. And so, given the confusion, I opt to not touch such repositories even with the proverbial 10-foot pole.

The primary risk presented by AGPL is that any product or service that depends on AGPL-licensed code, or includes anything copied or derived from AGPL-licensed code, may be subject to the virality of the AGPL license.

From: AGPL policy at Google.

Also: FOSSA blog post on AGPL.

1 Like

Thanks. I’m not a lawyer either. That said, I think that Google AGPL policy you linked to gets it wrong, because it doesn’t distinguish between modified and unmodified versions of AGPL-licensed programs.

The FOSSA blog post you linked to specifically called out this quote (emphasis mine):

The GNU Affero General Public License […] requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

And when I look at the AGPL document itself, the Preamble seems to lay it all out pretty clearly that AGPL’s purpose is explicitly to address modified versions of apps under that license:

… The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.

The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.

The AGPL document also discusses “Corresponding Source”, which refers to the source code you’re required to share if you the license applies to your usage. And it says that the definition of “Corresponding Source”… (emphasis mine)

… does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.

Anyway that was interesting and again I’m not a lawyer but personally I’m satisfied with sharing this repo :slight_smile:

I really appreciate the heads up and the learning opportunity!

1 Like