Expand terminal filesystem, add mainframe hint cron, redirect PHP logs

- Game1 terminal: flesh out the virtual filesystem with a realistic
  spread of Linux directories/files (~70 dirs, ~140 files) so it no
  longer reads as an obviously small puzzle set, without touching any
  win-condition or rapport files.
- Add app:hints:check command + a php-cron container (BusyBox crond)
  that nudges players who haven't contacted every teammate 5 minutes
  into a session, via a new 'hint' Mercure message type.
- Log the cron command's output to var/log/cron/cron.log and rotate
  it (25MB / 90 days) via logrotate, run daily from the same crontab.
- Redirect PHP's error_log and Symfony's prod app/deprecation logs
  from stderr-only into var/log/php/*.log (kept alongside stderr),
  with the same rotation policy.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Frank
2026-07-12 23:34:36 +02:00
co-authored by Claude Sonnet 5
parent 1be07440e3
commit 98066118a6
47 changed files with 583 additions and 6 deletions
+176
View File
@@ -998,6 +998,61 @@ class GameResponseService
$paths[] = '/etc/handle';
$paths[] = '/etc/freak';
$paths[] = '/etc/host';
$paths[] = '/etc/ssh';
$paths[] = '/etc/nginx';
$paths[] = '/etc/apache2';
$paths[] = '/etc/systemd';
$paths[] = '/etc/cron.d';
$paths[] = '/etc/network';
$paths[] = '/etc/apt';
$paths[] = '/etc/default';
$paths[] = '/etc/init.d';
$paths[] = '/etc/security';
$paths[] = '/etc/skel';
$paths[] = '/etc/logrotate.d';
$paths[] = '/bin';
$paths[] = '/boot';
$paths[] = '/dev';
$paths[] = '/home';
$paths[] = '/home/admin';
$paths[] = '/home/guest';
$paths[] = '/home/backup';
$paths[] = '/lib';
$paths[] = '/lib64';
$paths[] = '/media';
$paths[] = '/mnt';
$paths[] = '/opt';
$paths[] = '/opt/app';
$paths[] = '/proc';
$paths[] = '/root';
$paths[] = '/root/.ssh';
$paths[] = '/run';
$paths[] = '/sbin';
$paths[] = '/srv';
$paths[] = '/sys';
$paths[] = '/tmp';
$paths[] = '/usr';
$paths[] = '/usr/bin';
$paths[] = '/usr/sbin';
$paths[] = '/usr/lib';
$paths[] = '/usr/local';
$paths[] = '/usr/local/bin';
$paths[] = '/usr/local/sbin';
$paths[] = '/usr/share';
$paths[] = '/usr/share/doc';
$paths[] = '/usr/share/man';
$paths[] = '/usr/include';
$paths[] = '/usr/src';
$paths[] = '/var/log';
$paths[] = '/var/lib';
$paths[] = '/var/cache';
$paths[] = '/var/spool';
$paths[] = '/var/backups';
$paths[] = '/var/tmp';
$paths[] = '/var/mail';
$paths[] = '/var/run';
$paths[] = '/var/home';
@@ -1213,6 +1268,127 @@ class GameResponseService
$files[] = '/var/rapports/011_130-62.txt';
$files[] = '/var/rapports/index.txt';
$files[] = '/etc/passwd';
$files[] = '/etc/shadow';
$files[] = '/etc/hostname';
$files[] = '/etc/hosts';
$files[] = '/etc/os-release';
$files[] = '/etc/motd';
$files[] = '/etc/issue';
$files[] = '/etc/timezone';
$files[] = '/etc/resolv.conf';
$files[] = '/etc/crontab';
$files[] = '/etc/nsswitch.conf';
$files[] = '/etc/environment';
$files[] = '/etc/fstab';
$files[] = '/etc/ssh/sshd_config';
$files[] = '/etc/ssh/ssh_config';
$files[] = '/etc/nginx/nginx.conf';
$files[] = '/etc/apache2/apache2.conf';
$files[] = '/etc/network/interfaces';
$files[] = '/etc/apt/sources.list';
$files[] = '/etc/cron.d/backup-cron.sh';
$files[] = '/etc/init.d/nginx.sh';
$files[] = '/etc/init.d/ssh.sh';
$files[] = '/etc/init.d/cron.sh';
$files[] = '/etc/logrotate.d/rsyslog.sh';
$files[] = '/etc/logrotate.d/apt.sh';
$files[] = '/etc/skel/bashrc.sh';
$files[] = '/etc/skel/profile.sh';
$files[] = '/var/log/syslog';
$files[] = '/var/log/auth.log';
$files[] = '/var/log/kern.log';
$files[] = '/var/log/boot.log';
$files[] = '/var/log/dmesg';
$files[] = '/var/log/dpkg.log';
$files[] = '/var/log/cron.log';
$files[] = '/var/log/mail.log';
$files[] = '/var/log/daemon.log';
$files[] = '/var/log/alternatives.log';
$files[] = '/var/lib/dpkg-status.sh';
$files[] = '/var/lib/apt-extended-states.sh';
$files[] = '/var/cache/apt-archives.sh';
$files[] = '/var/spool/cron-crontabs.sh';
$files[] = '/var/spool/mail-root.sh';
$files[] = '/var/backups/passwd.bak.sh';
$files[] = '/var/backups/group.bak.sh';
$files[] = '/var/mail/root';
$files[] = '/root/.bashrc';
$files[] = '/root/.bash_history';
$files[] = '/root/.ssh/authorized_keys';
$files[] = '/home/admin/notes.sh';
$files[] = '/home/admin/todo.sh';
$files[] = '/home/guest/readme.sh';
$files[] = '/home/backup/backup.sh';
$files[] = '/opt/app/config.yml';
$files[] = '/opt/app/app.sh';
$files[] = '/opt/app/start.sh';
$files[] = '/usr/bin/ls.sh';
$files[] = '/usr/bin/cat.sh';
$files[] = '/usr/bin/grep.sh';
$files[] = '/usr/bin/awk.sh';
$files[] = '/usr/bin/sed.sh';
$files[] = '/usr/bin/bash.sh';
$files[] = '/usr/bin/python3.sh';
$files[] = '/usr/bin/perl.sh';
$files[] = '/usr/bin/curl.sh';
$files[] = '/usr/bin/wget.sh';
$files[] = '/usr/bin/ssh.sh';
$files[] = '/usr/bin/scp.sh';
$files[] = '/usr/bin/rsync.sh';
$files[] = '/usr/bin/tar.sh';
$files[] = '/usr/bin/gzip.sh';
$files[] = '/usr/bin/vim.sh';
$files[] = '/usr/bin/nano.sh';
$files[] = '/usr/bin/top.sh';
$files[] = '/usr/bin/ps.sh';
$files[] = '/usr/bin/kill.sh';
$files[] = '/usr/bin/chmod.sh';
$files[] = '/usr/bin/chown.sh';
$files[] = '/usr/bin/systemctl.sh';
$files[] = '/usr/bin/docker.sh';
$files[] = '/usr/bin/git.sh';
$files[] = '/usr/bin/find.sh';
$files[] = '/usr/bin/sort.sh';
$files[] = '/usr/bin/uniq.sh';
$files[] = '/usr/bin/head.sh';
$files[] = '/usr/bin/tail.sh';
$files[] = '/bin/sh.sh';
$files[] = '/bin/mount.sh';
$files[] = '/bin/umount.sh';
$files[] = '/bin/ping.sh';
$files[] = '/bin/netstat.sh';
$files[] = '/bin/ifconfig.sh';
$files[] = '/bin/hostname.sh';
$files[] = '/bin/date.sh';
$files[] = '/bin/ln.sh';
$files[] = '/bin/cp.sh';
$files[] = '/bin/mv.sh';
$files[] = '/bin/rm.sh';
$files[] = '/bin/mkdir.sh';
$files[] = '/bin/rmdir.sh';
$files[] = '/bin/touch.sh';
$files[] = '/bin/echo.sh';
$files[] = '/sbin/init.sh';
$files[] = '/sbin/reboot.sh';
$files[] = '/sbin/shutdown.sh';
$files[] = '/sbin/fsck.sh';
$files[] = '/sbin/ifup.sh';
$files[] = '/sbin/ifdown.sh';
$files[] = '/sbin/iptables.sh';
$files[] = '/sbin/sysctl.sh';
$files[] = '/usr/local/bin/composer.sh';
$files[] = '/usr/local/bin/node.sh';
$files[] = '/usr/local/bin/npm.sh';
if ($player === null) {
return $files;
}