syncopatedx / index.html
b08x's picture
Add 2 files
df2625b verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Syncopated ISO Builder | ArchLabs Re-imagined</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.gradient-bg {
background: linear-gradient(135deg, #1e3a8a 0%, #7e22ce 100%);
}
.terminal {
background-color: #1a1b26;
color: #a9b1d6;
font-family: 'Courier New', monospace;
border-radius: 0.5rem;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
}
.prompt {
color: #7aa2f7;
}
.command {
color: #9ece6a;
}
.cursor {
display: inline-block;
width: 10px;
height: 20px;
background-color: #a9b1d6;
animation: blink 1s infinite;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
}
.kernel-badge {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
</style>
</head>
<body class="bg-gray-900 text-gray-100 min-h-screen">
<!-- Navigation -->
<nav class="gradient-bg text-white p-4 sticky top-0 z-50 shadow-lg">
<div class="container mx-auto flex justify-between items-center">
<div class="flex items-center space-x-2">
<i class="fab fa-linux text-2xl"></i>
<span class="font-bold text-xl">Syncopated<span class="text-pink-400">X</span></span>
</div>
<div class="hidden md:flex space-x-6">
<a href="#features" class="hover:text-pink-300 transition">Features</a>
<a href="#build" class="hover:text-pink-300 transition">Build</a>
<a href="#test" class="hover:text-pink-300 transition">Testing</a>
<a href="#bootstrap" class="hover:text-pink-300 transition">Bootstrap</a>
<a href="https://gitlab.com/syncopatedX" target="_blank" class="bg-pink-600 hover:bg-pink-700 px-4 py-2 rounded-lg transition">
<i class="fab fa-gitlab mr-2"></i>GitLab
</a>
</div>
<button class="md:hidden text-xl">
<i class="fas fa-bars"></i>
</button>
</div>
</nav>
<!-- Hero Section -->
<section class="gradient-bg text-white py-20">
<div class="container mx-auto px-4 flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-10 md:mb-0">
<h1 class="text-4xl md:text-6xl font-bold mb-6">
Syncopated <span class="text-pink-300">ISO</span> Builder
</h1>
<p class="text-xl md:text-2xl mb-8 text-gray-200">
ArchLabs: Re-imagined for research & development
</p>
<div class="flex space-x-4">
<a href="#build" class="bg-pink-600 hover:bg-pink-700 text-white px-6 py-3 rounded-lg font-semibold transition">
<i class="fas fa-download mr-2"></i> Build Now
</a>
<a href="https://gitlab.com/syncopatedX" target="_blank" class="bg-gray-800 hover:bg-gray-700 text-white px-6 py-3 rounded-lg font-semibold transition">
<i class="fab fa-gitlab mr-2"></i> View on GitLab
</a>
</div>
</div>
<div class="md:w-1/2">
<div class="terminal p-6 w-full">
<div class="mb-4">
<span class="prompt">$</span> <span class="command">git clone https://gitlab.com/syncopatedX/syncopated-iso-builder.git</span>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">cd syncopated-iso-builder</span>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">ansible-playbook draft_build_playbook.yml</span>
</div>
<div>
<span class="prompt">$</span> <span class="command">ls -lh out/</span>
</div>
<div class="mt-2">
<span class="text-blue-300">syncopated-2023.07.15-x86_64.iso</span>
</div>
<div class="mt-4">
<span class="prompt">$</span> <span class="cursor"></span>
</div>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section id="features" class="py-16 bg-gray-800">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">
<span class="border-b-4 border-pink-500 pb-2">✨ Key Features</span>
</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Feature 1 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-pink-400 text-4xl mb-4">
<i class="fab fa-linux"></i>
</div>
<h3 class="text-xl font-bold mb-2">Arch Linux Base</h3>
<p class="text-gray-300">
Leverages the flexibility and up-to-date nature of Arch Linux with bleeding-edge packages.
</p>
</div>
<!-- Feature 2 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-blue-400 text-4xl mb-4">
<i class="fas fa-microchip"></i>
</div>
<h3 class="text-xl font-bold mb-2">Multiple Kernel Options</h3>
<div class="flex flex-wrap gap-2 mt-3">
<span class="kernel-badge bg-blue-900 text-blue-100 px-3 py-1 rounded-full text-sm">Standard</span>
<span class="kernel-badge bg-green-900 text-green-100 px-3 py-1 rounded-full text-sm">LTS</span>
<span class="kernel-badge bg-purple-900 text-purple-100 px-3 py-1 rounded-full text-sm">RT</span>
<span class="kernel-badge bg-yellow-900 text-yellow-100 px-3 py-1 rounded-full text-sm">RT-LTS</span>
</div>
</div>
<!-- Feature 3 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-purple-400 text-4xl mb-4">
<i class="fas fa-rocket"></i>
</div>
<h3 class="text-xl font-bold mb-2">CachyOS Integration</h3>
<p class="text-gray-300">
Optional CachyOS repositories and mirrorlist for performance-optimized packages with modern CPU optimizations.
</p>
</div>
<!-- Feature 4 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-green-400 text-4xl mb-4">
<i class="fas fa-boot"></i>
</div>
<h3 class="text-xl font-bold mb-2">Multiple Boot Modes</h3>
<p class="text-gray-300">
Supports BIOS (Syslinux) and UEFI (GRUB) with PXE boot options (NBD, NFS, HTTP).
</p>
</div>
<!-- Feature 5 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-yellow-400 text-4xl mb-4">
<i class="fas fa-paint-brush"></i>
</div>
<h3 class="text-xl font-bold mb-2">Custom Theming</h3>
<p class="text-gray-300">
Includes the beautiful "oomox-soundbot" theme with carefully selected color schemes.
</p>
</div>
<!-- Feature 6 -->
<div class="feature-card bg-gray-700 p-6 rounded-lg transition duration-300">
<div class="text-red-400 text-4xl mb-4">
<i class="fas fa-universal-access"></i>
</div>
<h3 class="text-xl font-bold mb-2">Accessibility</h3>
<p class="text-gray-300">
Boot options with speakup screen reader for both BIOS and UEFI, making it accessible to all users.
</p>
</div>
</div>
</div>
</section>
<!-- Build Section -->
<section id="build" class="py-16 bg-gray-900">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">
<span class="border-b-4 border-pink-500 pb-2">🛠️ Building the ISO</span>
</h2>
<div class="flex flex-col lg:flex-row gap-8 items-center">
<div class="lg:w-1/2">
<div class="terminal p-6">
<div class="mb-4">
<span class="prompt">#</span> <span class="command">pacman -S archiso ansible curl</span>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">git clone https://gitlab.com/syncopatedX/syncopated-iso-builder.git</span>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">cd syncopated-iso-builder</span>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">nano draft_build_playbook.yml</span>
<div class="text-gray-500 text-sm mt-1">
# Configure kernel options by setting variables to true:
# enable_lts_kernel, enable_rt_kernel, enable_rt_lts_kernel
</div>
</div>
<div class="mb-4">
<span class="prompt">$</span> <span class="command">ansible-playbook draft_build_playbook.yml</span>
</div>
<div>
<span class="prompt">$</span> <span class="command">ls -lh out/</span>
</div>
<div class="mt-2 text-green-400">
-rw-r--r-- 1 user user 1.2G Jul 15 14:30 syncopated-2023.07.15-x86_64.iso
</div>
</div>
</div>
<div class="lg:w-1/2">
<h3 class="text-2xl font-bold mb-4">Prerequisites</h3>
<ul class="space-y-3 mb-8">
<li class="flex items-start">
<span class="text-pink-400 mr-2 mt-1"><i class="fas fa-check-circle"></i></span>
<span><code class="bg-gray-700 px-2 py-1 rounded">archiso</code> package installed</span>
</li>
<li class="flex items-start">
<span class="text-pink-400 mr-2 mt-1"><i class="fas fa-check-circle"></i></span>
<span>Ansible for playbook execution</span>
</li>
<li class="flex items-start">
<span class="text-pink-400 mr-2 mt-1"><i class="fas fa-check-circle"></i></span>
<span>Approximately 5GB of free disk space</span>
</li>
</ul>
<h3 class="text-2xl font-bold mb-4">Configuration Options</h3>
<div class="bg-gray-800 p-4 rounded-lg">
<div class="mb-4">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox text-pink-500" checked>
<span class="ml-2">Standard Kernel (linux)</span>
</label>
</div>
<div class="mb-4">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox text-blue-500">
<span class="ml-2">LTS Kernel (linux-lts)</span>
</label>
</div>
<div class="mb-4">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox text-purple-500">
<span class="ml-2">Real-Time Kernel (linux-rt)</span>
</label>
</div>
<div class="mb-4">
<label class="flex items-center">
<input type="checkbox" class="form-checkbox text-yellow-500">
<span class="ml-2">Real-Time LTS Kernel (linux-rt-lts)</span>
</label>
</div>
<div>
<label class="flex items-center">
<input type="checkbox" class="form-checkbox text-green-500">
<span class="ml-2">Enable CachyOS Repositories</span>
</label>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Testing Section -->
<section id="test" class="py-16 bg-gray-800">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">
<span class="border-b-4 border-pink-500 pb-2">🧪 Testing with QEMU</span>
</h2>
<div class="flex flex-col lg:flex-row gap-8">
<div class="lg:w-1/2">
<h3 class="text-2xl font-bold mb-4">Test VM Setup</h3>
<p class="mb-6 text-gray-300">
The <code class="bg-gray-700 px-2 py-1 rounded">run_test_vm.rb</code> script provides an interactive way to test your generated ISO in a virtual environment.
</p>
<div class="bg-gray-900 p-6 rounded-lg mb-6">
<h4 class="text-lg font-semibold mb-3 text-pink-400">Prerequisites:</h4>
<ul class="space-y-2">
<li class="flex items-start">
<span class="text-blue-400 mr-2 mt-1"><i class="fas fa-check"></i></span>
<span>Ruby and required gems (<code class="bg-gray-700 px-1 py-0.5 rounded">tty-prompt</code>, <code class="bg-gray-700 px-1 py-0.5 rounded">shellwords</code>, <code class="bg-gray-700 px-1 py-0.5 rounded">fileutils</code>)</span>
</li>
<li class="flex items-start">
<span class="text-blue-400 mr-2 mt-1"><i class="fas fa-check"></i></span>
<span>QEMU/KVM or Libvirt (<code class="bg-gray-700 px-1 py-0.5 rounded">virt-install</code>) installed</span>
</li>
</ul>
</div>
<div class="terminal p-6">
<div class="mb-4">
<span class="prompt">$</span> <span class="command">ruby run_test_vm.rb</span>
</div>
<div class="text-gray-500 mb-4">
Select virtualization type:
</div>
<div class="mb-4">
<span class="prompt">></span> <span class="text-cyan-300">1) virt-install (Libvirt)</span>
</div>
<div class="mb-4">
<span class="prompt">></span> <span class="text-cyan-300">2) qemu-system-x86_64 (QEMU)</span>
</div>
<div class="text-gray-500 mb-4">
Enter number of vCPUs (default: 2):
</div>
<div class="mb-4">
<span class="prompt">></span> <span class="text-cyan-300">4</span>
</div>
<div class="text-gray-500 mb-4">
Enter memory in MB (default: 2048):
</div>
<div class="mb-4">
<span class="prompt">></span> <span class="text-cyan-300">4096</span>
</div>
<div class="text-gray-500">
Starting VM with selected parameters...
</div>
</div>
</div>
<div class="lg:w-1/2">
<div class="bg-gray-700 p-6 rounded-lg border-l-4 border-pink-500">
<h3 class="text-xl font-bold mb-4 text-pink-400">Testing Workflow</h3>
<ol class="space-y-4">
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">1</span>
<span>Generate your ISO using the build process</span>
</li>
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">2</span>
<span>Run the test VM script and select your virtualization method</span>
</li>
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">3</span>
<span>Configure VM resources (vCPUs, memory)</span>
</li>
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">4</span>
<span>Select the generated ISO file when prompted</span>
</li>
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">5</span>
<span>Choose whether to create a new QCOW2 disk or use existing</span>
</li>
<li class="flex items-start">
<span class="bg-pink-500 text-white rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">6</span>
<span>The script launches the VM with your ISO</span>
</li>
</ol>
</div>
<div class="mt-8 bg-gray-900 p-6 rounded-lg">
<h4 class="text-lg font-semibold mb-3 text-blue-400">Troubleshooting Tips:</h4>
<ul class="space-y-2 text-gray-300">
<li class="flex items-start">
<span class="text-yellow-400 mr-2 mt-1"><i class="fas fa-exclamation-triangle"></i></span>
<span>Ensure your user is in the <code class="bg-gray-700 px-1 py-0.5 rounded">kvm</code> and <code class="bg-gray-700 px-1 py-0.5 rounded">libvirt</code> groups</span>
</li>
<li class="flex items-start">
<span class="text-yellow-400 mr-2 mt-1"><i class="fas fa-exclamation-triangle"></i></span>
<span>Check BIOS settings for virtualization support (VT-x/AMD-V)</span>
</li>
<li class="flex items-start">
<span class="text-yellow-400 mr-2 mt-1"><i class="fas fa-exclamation-triangle"></i></span>
<span>For nested virtualization, additional kernel parameters may be needed</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- Bootstrap Section -->
<section id="bootstrap" class="py-16 bg-gray-900">
<div class="container mx-auto px-4">
<h2 class="text-3xl font-bold text-center mb-12">
<span class="border-b-4 border-pink-500 pb-2">⚙️ Post-Installation Bootstrap</span>
</h2>
<div class="flex flex-col lg:flex-row gap-8">
<div class="lg:w-1/2">
<div class="terminal p-6 h-full">
<div class="mb-4">
<span class="prompt">$</span> <span class="command">cat /usr/local/bin/bootstrap.sh</span>
</div>
<div class="text-gray-500 mb-4">
#!/bin/bash
</div>
<div class="text-gray-500 mb-4">
# Detect distribution
</div>
<div class="text-blue-300 mb-4">
if [ -f /etc/arch-release ]; then
</div>
<div class="text-blue-300 mb-4 ml-4">
sudo pacman -S --needed base-devel ansible git openssh rsync
</div>
<div class="text-blue-300 mb-4">
elif [ -f /etc/fedora-release ]; then
</div>
<div class="text-blue-300 mb-4 ml-4">
sudo dnf install -y ansible git openssh-clients rsync
</div>
<div class="text-blue-300 mb-4">
else # Assume Debian-based
</div>
<div class="text-blue-300 mb-4 ml-4">
sudo apt-get install -y ansible git openssh-client rsync
</div>
<div class="text-gray-500 mb-4">
# Set up passwordless sudo
</div>
<div class="text-green-300 mb-4">
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USER
</div>
<div class="text-gray-500 mb-4">
# Configure Git
</div>
<div class="text-green-300 mb-4">
git config --global user.name "Your Name"
</div>
<div class="text-green-300 mb-4">
git config --global user.email "your@email.com"
</div>
<div class="text-gray-500 mb-4">
# Clone dotfiles and run Ansible
</div>
<div class="text-green-300">
git clone https://gitlab.com/syncopatedX/SyncopatedOS.git ~/.dotfiles
</div>
<div class="text-green-300">
cd ~/.dotfiles && ansible-playbook playbooks/full.yml
</div>
</div>
</div>
<div class="lg:w-1/2">
<h3 class="text-2xl font-bold mb-4">Bootstrap Process</h3>
<p class="mb-6 text-gray-300">
The <code class="bg-gray-700 px-2 py-1 rounded">bootstrap.sh</code> script automates the setup of a newly installed system with all necessary tools and configurations.
</p>
<div class="space-y-6">
<div class="bg-gray-800 p-5 rounded-lg">
<div class="flex items-start">
<div class="bg-pink-500 text-white rounded-full w-8 h-8 flex items-center justify-center mr-4 flex-shrink-0">
<i class="fas fa-box-open"></i>
</div>
<div>
<h4 class="font-bold mb-1">Package Installation</h4>
<p class="text-gray-400 text-sm">
Installs essential packages based on detected distribution (Arch, Fedora, or Debian-based).
</p>
</div>
</div>
</div>
<div class="bg-gray-800 p-5 rounded-lg">
<div class="flex items-start">
<div class="bg-blue-500 text-white rounded-full w-8 h-8 flex items-center justify-center mr-4 flex-shrink-0">
<i class="fas fa-key"></i>
</div>
<div>
<h4 class="font-bold mb-1">Passwordless Sudo</h4>
<p class="text-gray-400 text-sm">
Configures passwordless sudo for the current user for seamless administration.
</p>
</div>
</div>
</div>
<div class="bg-gray-800 p-5 rounded-lg">
<div class="flex items-start">
<div class="bg-purple-500 text-white rounded-full w-8 h-8 flex items-center justify-center mr-4 flex-shrink-0">
<i class="fab fa-git-alt"></i>
</div>
<div>
<h4 class="font-bold mb-1">Git Configuration</h4>
<p class="text-gray-400 text-sm">
Sets up basic Git configuration with your name and email.
</p>
</div>
</div>
</div>
<div class="bg-gray-800 p-5 rounded-lg">
<div class="flex items-start">
<div class="bg-green-500 text-white rounded-full w-8 h-8 flex items-center justify-center mr-4 flex-shrink-0">
<i class="fas fa-code-branch"></i>
</div>
<div>
<h4 class="font-bold mb-1">Dotfiles Setup</h4>
<p class="text-gray-400 text-sm">
Clones the SyncopatedOS dotfiles repository and executes the Ansible playbook for full system configuration.
</p>
</div>
</div>
</div>
</div>
<div class="mt-8 bg-gray-800 p-5 rounded-lg border-l-4 border-yellow-500">
<h4 class="text-lg font-semibold mb-2 text-yellow-400">Customization Notes:</h4>
<p class="text-gray-300 text-sm">
Before running the bootstrap script, you may want to edit it to:
</p>
<ul class="list-disc list-inside mt-2 text-sm text-gray-400 space-y-1">
<li>Add your actual Git username and email</li>
<li>Include additional packages specific to your needs</li>
<li>Modify the dotfiles repository URL if using a personal fork</li>
<li>Add SSH key transfer from another host if needed</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="gradient-bg text-white py-8">
<div class="container mx-auto px-4">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="mb-4 md:mb-0">
<div class="flex items-center space-x-2">
<i class="fab fa-linux text-2xl"></i>
<span class="font-bold text-xl">Syncopated<span class="text-pink-300">X</span></span>
</div>
<p class="text-gray-300 mt-2 text-sm">
ArchLabs Re-imagined for research & development
</p>
</div>
<div class="flex space-x-6">
<a href="https://gitlab.com/syncopatedX" target="_blank" class="text-2xl hover:text-pink-300 transition">
<i class="fab fa-gitlab"></i>
</a>
<a href="#" class="text-2xl hover:text-pink-300 transition">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="text-2xl hover:text-pink-300 transition">
<i class="fab fa-discord"></i>
</a>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-6 text-center text-gray-400 text-sm">
<p>
Syncopated ISO Builder is a continuation of the ArchLabs project. Licensed under GPL-3.0.
</p>
<p class="mt-2">
&copy; 2023 SyncopatedX. All rights reserved.
</p>
</div>
</div>
</footer>
<script>
// Simple smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=b08x/syncopatedx" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>