I was looking into ejabberd and found it is licensed under GPLv2. Let's say that I am using it as follows:

You will come to my website/app and login, then start a chat using Instant messanger. I will use ejabbered on server side to handle and process your messaging and chating. Do I have to make my application code open source ?

  • I have checked that already. In my case I am using it on my server & user will access servicess through online Commented Apr 7, 2015 at 8:40
  • 2
    @Manish: Using it on your own server and giving users remote access to the application does not count as distribution for GPLv2. If your application just needs some kind of IM server to be present and you chose to use ejabberd, then your application is not even a derived work from ejabberd. Commented Apr 7, 2015 at 9:36
  • When you have more questions about using open source software in a commercial application, you might want to commit to the proposal Open Source Stackexchange.
    – Philipp
    Commented Apr 7, 2015 at 11:11
  • Yah I will just use ejabber on my server side as IM server. I will not modify or copy ejabberd source. So i guess in that case it will be free for commercial purpose ? Commented Apr 7, 2015 at 11:13
  • You probably have positive interest in publishing your application even if you are not legally obliged to do that. Commented Apr 7, 2015 at 11:16

1 Answer 1


No, you don't need to open source your application.

You only need to open source a work derived from a GPL work when you distribute the work. But when your program runs your own server, you are not distributing it to your users. That means you do not need to license it to them. You can even modify the sourcecode. As long as the software doesn't leave your server, the sourcecode doesn't have to leave it either.

There is the AGPL which closes this loophole by requiring to sublicense the work to everyone who interacts with the software via a computer network, but the normal GPLv2 does not include this clause.

One thing web developers need to be aware of when they use GPL software is that the situation is different when you use GPL-licensed JavaScript, HTML or CSS code. When GPL-derived code is sent to and executed by the client, that code must also be licensed under GPL. But this is only a problem when you use GPL-licensed javascript. It is not a problem when your own JavaScript code is interacting with a GPL-licensed backend.

  • I didn't understand your last point about javaScript Commented Apr 7, 2015 at 11:19
  • @Manish What exactly didn't you understand about it?
    – Philipp
    Commented Apr 7, 2015 at 11:23
  • JavaScript is sent to and executed by the client, so when the original is licensed under the GPL, any derivate also need to be. What it mean ? does it mean that i will have to GPL client side codes HTML,JS,CSS? Commented Apr 7, 2015 at 11:28
  • 1
    Yes, when you take HTML, CSS or JavaScript which is licensed under the GNU GPL, modify it, and put it on your website, you need to license it also under the GPL because they are sent to and executed on the visitors machine. But note that this does not apply when it is your own code which just interacts with a GPL-licensed backend, because that backend does not run on the users machine.
    – Philipp
    Commented Apr 7, 2015 at 11:31
  • 1
    @Manish No GPL-licensed code executed on the client, no reason to license anything under GPL.
    – Philipp
    Commented Apr 7, 2015 at 11:45

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