S Shamar Bryant
Projects Skills Certifications About Resume Contact
Email LinkedIn
Home/Projects/Self-Hosted Server Platform
Linux AdminNetworkingVirtualizationJavaSystems Administration

Self-Hosted Multi-Server Platform with Linux, Virtualization & Networking

Designed and operated a multi-server environment using virtual machines, Linux administration, a BungeeCord proxy, port forwarding, DMZ configuration, Java plugin development, SQL-backed persistence, and log-based troubleshooting, while managing a team of 8 to 10 people.

CategorySystems Administration · Linux · Networking · Java Development
InfrastructurePhysical servers, XenServer virtualization, CentOS VMs, BungeeCord proxy
ToolsXenServer, CentOS, SSH, PuTTY, FTP, Java, SQL, Port Forwarding, DMZ
RoleOwner across the full lifecycle: design, deployment, development, operations, and team management
Team8 to 10 administrators, builders, and moderators

Project Overview

This project involved designing, deploying, and maintaining a self-hosted multi-server environment entirely from scratch. While the platform hosted game servers, the technical work closely mirrors real-world systems administration and cybersecurity: virtualization, Linux administration, remote access, network configuration, software development, database integration, and team management.

I owned the full lifecycle of the environment: provisioning VMs, managing Linux servers remotely, writing and deploying custom software, configuring network exposure, reviewing logs for incidents, and leading a team of administrators.

Why this project belongs in a cybersecurity portfolio: Managing internet-facing services, configuring port forwarding and DMZ, controlling access, analyzing logs, and maintaining availability are core security operations skills. This project provided early hands-on experience with the exact thinking required in cybersecurity: understanding systems, identifying weak points, monitoring behavior, and balancing functionality with security.

Infrastructure Architecture

The environment ran on physical servers in a home lab, using XenServer as the virtualization platform to create and manage multiple CentOS virtual machines, each serving a different role in the network.

Physical Server · home lab hardware

XenServer Hypervisor · VM management platform

CentOS Virtual Machines · multiple instances, separate roles

BungeeCord Proxy · central entry point, proxies to backend servers

Port Forwarding / DMZ · external access from the internet

Each server instance required its own port assignment. BungeeCord acted as a proxy layer: players connected to a single public endpoint and were routed to backend servers. This architecture gave me hands-on experience with proxy services, backend segmentation, and multi-server application design.

Linux Administration & Remote Management

The majority of server management was done through the Linux command line via SSH. Tools used for remote administration included:

  • SSH and PuTTY for remote terminal access to CentOS VMs
  • FTP and file transfer utilities for deploying configuration files, plugins, and updates
  • Remote desktop for tasks requiring a GUI interface

Day-to-day operations included starting and stopping services, managing directories and permissions, editing configuration files, reviewing server logs for errors, and restarting services after configuration changes. This gave me practical experience with Linux process management, file permissions, service configuration, and operational support in a live environment.

Common operational tasks
# Review server logs for errors or crashes tail -f /opt/server/logs/latest.log # Check service status systemctl status server-instance-1 # Deploy updated plugin via SCP scp plugins/myplugin.jar user@server:/opt/server/plugins/ # Restart service after change systemctl restart server-instance-1

Networking & External Access

To allow external connections, I configured port forwarding rules to map external traffic to internal server ports, and set up a DMZ so the server environment could be reachable from the public internet while partially isolated from the primary home network.

Key networking concepts applied:

  • Public vs. private IP addressing and NAT
  • Port forwarding rules that map external ports to internal service ports
  • DMZ configuration, a partially isolated zone for public-facing services
  • Firewall rules that control which ports were accessible
  • BungeeCord proxy configuration with port assignments for each backend server
Security lesson learned: Exposing services to the internet from a home network creates real attack surface. This experience gave me early awareness of the risks of public-facing services: unauthorized access attempts, DDoS-style disruption, and the importance of only exposing what is necessary. These are the same risk decisions that security teams make in production environments.

Java Plugin Development

To extend and customize the server environment beyond default capabilities, I wrote custom Java plugins. Plugin development required:

  • Working with a server-side Java API (event-driven programming model)
  • Writing, compiling, and deploying Java classes and methods
  • Reading server console output and log files to debug stack traces
  • Identifying and resolving plugin conflicts and configuration issues
  • Managing configuration files for each plugin

This gave me practical software development experience in Java within a backend and server-side context. Debugging in a live environment, where errors affected active users, taught me how to read stack traces, isolate issues, and test fixes carefully before redeploying.

SQL & Data Persistence

Some plugins required persistent data storage for player information, permissions, and platform records. I integrated SQL-backed storage for systems that needed to track activity, manage roles, and store plugin-specific data across sessions.

This involved:

  • Configuring database connections for Java plugins
  • Understanding how application code interacts with SQL databases
  • Ensuring reliable read and write operations in a multi-user environment
  • Troubleshooting database connectivity and permission issues

Troubleshooting & Operations

Running a multi-server environment with real users required continuous troubleshooting. Common incidents included:

  • Server crashes, investigated via log files to identify Java exceptions or configuration errors
  • Plugin errors, traced through stack traces to find conflicting plugins or bad config files
  • Connectivity problems, diagnosed by checking port forwarding, firewall rules, and NAT behavior
  • Permission issues, reviewed and corrected across user, admin, and plugin permission configurations

My approach to every issue: observe the symptoms, collect evidence from logs, isolate the cause, apply a targeted fix, verify stability. This troubleshooting methodology is the same one used in SOC analysis, incident response, and systems administration.

Cybersecurity Relevance

This project directly connects to cybersecurity through several areas:

  • Internet-facing service management: understanding the implications of public exposure
  • Access control: managing permissions for users, admins, and automated systems
  • Log analysis: reviewing logs to identify errors, unusual behavior, and operational incidents
  • Configuration management: small errors in config files can break services or create vulnerabilities
  • Network attack surface: first-hand experience with the risks of hosting public services
  • Availability and reliability: maintaining uptime while troubleshooting active issues

Skills Demonstrated

CentOS LinuxXenServerSSH PuTTYFTP / SCPLinux CLI Port ForwardingDMZ ConfigurationNAT / Routing Firewall RulesBungeeCord ProxyJava Development SQL / Database IntegrationLog AnalysisConfiguration Management Service ManagementTroubleshootingTeam Leadership