feat: improve password handling, install checks, and fix issues #52 a…#53
feat: improve password handling, install checks, and fix issues #52 a…#53azgaviperr wants to merge 2 commits into
Conversation
…d#52 and acemod#47; upgrade to Debian Trixie - launch.py: * Refactored password generation for RCON and admin: now uses secure, user-friendly random passphrases with two dictionary words, a separator, a random number, and a special character. * Autogenerates and prints RCON and admin passwords if not provided, improving first-time setup and security. * Added robust check: if SKIP_INSTALL=true, verifies /reforger/ArmaReforgerServer exists, else prints a clear error about missing binary and Docker volume mapping (fixes acemod#52). * Ensured RCON config is only set if all required environment variables are present; otherwise, disables RCON. * Added encoding="utf-8" when reading the dictionary file for password generation. * Improved parsing and validation of GAME_MODS_IDS_LIST and GAME_MODS_JSON_FILE_PATH. * General code cleanup, improved comments, and better environment variable handling. - Dockerfile: * Upgraded base image to debian:trixie-slim, replacing the old unsupported Debian version. * Upgraded all system dependencies to latest available versions. * Added installation of libterm-readline-perl-perl to fix "Can't locate Term/ReadLine.pm" warning from SteamCMD (fixes acemod#47). * Ensured all necessary volumes are declared for persistence (/reforger, /reforger/Configs, /reforger/workshop, /home/profile, /steamcmd). * Minor formatting and ordering improvements for clarity. These changes improve robustness, security, and user experience, and resolve issues acemod#52 and acemod#47, while ensuring compatibility with the latest Debian
|
I've made a proper fix for #47 by adding the VOLUME /reforger instruction to the Dockerfile. This ensures all game data is now stored in a persistent volume. As /reforger/workshop and /reforger/Configs are separate volumes. Docker sees these as distinct, isolated mount points, so their content won't impact the size of the main /reforger volume or get mixed up. This prevents the game from redownloading on every container restart, as the data now persists. This fix makes the container much faster to restart and update. While the volumes are now persistent by default, users can still map them to local directories for several reasons:
|
…-readline-perl-perl
| separator = secrets.choice(["-", "_", ".", "~"]) | ||
|
|
||
| # Add a random number and a special character for extra security | ||
| random_number = secrets.randbelow(100) | ||
| special_char = secrets.choice(string.punctuation) |
There was a problem hiding this comment.
This is really not needed, if there is a concern about the password, it should just be increased to another word
|
can you split the #47 fix out please? why put a bunch of random changes into one PR just so it can get blocked? |
Feat: improve password handling, install checks, and fix issues #52 and #47; upgrade to Debian Trixie
launch.py:
Dockerfile:
These changes improve robustness, security, and user experience, and resolve issues #52 and #47, while ensuring compatibility with the latest Debian