treyyoder / quakejs-docker Goto Github PK
View Code? Open in Web Editor NEWDockerized quakejs server
Dockerized quakejs server
hello, love the idea of this container to have everything inside.
Tried to run it, but got this.
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
*
WARNING: using emscripten GL emulation. This is a collection of limited workarounds, do not expect it to work.
WARNING: using emscripten GL emulation unsafe opts. If weirdness happens, try -s GL_UNSAFE_OPTS=0
ioq3 1.36_GIT_4f7d7bf-2014-02-01 emscripten- Feb 23 2014
----- FS_Startup -----
events.js:183
throw er; // Unhandled 'error' event
^
Error: connect EHOSTUNREACH 104.28.27.218:80
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
So it still tries to connect somewhere for assets.
Provide users the ability to modify the server.cfg
The initial issue with this was accepting the license agreement when starting the quakejs server.
I'm not sure if there is a way we could use entrypoint.sh to init the server and accept user input to accept the license agreement.
Hi, I have no errors on this container in docker. However when i go to the ip adress, all I get is the QuakeJS logo.
Any idea on what could be wrong?
Is this Docker container able to register to the master.quakejs.com MasterServer so it will show up in its list at http://quakejs.com?
I tried to add to autoexec.cfg via docker-compose.
autoexec.cfg
set sv_master1 "master.quakejs.com"
set dedicated 2
docker-compose.yaml
version: '2'
services:
quakejs:
container_name: quakejs
environment:
- SERVER=XX.XX.XX.XX
- HTTP_PORT=8080
ports:
- '8080:80'
- '27960:27960'
image: 'treyyoder/quakejs:latest'
volumes:
- /home/docker/quakejs/server.cfg:/quakejs/base/baseq3/server.cfg
- /home/docker/quakejs/autoexec.cfg:/quakejs/base/baseq3/autoexec.cfg
I think either the master server didn't like the information it was sending, as the list on the quakejs.com website went blank, or just my desktop was being slow.
Adding in CPMA (https://playmorepromode.com) and its fun variations like instagib, Clan Arena, CTF, etc would be awesome.
Awesome work on this. Out of interest, after some googling I couldnt see a nice way to change the port easily. Is there a way you have seen to get around pesky firewall policies? I.e change port 27960
I must have missed something but using stock directions doesnt work, just getting logo on different browsers
After I run the docker container I attempt to join the server but the page is stuck on JS. Anyone have any suggestions for remediation?
Sorry guys, just realized that only one map is working. Working on it now.
Hi,
I added the https but there is no parameter to activate it for this container...
Mu docker container:
docker run -d --name quakejs
-e SERVER=quakejs.domainename.com
-e HTTP_PORT=80
-p 10113:80
-p 27960:27960
-l traefik.enable="true"
-l traefik.http.routers.quakejs.rule="Host(quakejs.domainename.com
)"
-l traefik.http.routers.quakejs.entrypoints="websecure"
-l traefik.http.services.quakejs.loadbalancer.server.port=80
treyyoder/quakejs:latest
( i replace my domaine per domainename ^^)
some map (like all "pro-..." map) missing texture in game.
Hi, thanks for your work on this. Makes it really easy.
Are there any plans to allow additional map support? Or instructions on how you can add custom maps?
Thanks
standard_init_linux.go:211: exec user process caused "exec format error"
Docker quits with this error.
Docker runs :)
Yes, I just pulled the image.
Hello! First off, thanks for this, I'm having great fun smashing my kids into the ground!
Secondly, a tip for anyone who's looking, swapping the image base to arm32v7/ubuntu:latest
allows you to host this on a Pi. This has made it a lot better for me at home, as I can leave it up all the time rather than spawning it on a macbook.
Cheers!
hey everyone,
is there a way to change the game server port? I tried editing the server.cfg to add this
set net_port "8080"
but it's still listening on port 27960 .
log:
2024-04-13 12:29:04 Hostname: emscripten
2024-04-13 12:29:04 IP: 172.29.1.0
2024-04-13 12:29:04 Opening IP socket: 0.0.0.0:27960
any idea? It's because my friend has some outbound port being blocked and connect using 27960
cheers
I see the other fork of IOQuake has the ability to add bots, change settings, etc. Is there a way to do this via Docker? Thank you!
Hello,
I'm trying to install quakejs-docker on a Debian 11 behind a proxy.
Unfortunately, when do sudo -E docker compose up
, it failed because of this error:
x@xxx:~/quake$ export https_proxy=http://proxy:3128
x@xxx:~/quake$ export http_proxy=http://proxy:3128
x@xxx:~/quake$ sudo -E docker compose up
[+] Running 1/0
⠿ Container quakejs Created 0.0s
Attaching to quakejs
quakejs | * Starting Apache httpd web server apache2
quakejs | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.25.0.2. Set the 'ServerName' directive globally to suppress this message
quakejs | *
quakejs | WARNING: using emscripten GL emulation. This is a collection of limited workarounds, do not expect it to work.
quakejs | WARNING: using emscripten GL emulation unsafe opts. If weirdness happens, try -s GL_UNSAFE_OPTS=0
quakejs | ioq3 1.36_GIT_4f7d7bf-2014-02-01 emscripten- Feb 23 2014
quakejs | ----- FS_Startup -----
quakejs | events.js:183
quakejs | throw er; // Unhandled 'error' event
quakejs | ^
quakejs |
quakejs | Error: connect ECONNREFUSED 188.114.97.2:80
quakejs | at Object._errnoException (util.js:1022:11)
quakejs | at _exceptionWithHostPort (util.js:1044:20)
quakejs | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
quakejs exited with code 1
I also tried with curl to get to this IP:
x@xxx:~/quake$ sudo -E curl 188.114.97.2:80
error code: 1003
my docker-compose.yml
:
version: '2'
services:
quakejs:
container_name: quakejs
environment:
- HTTP_PORT=8080
ports:
- '8080:80'
- '27960:27960'
image: 'treyyoder/quakejs:latest'
So I think the website is down and it's now impossible to download all the necessary file...
Is this correct ? Is there another way to download the files ?
Thanks a lot for your help !
Loads of errors with the below. Not sure how to troubleshoot
Docker-compose:
version: '2'
services:
����quakejs:
��������container_name: quakejs
��������environment:
������������- HTTP_PORT=8888
��������ports:
������������- '8888:8888'
������������- '27960:27960'
��������image: 'treyyoder/quakejs:latest'
Creating quakejs ...
ERROR: for quakejs a bytes-like object is required, not 'str'
ERROR: for quakejs a bytes-like object is required, not 'str'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 261, in _raise_for_status
response.raise_for_status()
File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.22/containers/82943a8a0112e731107200a069742650a076b0ab0a8c2d1cb8584dc52afbfaee/start
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/compose/service.py", line 625, in start_container
container.start()
File "/usr/lib/python3/dist-packages/compose/container.py", line 241, in start
return self.client.start(self.id, **options)
File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 19, in wrapped
return f(self, resource_id, *args, **kwargs)
File "/usr/lib/python3/dist-packages/docker/api/container.py", line 1095, in start
self._raise_for_status(res)
File "/usr/lib/python3/dist-packages/docker/api/client.py", line 263, in _raise_for_status
raise create_api_error_from_http_exception(e)
File "/usr/lib/python3/dist-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 500 Server Error: Internal Server Error ("b'driver failed programming external connectivity on endpoint quakejs (b4df0399e6c7b1a376f4280057c1fec1a8cc7d0ea2b6ff9b103cdf1cc75b7a8e): Bind for 0.0.0.0:8888 failed: port is already allocated'")
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 11, in <module>
load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
command()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 128, in perform_command
handler(command, command_options)
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1107, in up
to_attach = up(False)
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1088, in up
return self.project.up(
File "/usr/lib/python3/dist-packages/compose/project.py", line 565, in up
results, errors = parallel.parallel_execute(
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 112, in parallel_execute
raise error_to_reraise
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 210, in producer
result = func(obj)
File "/usr/lib/python3/dist-packages/compose/project.py", line 548, in do
return service.execute_convergence_plan(
File "/usr/lib/python3/dist-packages/compose/service.py", line 545, in execute_convergence_plan
return self._execute_convergence_create(
File "/usr/lib/python3/dist-packages/compose/service.py", line 460, in _execute_convergence_create
containers, errors = parallel_execute(
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 112, in parallel_execute
raise error_to_reraise
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 210, in producer
result = func(obj)
File "/usr/lib/python3/dist-packages/compose/service.py", line 465, in <lambda>
lambda service_name: create_and_start(self, service_name.number),
File "/usr/lib/python3/dist-packages/compose/service.py", line 457, in create_and_start
self.start_container(container)
File "/usr/lib/python3/dist-packages/compose/service.py", line 627, in start_container
if "driver failed programming external connectivity" in ex.explanation:
TypeError: a bytes-like object is required, not 'str'
I can reach quakejs on LAN but not all I wanna frag is on LAN, so I thought hey lets give it a subdomain and let the carnage begin!
But oh now... localip:8080 works, nginx reverse proxy points to localip:8080 as so many other subdomains, but this gives me an forbidden error (111) and in the browser it says 502.
I was trying to host a game with Noghost mod and noticed that the pk3 should be added to the public manifest.
Or to have another content server. Can help with that? i am trying to build everything according to the instructions on quake js repo, but the dependencies used are nowhere to be found. Using the latest emscripten gives a chain of errors.
Would it be possible to add the NoGhost server side mod to the public manifest? http://noghost.net
There are several server side enhancements to provide a smoother gameplay as well as a lot of mods to play.
We used to play this mod mostly on point of release 1.16n. And this was compatible with quake 3 demo as well as quake 3 1.11.
However afaik the ioq3 is based on 1.32 point of release. so i am not sure if this can be converted.
However there is a serverside mod for both:
1.16 / 1.11 / demo : http://www.noghost.net/modfiles/1.16/NoGhost.zip
1.32: http://www.noghost.net/modfiles/1.32/NoGhost_beta.zip (it says beta but this has been used for a while and didn't get an update afaik)
or just to add NoGhost like a mod (similar to CPMA) then we can just use fs_game
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.