Closed rubo77 closed 3 years ago
Good point, that largely depends on your environment.
Three options:
I think 1) is easy (just launch the executable), but you'd need to distribute the client. If you already have 2), you're nearly done, you just need to copy the Linux executable to a suitable server machine and launch it. If you want to do 3), I already have a branch that does it, but needs more work.
I will look at the read me again and see what I can improve.
@rubo77 With commit 971a574fac1b8eaf558596cf3df2f3a36f6faad6 I refreshed the README a bit and also fixed the docker files, they were a bit dusted since we had added the flatbuffers third party lib. That should give you a bit more information.
Cool, so I just copy paste those 5 commands and that is it? https://github.com/christofmuc/JammerNetz/blob/master/README.md#native-linux-builds
But that is just the server and Linux clients, am I right?
To get a Windows client, you need to build in Windows?
@christofmuc : Can't you just provide a working Windows exe?
Yes, you're right, with those command you get a matching Linux Server and Client. You can then deploy the client to other machines and enter the IP address of the server, and it should work.
To compile a Windows client, you need to build in Windows. And for the Windows client to be able to talk to the Linux server, you need to use the same shared secret key, because currently that is compiled into the binary. I know that is suboptimal, but I have not had time yet to devise a more secure and easuer key exchange.
This is also why a Windows client I build would allow you to connect to my server only, and actually I don't want that ;-)
To copy the secret from the Linux machine to the Windows client just copy the file "common/resources/RandomNumbers.bin" from the Linux machine to the Windows machine (same place), then both client and server use the same encryption key and will be able to talk to each other.
Sorry for the inconvenience, but we're really doing a cross platform client server connection with some low level libraries, no http/SSL or similar allowed, so there are some hoops to jump through. Once we would have a better key exchange/secret sharing, we could also provide prebuild binaries for Server and Client for Linux, Mac, and Windows.
To add to that, the latest master version I made last week no longer requries the shared secret to be compiled into the executables, but the server program takes a single command line paramter with the name of a file containing the 72 byte key, and the UI client has a button to browse for the shared secret file.
Closing this, as the new JammerNetz 2.0.0 has the option to load the shared secret from the command line on the server, and from the UI for the client. With this change, I can supply precompiled binaries for Windows.
Compiling on Linux is straightforward with the provided instructions.
I already have a server running docker images, but by the Readme, it seems a bit unclear what you have to do to run a server on your linux mashine.
please add a script, that you can use to install this in 5 minutes ;)