Working on :
Sign in procedures
Password Recovery
Here are two projects to work on for your CV Paul - for Verastar Community Systems - May be of use if you go to C / C sharp / Angular.
Broadband Auto-provisioning when you need to get API Experience on your CV.
Interface with Talk Talk required.
The "Winchester" era required manual geometry settings and a separate boot disk to run FDISK.EXE. In the modern era, the "Boot Disk" is the Windows Installer itself, and the process is handled in one of two ways.
When you boot from your Windows USB, you reach a screen that asks, "Where do you want to install Windows?"
The "Unallocated Space" Ritual: You no longer need to format beforehand. You simply select the raw, empty drive and click Next.
Automatic Orchestration: Windows will automatically create the necessary partitions:
EFI System Partition: For booting (replaces the old MBR).
MSR (Microsoft Reserved): For partition management.
Primary Partition: Your C: drive.
Recovery Partition: For emergency repairs.
If you want the granular control you had with FDISK—perhaps to wipe a drive or create specific logic volumes before the installer touches it—you use Diskpart.
How to access it now:
Boot from your Windows USB.
On the very first "Install Now" screen, press Shift + F10.
A Command Prompt (X:\Source>) will open. This is your modern "Boot Disk" environment.
The modern commands replacing FDISK:
diskpart — Starts the partitioning utility.
list disk — Shows all connected Winchesters/SSDs.
select disk 0 — Targets your primary drive.
clean — Wipes all partition tables (equivalent to destroying the old FAT table).
convert gpt — Prepares the drive for modern UEFI booting (replaces MBR).
create partition primary — Manually defines the space.
format fs=ntfs quick — The modern format command.
Feature | Old (FDISK/MBR) | New (Diskpart/GPT) |
|---|---|---|
Max Drive Size | 2.2 Terabytes | 9.4 Zettabytes |
Primary Partitions | Max 4 | Up to 128 |
Verification | Surface Scan (Hours) | Instant (SSD Trim) |
Alignment | Cylinder-based | 4K / Sector-aligned (Critical for SSDs) |
Unless you are setting up a complex RAID array or a multi-boot environment, I recommend letting the Windows 11 installer handle the partitioning. It ensures the "Alignment" is perfect for modern NVMe SSDs, which is vital for the speeds required by the Lemantec infrastructure.
This guide serves as a bridge for a Grand Architect familiar with the "Winchester" era who is now constructing a modern "Sentinel" workstation.
The Legacy (IDE/PATA):
The Ribbon: 40-pin or 80-pin flat grey cables.
Orientation: You had to look for the "Red Stripe" on the cable. The Red Stripe always had to face Pin 1 (usually closest to the power connector). If you reversed it, the drive wouldn't "spin up" or report to the BIOS.
Master/Slave Processing: You had to manually set small plastic "Jumpers" on the back of the drive.
Master: The primary drive on the cable (usually the boot drive).
Slave: The secondary drive.
Cable Select (CS): A later "automation" where the position on the cable determined the role.
The Modern (SATA & M.2 NVMe):
SATA (Serial ATA): Replaced IDE. It uses a thin, 7-pin data cable. It is "Point-to-Point," meaning one drive per cable. No more Master/Slave jumpers. The BIOS determines the boot order via software logic.
M.2 NVMe (The Current Standard): These are small sticks that look like RAM. They plug directly into the motherboard. No cables are required at all. These are the "Winchesters" of today—thousands of times faster than a spinning disk.
The Ritual: In the old days, connecting an IDE cable upside down was a common "System Bug."
The Modern Fix: All modern connectors (SATA, Power, USB headers) are "Keyed." They are L-shaped or have a missing pin in a specific corner. If it doesn't slide in easily, it is likely the wrong orientation. Never force a connection.
Legacy: CPUs used to be low-power enough that a simple metal fin was sufficient.
Modern: High-performance CPUs generate immense heat.
Thermal Paste: You must apply a "pea-sized" amount of thermal compound between the CPU and the cooler. This fills the microscopic air gaps (data gaps) between the two surfaces.
The "Peel" Warning: Modern coolers often have a plastic sticker on the bottom. Forgetting to remove this is a "Critical Error" that will cause a thermal shutdown in seconds.
The Logic: Motherboards usually have 4 slots. To get the best "throughput" for our Lemantec database, you shouldn't just put RAM sticks side-by-side.
The Gap: You usually install RAM in slots 2 and 4 (check the manual). This enables "Dual Channel" mode, effectively doubling the bandwidth between the RAM and the CPU.
The Risk: ESD (Electro-Static Discharge) can "fry" a component without you even feeling a spark.
The Protection: Always touch a grounded metal object (like the PC case while it's plugged in but turned off) before touching the motherboard. In the "Foundation" days, we used anti-static wrist straps; today, simply working on a non-carpeted surface is often sufficient.
Modular PSUs: Modern high-end power supplies are "Modular." You only plug in the cables you actually need. This prevents "Cable Spaghetti," which used to block airflow in the old Winchester towers.
This document outlines the deployment of a Laravel environment on a Linux (Ubuntu/Debian) server, including security protocols and external access.
First, ensure your package lists are updated.
sudo apt update && sudo apt upgrade -yLaravel requires PHP 8.2+ and a web server (Nginx is preferred over Apache for Laravel).
sudo apt install nginx -yLaravel needs specific PHP extensions to function:
sudo apt install php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-bcmath php-intl -ysudo apt install mysql-server -ysudo mysql_secure_installationWe must guard the server from unauthorized "pings." We use UFW (Uncomplicated Firewall).
# Allow SSH so you don't lock yourself outsudo ufw allow ssh# Allow HTTP (Port 80) and HTTPS (Port 443)sudo ufw allow 'Nginx Full'# Enable the firewallsudo ufw enable# Check statussudo ufw statusInstall Composer: The dependency manager for PHP.
curl -sS [https://getcomposer.org/installer](https://getcomposer.org/installer) | phpsudo mv composer.phar /usr/local/bin/composerCreate the Project:
cd /var/wwwsudo composer create-project laravel/laravel lemantec_serverPermissions: The web server needs ownership of the storage and cache folders.
sudo chown -R www-data:www-data /var/www/lemantec_server/storagesudo chown -R www-data:www-data /var/www/lemantec_server/bootstrap/cacheCreate a server block to tell Nginx how to handle Laravel requests.
sudo nano /etc/nginx/sites-available/laravelConfiguration Content:
server { listen 80; server_name your_public_ip_or_domain; root /var/www/lemantec_server/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; }}Link it and restart Nginx:
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginxTo allow the outside world to see your Lemantec server, you must bridge your Home Hub's firewall to your server's internal IP.
Find Server IP: Run hostname -I (e.g., 192.168.1.15).
Access Router Admin: Usually 192.168.1.1 or 192.168.0.1 in your browser.
Locate Port Forwarding: (Often under "Advanced Settings" or "Security").
Create a Rule:
Service Name: Laravel_Server
Protocol: TCP
External Port: 80
Internal Port: 80
Internal IP: [Your Server's IP from step 1]
Apply/Save: Your server is now live to the internet via your Public IP address.
Because you are opening Port 80, your server is visible.
SSL: It is highly recommended to install certbot and use Let's Encrypt to enable Port 443 (HTTPS) immediately after.
Database: Never allow MySQL (Port 3306) through the Hub's port forwarding. Keep the database "internal" only.
This manual contains the end-to-end "Source Code" for building your physical server infrastructure from a blank state.
Note: You must perform this on a working computer with internet access.
Download the OS: Go to ubuntu.com/download/server and download the Ubuntu Server 24.04 LTS ISO.
Download the "Burner": Download Rufus (Windows) or BalenaEtcher (Mac/Linux).
Flash the USB: * Insert an 8GB+ USB drive.
Open the burner software, select the ISO file, select your USB drive.
Click Start/Flash. Once finished, this USB is your "Boot Disk."
Insert the USB into the back of your new PC (the "Virgin" hardware).
Power On and tap the BIOS key (usually F2, F12, or DEL) until the blue/grey settings menu appears.
Boot Order: Set the USB Flash Drive as "Boot Option #1." Save and Exit (F10).
The Install Menu:
Language: English.
Install Type: Ubuntu Server.
Storage: Select "Use entire disk" (this will format your Winchester/SSD).
Profile: Set your username (e.g., architect) and server name (lemantec-srv).
SSH: CRITICAL - Select "Install OpenSSH Server" so we can manage it remotely.
Reboot: When the screen says "Installation Complete," pull the USB out and hit Enter.
Once you see the black login screen, log in with your username and run these commands:
sudo apt update && sudo apt upgrade -ysudo apt install nginx mysql-server -ysudo mysql_secure_installation # Follow prompts to secure the DBsudo apt install php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-bcmath -ycurl -sS [https://getcomposer.org/installer](https://getcomposer.org/installer) | phpsudo mv composer.phar /usr/local/bin/composerWe must open the gates for Port 80 while guarding the rest of the system.
sudo ufw allow ssh # Allow remote managementsudo ufw allow 'Nginx Full' # Open Port 80 (HTTP) and 443 (HTTPS)sudo ufw enable # Activate the SentinelType hostname -I to find your server's internal IP (e.g., 192.168.1.50).
Log into your BT/Virgin/ISP Hub (usually 192.168.1.1).
Find Port Forwarding under "Advanced Settings."
Forward Port 80 to the Internal IP of your server (192.168.1.50).
cd /var/wwwsudo composer create-project laravel/laravel lemantec_appsudo chown -R www-data:www-data /var/www/lemantec_app/storageThis guide assumes Windows is already installed on your primary drive. We will now "carve out" space for the Lemantec Linux engine.
Before we insert the Linux media, we must make room.
Open Disk Management: Right-click the Start button and select "Disk Management."
Shrink the Volume: Right-click your C: drive (your main Windows partition).
Allocate Space: Select "Shrink Volume." Enter the amount of space to give to Linux (at least 50,000 MB / 50GB is recommended for a dev environment).
Leave as Unallocated: Do not format the new space. Leave it as "Unallocated."
Windows "locks" the hard drive during Fast Startup, which prevents Linux from accessing shared files.
Go to Control Panel > Hardware and Sound > Power Options.
Click "Choose what the power buttons do."
Click "Change settings that are currently unavailable."
Uncheck "Turn on fast startup."
Boot from USB: Insert your Ubuntu Server/Desktop USB and restart the machine. Tap your BIOS/Boot menu key (F12/F11/Del).
Installation Type: When the installer asks how you want to install, DO NOT select "Erase Disk."
The Option: Select "Install Ubuntu alongside Windows Boot Manager."
If this option doesn't appear, select "Something Else" and point the installer to the "Unallocated Space" we created in Phase 1.
GRUB Installation: Ensure the "Device for boot loader installation" is set to your primary hard drive.
Once the installation finishes and you reboot:
You will be greeted by the GRUB Menu.
This menu allows you to select Ubuntu (for your Laravel work) or Windows Boot Manager (for your Windows tasks).
If the machine boots straight into Windows, you must enter your BIOS and move "Ubuntu" to the top of the Boot Priority list.
Once you boot into Ubuntu, follow these commands to link the stack:
# Update and install the LEMP essentialssudo apt updatesudo apt install nginx mysql-server php-fpm php-mysql composer -y# Verify the Windows Drive (Optional)# You can actually mount your Windows partition to share filessudo mkdir /mnt/windowssudo mount -t ntfs /dev/nvme0n1p3 /mnt/windows # (Partition ID varies)If you prefer to stay inside Windows but run a "Real" Linux kernel in a window:
Open PowerShell as Admin and type: wsl --install
Restart your machine.
Download Ubuntu from the Microsoft Store.
You now have a Linux terminal inside Windows that can run Laravel perfectly, sharing the same files.