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

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