Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Ports in default_settings.py, Ports in settings.py #1365
An individual Evennia instance uses 6 or 8 ports, or appears to, and some of them are declared in array format so it could potentially use a lot more, and the declarations are SCATTERED throughout default_settings.py and not even mentioned in settings.py even though they're extremely important to anyone running network services.
Even worse the port numbers themselves are just flung willy nilly across the spectrum. 4000, 4001, 8000, 8001, 5001, 8022, and the real problem is that 4000 and 4001 (telnet port vs ssl port) are totally unrelated - 8000 and 5001 are totally related (internal vs external http ports) - 8000 and 8001 are totally unrelated (http port vs websocket port) and based on the comment 'Ports to use for SSL' I'm not even really sure what port 4001 is for because SSL isn't a protocol at all - so just WTF is operating on port 4001 that is using SSL? Should I spend a few days combing through Evennia and Django and Twisted trying to figure this out?
I run multiple Evennia instances and setting each one up is a giant pain in the butt. Starting at port 4000 is a good spot because it should offer plenty (thousands) of free consecutive ports (ie ports that aren't used by FTP, HTTP, POP3, etc, or used by popular games with dedicated servers often hosted on linux such as 7 days to die, half life or Source engine, etc).
In the Evennia repository, for the sanity of anyone running multiple MUs (and therefore the future success of Evennia) port declarations absolutely need to be moved into settings.py and they need to be kept all together in one spot. They can be left in default_settings.py, but when somebody runs evennia --init mygamename they should get this:
That way all a person has to do is add 1 to each port number in the file, for each Evennia instance they're going to run. This could even be done for them in the evennia --init script but I'm not asking for that (if I were I'd build it in myself and push it).
You don't need to provide the host config fields along with the ports because most people won't need to configure that - all you need is to configure the ports for each individual instance.
Also when I type evennia --init myGameName it should present SERVERNAME = "myGameName" but instead it presents SERVERNAME = "Mygamename" which is weaksauce. Just saying.