ROADMAP
ON THE HORIZON
An overview of features and improvements I'm in the process of implementing.
Implement network segmentation
In progress
-
Separate trusted household devices, public-facing servers, IoT devices and guests into isolated networks
-
Introduce centralized routing and firewall controls between network segments
-
Block communication between networks by default and allow only explicitly required connections
-
Allow trusted devices to administer servers while preventing servers, IoT devices and guests from initiating access to the trusted network
-
Provide separate wireless networks for trusted, IoT and guest devices
-
Move hal9000, cortana, atlas and tars to a dedicated server network with stable local addresses
-
Update infrastructure references, monitoring, agent communication and port forwarding to support the new network layout
-
Verify that public website and game server services remain reachable while internal network boundaries are enforced
-
Document the network topology, access rules and recovery procedure
Build the landing page and core subpages
In progress
-
Register the domain
-
Design and code the landing page, 404 page, and the Apps, Game servers, About, Blog and Contact pages
-
Ensure pages scale seamlessly across all screen sizes
-
Optimize for scalability and future expansion
-
Commission a custom logo
Build a game save manager
Not started
-
Develop game-specific adapters for discovering and managing worlds and save slots across Linux and Windows game servers
-
List available worlds and save slots through a dedicated management modal without exposing filesystem paths to the web server
-
Identify and display the save slot currently configured to load
-
Allow administrators to select and persist the active save slot while the game server is offline
-
Ensure the selected save slot is validated and applied reliably whenever the server starts
-
Associate save slots with separate protected server passwords where supported, allowing access to be isolated between different player groups
-
Apply and validate the selected save slot and its access settings before startup, preventing the server from starting with an incomplete or incorrect configuration
-
Execute filesystem and configuration changes through restricted host-side agents without granting the web server broad access to game files
-
Expand the system over time with save creation, display-name changes, backup exports and recoverable deletion
Set up a private VPS edge
Completed
-
Introduce a remotely hosted VPS as the public entry point for the website and web applications
-
Establish an encrypted private tunnel between the VPS and the home-hosted infrastructure
-
Route public web traffic securely through the VPS to hal9000
-
Move public DNS and HTTPS handling for web services to the VPS
-
Restrict direct public access to the home web server once the new route is verified
-
Preserve accurate visitor IP information for logging, authentication and rate limiting
-
Keep game servers directly accessible to preserve compatibility and minimize latency
-
Verify authentication, uploads, downloads, dashboard controls and background processing through the new network path
-
Add monitoring, firewall rules and recovery procedures for the VPS and encrypted tunnel
-
Document the architecture and maintain secret-free local configuration snapshots
Set up a dedicated Windows game server
Completed
-
Assemble a compact DIY mini PC with a Ryzen 7 processor to host Windows-based multiplayer game servers
-
Install and configure Windows 11 Pro for reliable headless operation
-
Secure remote administration with key-only SSH access, restricted firewall rules and Remote Desktop
-
Configure automatic startup after power loss and unattended system updates
-
Build a private monitoring agent for secure communication with the main web server
-
Hook the machine into the existing system monitor to track CPU, memory, disk, network and uptime metrics
-
Install and configure dedicated server instances for each hosted game
-
Integrate each hosted server's status, controls and update workflows into the Game Servers page for admin users
Set up a dedicated worker machine
Completed
-
Assemble a compact DIY mini PC with a dedicated NVIDIA GPU to handle background processing tasks
-
Install and configure Ubuntu Server for headless operation
-
Configure NVIDIA drivers and GPU acceleration for image processing workflows
-
Use the worker machine to run local image upscaling and media processing tasks
-
Secure communication between the main web server and the worker machine
-
Hook the worker machine into the existing system monitor to track CPU, memory, disk, network and GPU usage
Set up a dedicated Linux game server
Completed
-
Assemble a compact DIY mini PC with a Ryzen 7 APU to act as the dedicated host machine
-
Install and harden Ubuntu Server with SSH keys, firewall rules and automatic security updates
-
Create isolated Linux users and systemd services for each hosted game server
-
Expose each game server through friendly DNS records
-
Build a dedicated Game Servers page with safe server controls for admin users
-
Hook the new game server into the existing system monitor to track CPU, memory and network usage
Build a two-tier access control system
Completed
-
Define separate roles for regular users and administrators
-
Restrict sensitive pages and actions to admin-only accounts
Build a login and registration system
Completed
-
Set up user authentication and session handling
-
Securely store passwords using hashing
-
Add CSRF protection to prevent cross-site attacks
-
Limit repeated requests with rate limiting
-
Verify new accounts via email confirmation
-
Expire verification tokens after a set time
-
Allow users to resend verification emails
-
Automate cleanup of rate limit logs and unverified users with cron jobs
-
Enable password reset functionality
-
Enforce email-based two-step verification for all logins
-
Support 30-day persistent login sessions with a “Remember me” option
Implement fullscreen functionality
Completed
-
Add a persistent fullscreen toggle button
-
Allow users to toggle fullscreen mode on click
-
Hide unnecessary interface elements when fullscreen is active
Implement click-and-drag scrolling
Completed
-
Activate only when the container overflows horizontally
-
Enable only on desktop to preserve native scrolling on mobile
-
Apply appropriate cursor styles to indicate grab and grabbing states
Build a custom dropdown
Completed
-
Design the component to match the existing UI style
-
Implement accessibility features, including keyboard and screen reader support
-
Darken the background when the dropdown is open to draw focus
-
Portal its contents to the page body to bypass positioning limitations of parent elements
-
Adapt the component into a modal-style dialog on smaller screens for better mobile usability
Implement system monitoring
Completed
-
Display system information including hostname, platform, architecture and CPU temperature
-
Show real-time readings for average CPU load, memory usage and disk usage
-
Display live network download and upload speeds
-
Display server boot date and elapsed uptime in days, hours and minutes
-
Show a notification if a system reboot is scheduled
Set up self-hosting
Completed
-
Acquire a low-power, always-on mini PC
-
Install and configure Ubuntu Server for headless operation
-
Install and configure the LAMP stack
-
Install and configure phpMyAdmin for database management
-
Set up secure SFTP access for file uploads
-
Install and configure Certbot for automatic SSL certificate setup and renewal with Let's Encrypt
-
Configure system to automatically boot on power restore
-
Set up unattended upgrades and automatic reboot when required
Develop backend system
Completed
-
Develop object-oriented backend using class-based structures and arrays
-
Incorporate pagination and filtering
Implement modal dialogs
Completed
-
Build as a reusable component
-
Establish color scheme with optimal contrast to the page
Implement tooltip functionality
Completed
-
Build as a reusable component
-
Trigger tooltip display on hover
Implement accordion functionality
Completed
-
Build as a reusable component
-
Ensure smooth toggle animations
Configure contact form
Completed
-
Enforce form validation on the front and backend
-
Provide visual feedback to users
-
Build functionality to process form data and send emails
Create parallax scrolling effect
Completed
-
Organize background and foreground layers
-
Calibrate layer scroll speeds
-
Apply load-in animations
-
Optimize the effect for performance