If it helps, the abstract point of GPL is full ownership of your own computer. If someone else can say "hey, you can't peek inside of this code on your computer!" then that stands as a barrier to your full ownership. That's what the GPL's vision of free software is fundamentally about: I have this computer with programs that I have bought, I should be able to modify those programs so that my computer does exactly what I want it to do. Of course, most computers these days have some corner which is not free in this sense. But that's what GPL is trying to provide: "this corner of the executable code is something which you legitimately, fully own -- it's not on loan from some mega-corporation, this chunk of code, you can do whatever you want, up to and including debugging it, printing it onto underwear, giving it to a friend, incrementing all the bytes by 1, or playing it as a symphony." You fully own that part of your computer. (There is a tiny legal corner which you can't own, which is the ability to strip the copyright and software from their lawful owners, but that is pretty much endemic to the system and kind of a non-starter.)
So, software licenses will either get in the way of this full ownership (as proprietary ones often do) or facilitate full ownership (as open-source ones often do). If they facilitate, they might try to also facilitate other peoples' full ownership of copies (as copyleft ones like GPL do) or just your full ownership (as non-copyleft ones like BSD, MIT, LGPL do). Non-copyleft licenses basically say, "here is this stuff, we hold the copyright, it is a condition of this license that you promise not to sue us for anything, and we promise not to sue you for anything either." Very simple. Copyleft ones are more complicated.
This is why GPL does not say "anyone who modifies the source code must release their modifications for free to the public" -- which before GitHub was an awful barrier to controlling your own computer, since most people didn't have a reliable place to publish software, and it is still a barrier. (It's just not quite so awful these days but it would still suck, if every modification required a publication. That would be a barrier to controlling your own computer.)
Instead the GPL says "if you hand this program with your modifications to someone else, you have to give them (and only them!) access to the source code under this license, so that they can fully own their computers just the same as you could." That's less onerous: it's not public publishing but just, "hey, man, do you want me to include the source files? I might have introduced a bug with my modifications..." that you're responsible for. The source code is only free-as-in-beer because the financial cost of releasing the source to this other person is expected to be covered by the amount they paid you for you to hand them the program in the first place.
Therefore: If this program runs on your server, nobody else's, and other people only interact with the program by sending packets to your server? No source code release is needed. That's your computer, nobody else's. Since your code doesn't execute on anyone else's machine, they cannot demand to see the source for the running program. On the flip side: you give these people a computer program (a virtual machine) which contains your modifications to the GPL'ed program, so that they can run it? BZZT, GPL violation -- unless you keep ownership of the computers too and insist on a dominant-subordinate relationship, "we own and administrate the computers, we're giving you permission to use them, we expressly forbid you from copying the software on this computer to your own machine." Because if they are running your modifications as executed instructions on their own computers, then the GPL says that whenever you "conveyed" this software to them, you must also "convey" the source code so that they may have full ownership of their copy of the software on their computer.