quakejs icon indicating copy to clipboard operation
quakejs copied to clipboard

How to Host Game on Own Site

Open JustH3LL opened this issue 9 years ago • 55 comments

Is there any way that I can host this game on my own site? I want to set this up because quakejs.com is blocked at my school and i want to just set this up exactly like the live demo, but a link to quakejs.com and here for cred.

EDIT- Nvm i got it set up but manifest.json is missing

JustH3LL avatar Oct 05 '16 16:10 JustH3LL

The source code for quakejs.com isn't public currently (there's not much to it), but you should be able to setup your own content / dedicated server with a small play page (view the source code for /play) that uses the custom content server.

inolen avatar Nov 05 '16 16:11 inolen

Is it alright to iframe quakejs.com? We would also like to host the game, preferably without setting up a quake server.

EddieOne avatar Nov 07 '16 16:11 EddieOne

You can copy the source from the /play page ( don't save it via your browser, just view page source and copy ). Make sure that you save the javascript and css locally and rename them in the html source. After that you can get the play page to connect to your server by modifying this line in the inline javascript from the html source.

var args = ['+set', 'fs_cdn', 'content.quakejs.com:80', '+set', 'sv_master1', 'master.quakejs.com:27950', '+connect', 'YOUR_SERVER_HERE:27960'];

LWSS avatar Feb 02 '17 00:02 LWSS

Ok, I figured all that out and had it working for a little while (the 10mb file limit on x10 was getting annoying, going to pay for a bigger file limit some time in the future)

Anyways, if I use the full pak0.pk3 file, would it be possible to play the full quake game in a browser? This is just for experimental purposes, not making it public.

JustH3LL avatar May 02 '17 16:05 JustH3LL

Try it and find out. The menu and stuff seems to work OK

LWSS avatar May 02 '17 18:05 LWSS

Ah thanks for the reminder to do this @JustH3LL ! It is working great but we don't have a quake server. Is it possible to add a couple servers to the args @LWSS ?

EddieOne avatar May 02 '17 21:05 EddieOne

You'll want to add your own.

But you could grab one from the quakejs website if you really don't want to run one

LWSS avatar May 02 '17 22:05 LWSS

Could someone send me a list of all the files required to get the /play page fully working and possibly a list of all the files required for the rest of quakejs.com? I didn't make a list when I got those files originally and I don't have the files anymore thanks to x10hosting

Thanks!

JustH3LL avatar Jul 19 '17 18:07 JustH3LL

Just go here http://www.quakejs.com/play and look at the network tab in chrome/firefox

LWSS avatar Jul 20 '17 03:07 LWSS

@inolen Do you have any other way of grabbing the content for a local content server? I'm getting "execSync incompatible with installed nodejs" when I try and pull.

programmingPug avatar Mar 02 '18 18:03 programmingPug

@inolen . I also got the "execSync incompatible with installed nodejs" when I tried to pull, but did go throuh 2nd time, now get this on 'node bin/repak.js --src <assets_src> --dest ", but I might need your hrlp on a different issue, I've added a .pk3 under baseq3, once I run the server : I get 'not in the manifest', once I add any custom map and can not get it under the Single Player-> Skirmish option. Do I need to repak for it to show?

Below the output console info :

/base/baseq3/pak5.pk3 (7 files) in the manifest /base/baseq3/pak4.pk3 (272 files) in the manifest /base/baseq3/pak3.pk3 (4 files) in the manifest /base/baseq3/pak2.pk3 (148 files) in the manifest /base/baseq3/pak101.pk3 (41 files) in the manifest /base/baseq3/pak100.pk3 (324 files) in the manifest /base/baseq3/pak1.pk3 (26 files) in the manifest /base/baseq3/pak0.pk3 (1387 files) in the manifest /base/baseq3/ep_duckhunt.pk3 (41 files) not in the manifest


2342 files in pk3 files execing default.cfg execing q3config_server.cfg couldn't exec autoexec.cfg fs_game is write protected. Hunk_Clear: reset the hunk ok ^3Couldn't write (null)/ioq3_server.pid. Com_RandomBytes: using weak randomization --- Common Initialization Complete --- Hostname: emscripten IP: 172.29.1.0 Opening IP socket: 0.0.0.0:27960 ignoring setsockopt command sv_maxclients will be changed upon restarting. execing server.cfg ------ Server Initialization ------ Server: q3dm7 Hunk_Clear: reset the hunk ok ----- FS_Startup ----- generated crc32 for /base/baseq3/pak0.pk3 in 0.57 seconds generated crc32 for /base/baseq3/pak1.pk3 in 0.01 seconds generated crc32 for /base/baseq3/pak2.pk3 in 0.09 seconds generated crc32 for /base/baseq3/pak3.pk3 in 0.01 seconds generated crc32 for /base/baseq3/pak4.pk3 in 0.14 seconds generated crc32 for /base/baseq3/pak5.pk3 in 0.00 seconds generated crc32 for /base/baseq3/pak6.pk3 in 0.09 seconds generated crc32 for /base/baseq3/pak7.pk3 in 0.01 seconds generated crc32 for /base/baseq3/pak8.pk3 in 0.01 seconds generated crc32 for /base/baseq3/pak100.pk3 in 0.20 seconds generated crc32 for /base/baseq3/pak101.pk3 in 0.03 seconds Current search path: /base/baseq3 /base/baseq3/pakjos.pk3 (15 files) not in the manifest /base/baseq3/pak8.pk3 (9 files) in the manifest /base/baseq3/pak7.pk3 (4 files) in the manifest /base/baseq3/pak6.pk3 (64 files) in the manifest /base/baseq3/pak5.pk3 (7 files) in the manifest /base/baseq3/pak4.pk3 (272 files) in the manifest /base/baseq3/pak3.pk3 (4 files) in the manifest /base/baseq3/pak2.pk3 (148 files) in the manifest /base/baseq3/pak101.pk3 (41 files) in the manifest /base/baseq3/pak100.pk3 (324 files) in the manifest /base/baseq3/pak1.pk3 (26 files) in the manifest /base/baseq3/pak0.pk3 (1387 files) in the manifest /base/baseq3/ep_duckhunt.pk3 (41 files) not in the manifest


2342 files in pk3 files Loading vm file vm/qagame.qvm... File "vm/qagame.qvm" found in "/base/baseq3/pak8.pk3" VM file qagame compiled in 892 milliseconds qagame loaded in 2683840 bytes on the hunk ------- Game Initialization ------- gamename: baseq3 gamedate: Sep 30 2002

InitGame: \fs_cdn\content.quakejs.com\fs_manifest\linuxq3ademo-1.11-6.x86.gz.sh@857908472@49292197 linuxq3apoint-1.32b-3.x86.run@296843703@30914987 baseq3/pak100.pk3@2388798635@16401505 baseq3/pak101.pk3@2206768903@2652817\version\ioq3 1.36_GIT_4f7d7bf-2014-02-01 emscripten- Feb 23 2014\com_gamename\Quake3Arena\com_protocol\71\dmflags\0\fraglimit\25\timelimit\15\g_gametype\0\mapname\q3dm7\sv_privateClients\0\sv_hostname\Arch Server All Maps\sv_maxclients\12\sv_minRate\0\sv_maxRate\0\sv_dlRate\100\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\sv_allowDownload\0\g_maxGameClients\0\capturelimit\8\gamename\baseq3\g_needpass\0 info_firstplace doesn't have a spawn function info_secondplace doesn't have a spawn function info_thirdplace doesn't have a spawn function 0 teams with 0 entities 20 items registered

------- BotLib Initialization ------- loaded weapons.c loaded items.c loaded syn.c loaded rnd.c loaded match.c loaded rchat.c ------------ Map Loading ------------ trying to load maps/q3dm7.aas loaded maps/q3dm7.aas camp spot at 1180.0 -148.0 188.0 in solid found 67 level items

6 bots parsed 38 arenas parsed AAS initialized.

broadcast: print "server: connect 127.0.0.1:27960" Hitch warning: 9155 msec frame time Resolving master.quakejs.com (IPv4) master.quakejs.com resolved to 172.29.2.0:27950 Sending heartbeat to master.quakejs.com

jpwits avatar Apr 04 '18 22:04 jpwits

I've written a guide on how to setup a game server, content server, and play page for local LAN here https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9

It should be pretty simple to make it available over the Internet. Really just changing the host name in your server.cfg and on the var args line at the bottom of index.html

The discussion on this thread was integral to me figuring out how to get everything working so a specific thanks to @LWSS!

begleysm avatar Jul 09 '19 02:07 begleysm

Looks great. I will give it to our devops. Hopefully we could get it going again. The iframe on y8.com was broken when we moved to https.

EddieOne avatar Jul 09 '19 03:07 EddieOne

For anyone who is a Windows person I recently got a local server setup under Windows 10. I put up detailed instructions here: https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Windows_10

begleysm avatar Sep 09 '19 18:09 begleysm

@EddieOne FYI, I recently found out that the compiled code references content.quakejs.com essentially checking to see if it is pingable before allowing the game to proceed. The instructions (as of back in July when I 1st posted) did not account for this and while the content was downloaded from the local content server, it still required that content.quakejs.com be pingable. This meant that if you were on a LAN without an internet connection or content.quakejs.com disappeared then your server would no longer work.

I've since updated the guide with a bit of a hack to "fix" this issue. The hack is to edit /etc/hosts to redirect content.quakejs.com to 127.0.0.1 (which is our machine which is where our content server is hosted in the guide). Both the Linux & Windows guides have been updated to include these instructions.

begleysm avatar Oct 07 '19 12:10 begleysm

Thank you, good catch. I hope our devops will be able to add this game. Record it for the history books. They are so busy though. So I'm waiting still. 🤞

EddieOne avatar Oct 08 '19 21:10 EddieOne

Any steps on how to add your own maps?

stevezau avatar Dec 21 '19 00:12 stevezau

I haven't, personally, done anything with custom maps. However I do have some steps on how to do this from a guy I was communicating with over email (regarding a Windows setup). I've had it in the back of my mind to walk through them and add a section to my How Tos but I haven't gotten around to it yet.

Here are the relevant excerpts from my email conversation with him:

Ok so I managed to load custom maps. The method I used is basically the same as the one to upgrade demo to full version. This is what I did to keep pak0 to minimal. First a took pak0 from full version and extracted just the textures folder and put the textures folder inside demo pack0. Then I got two maps I like and put them inside demo pak0 as well with all their levelshots, bsp, aas, and so on. And then I basically just did the method of identifying the numbers for the pak0, and replace them in the 3 js files. Then a copy of pak0 to game server base and number-pak0.pk3 to base of www folder. Also editing the manifest with proper size in kb and number. So the method is a pain in the ass but at least custom maps are possible to add and you don't need to have the huge full version pk0. I added a couple of cool maps and mine is just under 90 mb.

Ok finally i made a great pak0.pk3.. with my favourite competitive maps. As i said before the method is the same as for the full version transformation. Its all about customizing a pak0.pk3 and leaving the rest of the paks the same. I ended up taking the original full version pak0 and deleted all maps, all player models, video and music. Just placed the player models i liked most, along with their respective bot files and scripts and the maps i personally love. Before doing this i tested everything in my regular q3 installation and everything worked fine. Then i did the editing of JS files, manifest, copy the pak to gameserver and www. etc. It works spectacular !

The map is one extracted from QuakeLive and this is my map cycle. set d1 "map qzwarmup ; set nextmap vstr d2" set d2 "map acid3dm6 ; set nextmap vstr d3" set d3 "map acid3dm9 ; set nextmap vstr d4" set d4 "map mptourney4 ; set nextmap vstr d5" set d5 "map pukka3tourney2 ; set nextmap vstr d6" set d6 "map q3tourney5 ; set nextmap vstr d7" set d7 "map acid3dm2 ; set nextmap vstr d1" vstr d1

I'm not sure if he has a handle on github. In order to give him a bit of credit, here's a link to his webpage http://www.grabisoftnet.com

begleysm avatar Dec 21 '19 13:12 begleysm

Hrmm, i tried to do this but got stuck.. I simply just tried to add a custom map from https://lvlworld.com/.

I added the pak file in the same place as the other pak files. I updated the manifest in both the www and server but for some reason it is not picking up the updated mainfest.

I also wasn't sure how to do the checksums.. I did a checksum of the existing pak and it was different to the mainfest..

confused... any help much appreciated! PS: i started digging into the node code but got a little lost.

stevezau avatar Jan 04 '20 09:01 stevezau

I sent an email to the guy who figured out how to do custom maps with a link to this thread. Hopefully he'll come give you some advice.

begleysm avatar Jan 04 '20 13:01 begleysm

Hi the process to customize the quakejs, not only maps but also player models and stuff was basically the same steps as to the conversion from demo to full quake 3. You just edit the pk3 files with the maps and player models or bots that you wish and then modify the numbers in the js files accordingly I made an extense step by step video tutorial hope it works for you https://youtu.be/m57rMXASWms

Grabisoft avatar Jan 04 '20 13:01 Grabisoft

@Grabisoft thanks, watching it now. I think i where I got stuck, didn't realise it was a crc32 algorithm used for the checksum. testing now.

I also signed up to your site :)

stevezau avatar Jan 05 '20 07:01 stevezau

wrote this to make generating the checksum easier.

You'll need to install buffer-crc32 and glob

npm install buffer-crc32 glob

Copy below to a file within the assets folder and run with node <file_name>

const fs = require('fs');
const glob = require('glob');
const crc32 = require('buffer-crc32');

// PLACE THIS FILE INSIDE YOUR ASSETS FOLDER
const pkFiles = glob.sync(`${__dirname}/**/*.pk3`, { absolute: true });

const pkFilesCRC32 = pkFiles.map((pkFilePath) => {
  const pkFile = path.basename(pkFilePath);
  const pkBuf = fs.readFileSync(pkFilePath);
  const checkSum = crc32.unsigned(pkBuf);
  const match = pkFile.match(/^([0-9]+)-(.+.pk3)$/);
  let pk3FileName = pkFile;
  if (match) pk3FileName = match[2];
  const newName = `${checkSum}-${pk3FileName}`;
  // Check if we need to rename the file
  if (pkFile !== newName) {
    const to = path.join(path.dirname(pkFilePath), newName);
    console.log(`rename from "${pkFilePath}" to "${to}"`);
    fs.renameSync(pkFilePath, to);
  }

  return {
    name: `baseq3/${newName}`,
    compressed: pkBuf.byteLength,
    checksum: checkSum,
  };
});

// Output manifest
console.log(JSON.stringify(pkFilesCRC32, null, 4));

stevezau avatar Jan 05 '20 09:01 stevezau

hmm when running the ded server i can see this

  /base/baseq3/devdm3.pk3 (27 files)
    not in the manifest

how does one add it to the manifest for the server? I edited build/ioq3ded.js and added it.. ??

stevezau avatar Jan 05 '20 10:01 stevezau

Again, I haven't actually added custom content myself yet, but I think I might be able to help.

If you followed my guide then there should be a file manifest.json located at /var/www/html/assets that lists all of the files in /var/www/html/assets.

Relevant sections of my guide are here for The Simpler Method (Setup a Local Content Server / Step 4) https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9_or_Debian_10#Setup_a_Local_Content_Server

and here for The Original Method (Setup a Local Content Server / Step 5) https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9_or_Debian_10#Setup_a_Local_Content_Server_2

manifest.json lists all of the files that are available to download on your content server. Presumably you need to add devdm.pk3 to that file. You'll also need to ensure that devdm.pk3 is in /var/www/html/assets/baseq3 and make sure that the path in the manifest is correct (it should probably just be baseq3/devdm3.pk3 not base/baseq3/devdm3.pk3

begleysm avatar Jan 05 '20 12:01 begleysm

@begleysm thanks but i am just trying to get it working on the ded server first which does not use the content server.

If i place a new pak the server can see it but does not load it due to below reason. tested this by typing map devdm3 on the server, it says Can't find map devdm3map. However, if i embed the map into the pak it seems to work (i think). There must be a way to make it accept extra pk files. hmm

 /base/baseq3/devdm3.pk3 (27 files)
    not in the manifest

stevezau avatar Jan 06 '20 01:01 stevezau

I don't think you can segregate the dedicated server and the content server like you want to. The dedicated server actually does use the content server (unfortunately).

Check out this line in ioq3 (which, ultimately, is compiled code used by your dedicate server) https://github.com/begleysm/ioq3/blob/master/code/qcommon/files.c#L3461

You'll see that it is "saving" the address "content.quakejs.com" to the variable fs_cdn. Then in other places (like those linked below) that content server is being reference line 9402 of https://raw.githubusercontent.com/begleysm/quakejs/master/build/ioq3ded.js line 15277 of https://raw.githubusercontent.com/begleysm/quakejs/master/build/ioquake3.js

Basically, I believe, the dedicated server is checking the content server to make sure it has the requisite files since your clients can't play your game unless they can download the maps.

That is why you need to put a local redirect to point content.quakejs.com to 127.0.0.1 (or your content server address if it is located somewhere else) on your server. This ensures that the code looks to your machine, with your custom manifest and custom content instead of content.quakejs.com. Linux Server: https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9_or_Debian_10#Redirect_content.quakejs.com_2 Windows Server: https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Windows_10#Redirect_content.quakejs.com

I'd recommend following my guide and/or the YouTube video @Grabisoft created, in its entirety and verify the system works in its basic setup, prior to working on adding your custom maps.

begleysm avatar Jan 06 '20 14:01 begleysm

@begleysm I followed your great instructions but it stucks a

-----------------------------------
------- BotLib Initialization -------
loaded weapons.c
loaded items.c
loaded syn.c
loaded rnd.c
loaded match.c
loaded rchat.c
------------ Map Loading ------------
trying to load maps/q3dm7.aas
loaded maps/q3dm7.aas
camp spot at 1180.0 -148.0 188.0 in solid
found 67 level items
-------------------------------------
6 bots parsed
38 arenas parsed
AAS initialized.
-----------------------------------
Hitch warning: 3906 msec frame time

Any idea where this Hitch warning comes from? I am trying to set up a public server on a google compute engine Debian 9 machine.

psteinroe avatar Mar 24 '20 09:03 psteinroe

Any idea where this Hitch warning comes from?

@steinroe The "Hitch warning" is normal and won't have any adverse effect on your server. You should be able to proceed with the instructions without issue.

I'll add a line in the instructions saying that you don't have to worry about the Hitch warning.

begleysm avatar Mar 24 '20 11:03 begleysm

I followed the simple method with no problems, but once I hit the server in a browser I get the lovely QuakeJS logo but nothing else happens. Not sure where to look to troubleshoot?

P.S. would be great if this could be made into a self contained docker image :) I got voroninman/quakejs-server going but I think it's just the server and not the webhosting bit.

timdonovanuk avatar Mar 26 '20 11:03 timdonovanuk

@timdonovanuk Where did you deploy? And what does the log say?

I have had several issues when trying to deploy to GCP Compute Engine due to a lack of knowledge in their network configurations. With AWS EC2 it worked like a charm.

psteinroe avatar Mar 26 '20 11:03 psteinroe

I'm deploying at home. Not sure where/which logs to look at, to be honest. I've confirmed the quake server is successfully running though, as I can join it via quakejs.com/play

timdonovanuk avatar Mar 26 '20 14:03 timdonovanuk

@timdonovanuk you probably have your address to your Content Server wrong in index.html (or have some other reason why you can't access your content server).

If you access your server from quakejs.com/play then you are using their content server. If you go to your index.html Play Page and just get the QuakeJS logo then it isn't talking to the content server. The 1st thing that happens is it checks with the content server to see if you've got the files you need, then it goes and talks to the actual game server.

If you're still having problems try using the Debugging tools included with Firefox or Chrome https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor https://developers.google.com/web/tools/chrome-devtools/network/

Don't forget to Ctrl+F5 (force page reload) in your browser if you start modifying index.html. Otherwise it will likely use a cached copy that doesn't contain your changes.

begleysm avatar Mar 27 '20 12:03 begleysm

Here are instructions on how to spool up a Dockerized server in seconds: https://github.com/treyyoder/quakejs-docker

treyyoder avatar Apr 19 '20 22:04 treyyoder

@treyyoder Awesome job! Thanks for the shout out. I'll update my instructions soon with a link to your project. I know lots of people like Docker.

begleysm avatar Apr 19 '20 23:04 begleysm

@stevezau , @begleysm It still looks complicated to put custom maps, e.g. from the full version into QuakeJS. Has actually someone managed to do this and is there a updated instruction?

onny avatar May 02 '20 22:05 onny

@onny here is a video made by @Grabisoft that shows how to setup custom maps from the full version of Quake in Windows. It might help you.

https://www.youtube.com/watch?v=m57rMXASWms&feature=youtu.be

begleysm avatar May 03 '20 01:05 begleysm

When you put custom maps in the pak0.pk3 you may run into the issue that you have a lot of missing textures.

This issue can be solved by manually adding the missing textures. If you use the demo pak0.pk3 you can take the CC-licensed hi-res textures from here or in case there is still something missing from openarena. The openarena-zip contains a pak4-textures.pk3

In order to find out what is missing start the map in your browser and open the console by pressing

SHIFT+^ or ~

then type

/shaderlist

now write down all textures that are commented with "DEFAULTED". Those are the files you need to find and put in the texture folders of pak0.pk3

If the map uses a lot of textures/shaders the upper part of the list sometimes is not displayed in the console. In this case you can open the page in Firefox developer mode (Press F12). Switch to the Console-Tab. Everything in the game's console is displayed there as well.

digidigital avatar Jun 06 '20 12:06 digidigital

I have written a step-by-step guide on how to add custom content as described by Grabisoft

digidigital avatar Jun 08 '20 23:06 digidigital

I have written a step-by-step guide on how to add custom content as described by Grabisoft

Your pull request has been approved and your guide is now part of my quakejs fork too. Thanks @digidigital!

begleysm avatar Jun 09 '20 13:06 begleysm

@begleysm I have followed @treyyoder s path and created a separate installer-script that makes adding custom content super easy :) https://github.com/digidigital/quakejs-installer/

...I still need to add the EULA since I had to use Trey's "fixed" ioq3ded.js

@begleysm I think your guide for setup needs to be updated regarding the command to start the quakeJS server. I assume if we add the content server as a parameter we might be able to skip the host-file step... Just add +set fs_cdn 'CcontentServerURL:Port' as parameter

node build/ioq3ded.js +set fs_game baseq3 +set fs_cdn 'www.mycontentserver.com' set dedicated 1 +exec server.cfg

digidigital avatar Jun 24 '20 01:06 digidigital

@begleysm did you ever find a way to recompile quakejs? I'm trying to run it on a server that I would be able to access from anywhere, and would like to not have to fiddle with /etc/hosts on every machine I want to access it on, and I can't even do that if the machine I access it on runs windows.

Un1q32 avatar Feb 20 '22 06:02 Un1q32

@begleysm did you ever find a way to recompile quakejs? I'm trying to run it on a server that I would be able to access from anywhere, and would like to not have to fiddle with /etc/hosts on every machine I want to access it on, and I can't even do that if the machine I access it on runs windows.

No, unfortunately I did not. I worked on it a bit, but then moved on to other projects. As for redirecting under Windows, you actually can. Here's how: https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Windows_10#Redirect_content.quakejs.com

begleysm avatar Feb 20 '22 12:02 begleysm

@begleysm I was able to get the redirect to work, and now when I visit the site it says "awaiting challenge" forever. I find the same thing happens regardless of if the server is running, so I suspect that it can't connect to the server. Entering the pause menu lets me connect to one of the other running servers but I still can't connect to my own. The server appears to be running fine when looking at the tty, there are messages from bots and logs of items spawning in, but for some reason I can't connect. If it helps, I'm running this using the quakejs installer on a raspberry pi 4 B running raspberry pi os 64 bit lite, and have had the same thing happen when running it on a ubuntu server vps.

Un1q32 avatar Feb 21 '22 13:02 Un1q32

@OldWorldOrdr I suspect that you aren't pointing to the correct server in your Play Page HTML.

I've never used @digidigital's quakejs installer so I can't directly help there but his README says that there is a server config file. Do you have the right server hostname setup?

Here is a link to my guide (specifically the part on Changing the Server Hostname): https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9_or_Debian_10#Changing_the_Hostname

Throughout my guide it is assumed that your server's hostname is "quakejs". The Play Page defaults to using this hostname. The link above tells you what line of what file to modify to fix it.

If that isn't the issue you may want to try starting over and follow my guide which is more labor intensive, but may be easier to debug. Otherwise perhaps @digidigital can help you with his installer.

begleysm avatar Feb 21 '22 13:02 begleysm

@begleysm I already modified the hostname lol

Un1q32 avatar Feb 21 '22 13:02 Un1q32

@OldWorldOrdr if you aren't getting @digidigital's quakejs installer working for you, I recommend you try following my manual guide.

I've gotten a few questions in the past about it "not working" but, so far, every time it's been "user error" where a step wasn't followed precisely. So I'm pretty confident that it will work if you do what it says to the letter.

Good luck.

begleysm avatar Feb 21 '22 13:02 begleysm

@begleysm i figured out what i was missing. I needed to modify the hostname in base/baseq3/server.cfg. The last thing I need to do is to change the port the server runs on so I can get it through cloudflare. I need to change it to 2095. Is there any way to change the port, even a hack will do.

Un1q32 avatar Feb 21 '22 14:02 Un1q32

Hello All,

I would like to set-up a working QuakeJS server - working from lan and from outside. I'v tried many configuration - with docker (https://github.com/treyyoder/quakejs-docker) , everything is working fine from inside - from the same subnet. If I try external connection I can ony see a page QuakeJS and thats all. From inside/ same subnet - I see QuakeJS and after a few second later game is loading. I've set-up my internal QUakeJS (docker instance) as hosts in DMZ and still without success

I've also tried https://github.com/digidigital/quakejs-installer/ and I'm not able to launch gem from inside and outside. All I can see QuakeJS and thats all

Can you show me what I'm doing wrong?

wiatrolap avatar Jul 03 '22 16:07 wiatrolap

@wiatrolap you need to port foward both the web server and the actual quake server. The quakejs server uses a different port, I cannot remember which one.

Un1q32 avatar Jul 03 '22 23:07 Un1q32

@OldWorldOrdr I've tried to forward this ports 80 8080 27960

and still without success

wiatrolap avatar Jul 04 '22 17:07 wiatrolap

my vm with QuakeJS (via docker) configuration:

debian 11 ip 192.168.1.45 on router port forwardng is enabled and:

outside port 8080 is forwarded to 192.168.1.45 to port 8080 tcp/udp outside port 27960 is forwarded to 192.168.1.45 to port 27960 tcp/udp

inside vm there is a QuakeJS on docker which I'm launching using this command:

docker run --rm -it --name quakejs -e SERVER=192.168.1.45 -e HTTP_PORT=8080 -p 8080:80 -p 27960:27960 treyyoder/quakejs:latest

from outside when I use my external IP http://externalip:8080 i only see JS logo and that's all

wiatrolap avatar Jul 04 '22 18:07 wiatrolap

@wiatrolap

The "JS logo and that's all" symptom is indicative of not connecting to you Content Server.

Here is a thread where I discussed this issue with another guy: https://github.com/begleysm/quakejs/issues/12#issuecomment-997200843

Have you followed my guide (https://steamforge.net/wiki/index.php/How_to_setup_a_local_QuakeJS_server_under_Debian_9_or_Debian_10) and/or seen my fork (https://github.com/begleysm/quakejs)? It isn't designed specifically for docker, but might help you understand the port forwarding.

Also have you seen Trey Yoder's dockerized quakejs project? https://github.com/treyyoder/quakejs-docker

begleysm avatar Jul 05 '22 02:07 begleysm

  • Do you have the issue in all browsers?
  • What is the output of your browser's Javascript console? -- Gesendet mit pEp für Android.

digidigital avatar Jul 05 '22 10:07 digidigital

@begleysm

I've tried only https://github.com/treyyoder/quakejs-docker and it is not working from outside /port redirection etc

I will try with your guide

@digidigital

issue exist in all browsers I will check browsers Javascript console

wiatrolap avatar Jul 08 '22 11:07 wiatrolap