From febb51df3ba698852e3ac94f18d377e6f2dbcf1d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Sep 2025 10:07:09 +0000 Subject: [PATCH 1/4] Initial plan From 91e9cd884766dd15249f776ab92d6aa71ac02eed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Sep 2025 10:19:42 +0000 Subject: [PATCH 2/4] Implement core TunaOS documentation site with homepage and variant pages Co-authored-by: hanthor <5840441+hanthor@users.noreply.github.com> --- docs/albacore.md | 73 ++++++++ docs/bonito.md | 66 ++++++++ docs/installation.md | 111 +++++++++++++ docs/intro.md | 70 ++++++++ docs/skipjack.md | 65 ++++++++ docs/system-requirements.md | 156 ++++++++++++++++++ docs/tuna-os.md | 121 -------------- docs/yellowfin.md | 81 +++++++++ docusaurus.config.ts | 94 ++++++----- src/components/HomepageFeatures/index.tsx | 32 ++-- .../HomepageFeatures/styles.module.css | 5 + src/pages/index.module.css | 84 ++++++++++ src/pages/index.tsx | 125 ++++++++++++-- src/pages/markdown-page.md | 7 - 14 files changed, 895 insertions(+), 195 deletions(-) create mode 100644 docs/albacore.md create mode 100644 docs/bonito.md create mode 100644 docs/installation.md create mode 100644 docs/intro.md create mode 100644 docs/skipjack.md create mode 100644 docs/system-requirements.md delete mode 100644 docs/tuna-os.md create mode 100644 docs/yellowfin.md delete mode 100644 src/pages/markdown-page.md diff --git a/docs/albacore.md b/docs/albacore.md new file mode 100644 index 0000000..ce26e4f --- /dev/null +++ b/docs/albacore.md @@ -0,0 +1,73 @@ +--- +sidebar_position: 2 +--- + +# Albacore (AlmaLinux) + +**Based on:** [AlmaLinux 10.0](https://almalinux.org/blog/2025-05-27-welcoming-almalinux-10/) + +Stable enterprise-grade desktop experience built on AlmaLinux foundation. + +## Features + +- โœจ **x86_64/v2** microarchitecture support for older CPUs (pre-2013) +- ๐Ÿ–ฅ๏ธ **SPICE support** for qemu/libvirt virtualization +- ๐Ÿข **Enterprise Linux** foundation with AlmaLinux reliability + +## Downloads + +### Regular Edition +**Image:** `ghcr.io/tuna-os/albacore:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/albacore-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/albacore-amd64-v2.iso) +- [arm64](https://download.tunaos.org/albacore-arm64.iso) + +### DX (Developer Experience) +**Image:** `ghcr.io/tuna-os/albacore-dx:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/albacore-dx-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/albacore-dx-amd64-v2.iso) +- [arm64](https://download.tunaos.org/albacore-dx-arm64.iso) + +### GDX (Graphical Developer Experience) +**Image:** `ghcr.io/tuna-os/albacore-gdx:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/albacore-gdx-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/albacore-gdx-amd64-v2.iso) +- [arm64](https://download.tunaos.org/albacore-gdx-arm64.iso) + +## Installation + +### Using Container Image +```bash +podman pull ghcr.io/tuna-os/albacore:latest +``` + +### Building ISO +```bash +curl https://raw.githubusercontent.com/Tuna-OS/tunaOS/refs/heads/main/build-iso.sh \ +-o build-bootc.sh +chmod +x build-bootc.sh + +# Build Albacore ISO +sudo ./build-bootc.sh iso ghcr.io/tuna-os/albacore:latest +``` + +## Differences from Project Bluefin + +For general functionality, refer to the [Project Bluefin Documentation](https://docs.projectbluefin.io). + +AlmaLinux-specific differences: +- Based on AlmaLinux 10 instead of CentOS Stream +- Enterprise Linux package ecosystem +- For AlmaLinux-specific features, see [AlmaLinux Wiki](https://wiki.almalinux.org) + +## Community Support + +- **AlmaLinux**: [AlmaLinux Atomic SIG](https://chat.almalinux.org/almalinux/channels/sigatomic) +- **Universal Blue**: [Discord Community](https://discord.gg/WEu6BdFEtp) +- **TunaOS**: [Matrix Chat](https://matrix.to/#/%23tunaos:reilly.asia) diff --git a/docs/bonito.md b/docs/bonito.md new file mode 100644 index 0000000..b87fc19 --- /dev/null +++ b/docs/bonito.md @@ -0,0 +1,66 @@ +--- +sidebar_position: 4 +--- + +# Bonito (Fedora) + +**Based on:** Fedora 42 + +Cutting-edge experience with Bluefin LTS tooling ported to the latest Fedora release. + +:::note Development Status +Bonito is still needing some work to get into a functional state. Check the [GitHub repository](https://github.com/tuna-os/tunaOS) for current progress. +::: + +## Features + +- ๐Ÿš€ **Latest Fedora** with cutting-edge packages +- ๐Ÿ”„ **Bluefin LTS tooling** ported to modern Fedora +- โšก **Pure bootc** implementation (unlike upstream Bluefin) + +## Downloads + +### Regular Edition +**Image:** `ghcr.io/tuna-os/bonito:latest` + +**ISOs:** *Coming soon - check back for updates* + +## Installation + +### Using Container Image +```bash +podman pull ghcr.io/tuna-os/bonito:latest +``` + +### Building ISO +```bash +curl https://raw.githubusercontent.com/Tuna-OS/tunaOS/refs/heads/main/build-iso.sh \ +-o build-bootc.sh +chmod +x build-bootc.sh + +# Build Bonito ISO (when available) +sudo ./build-bootc.sh iso ghcr.io/tuna-os/bonito:latest +``` + +## Differences from Project Bluefin + +Bonito represents an experimental approach: + +- **Pure bootc**: Unlike upstream Bluefin which uses ostree, Bonito is built entirely on bootc +- **Fedora 42 base**: Latest and greatest Fedora packages +- **Modern toolchain**: Cutting-edge development environment + +For general Bluefin functionality, refer to the [Project Bluefin Documentation](https://docs.projectbluefin.io). + +## Development Status + +This variant is under active development. Contributions welcome! Track progress: + +- **Issues**: [GitHub Issues](https://github.com/tuna-os/tunaOS/issues) +- **Source**: [GitHub Repository](https://github.com/tuna-os/tunaOS) + +## Community Support + +- **Fedora**: [Fedora Discussion](https://discussion.fedoraproject.org/) +- **Universal Blue**: [Discord Community](https://discord.gg/WEu6BdFEtp) +- **TunaOS**: [Matrix Chat](https://matrix.to/#/%23tunaos:reilly.asia) \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..ab2481a --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,111 @@ +--- +sidebar_position: 6 +--- + +# Installation Guide + +TunaOS images can be installed in several ways, depending on your needs and preferences. + +## System Requirements + +| Component | Minimum | Recommended | +|-----------|---------|-------------| +| **CPU** | x86_64, ARM64 | x86_64, ARM64 | +| **RAM** | 4 GB | 8 GB+ | +| **Storage** | 20 GB | 50 GB+ | + +### Architecture Support + +- **x86_64**: Standard 64-bit Intel/AMD processors +- **x86_64_v2**: Optimized for older CPUs (pre-2013) - available for Albacore and Yellowfin +- **ARM64**: 64-bit ARM processors (Apple Silicon, Raspberry Pi 4+, etc.) + +## Installation Methods + +### Method 1: Download Pre-built ISOs + +The easiest way to get started is downloading pre-built ISO images: + +#### Albacore (AlmaLinux 10) +- [x86_64](https://download.tunaos.org/albacore-amd64.iso) | [x86_64_v2](https://download.tunaos.org/albacore-amd64-v2.iso) | [arm64](https://download.tunaos.org/albacore-arm64.iso) +- [DX x86_64](https://download.tunaos.org/albacore-dx-amd64.iso) | [DX x86_64_v2](https://download.tunaos.org/albacore-dx-amd64-v2.iso) | [DX arm64](https://download.tunaos.org/albacore-dx-arm64.iso) +- [GDX x86_64](https://download.tunaos.org/albacore-gdx-amd64.iso) | [GDX x86_64_v2](https://download.tunaos.org/albacore-gdx-amd64-v2.iso) | [GDX arm64](https://download.tunaos.org/albacore-gdx-arm64.iso) + +#### Yellowfin (AlmaLinux Kitten 10) +- [x86_64](https://download.tunaos.org/yellowfin-amd64.iso) | [x86_64_v2](https://download.tunaos.org/yellowfin-amd64-v2.iso) | [arm64](https://download.tunaos.org/yellowfin-arm64.iso) +- [DX x86_64](https://download.tunaos.org/yellowfin-dx-amd64.iso) | [DX x86_64_v2](https://download.tunaos.org/yellowfin-dx-amd64-v2.iso) | [DX arm64](https://download.tunaos.org/yellowfin-dx-arm64.iso) +- [GDX x86_64](https://download.tunaos.org/yellowfin-gdx-amd64.iso) | [GDX x86_64_v2](https://download.tunaos.org/yellowfin-gdx-amd64-v2.iso) | [GDX arm64](https://download.tunaos.org/yellowfin-gdx-arm64.iso) + +### Method 2: Build Your Own ISO + +Use the TunaOS build script to create custom ISOs: + +```bash +# Download the build script +curl https://raw.githubusercontent.com/Tuna-OS/tunaOS/refs/heads/main/build-iso.sh \ +-o build-bootc.sh +chmod +x build-bootc.sh + +# Build an ISO for your preferred variant +sudo ./build-bootc.sh iso ghcr.io/tuna-os/yellowfin:latest + +# Or build a VM image +sudo ./build-bootc.sh qcow2 ghcr.io/tuna-os/yellowfin:latest +``` + +### Method 3: Container Runtime + +For testing or container-based workflows: + +```bash +# Pull your preferred variant +podman pull ghcr.io/tuna-os/albacore:latest +podman pull ghcr.io/tuna-os/yellowfin:latest +podman pull ghcr.io/tuna-os/bonito:latest +podman pull ghcr.io/tuna-os/skipjack:latest +``` + +## Post-Installation + +After installation, TunaOS provides: + +### Pre-installed Applications +- **GNOME 48.3**: Latest GNOME desktop environment +- **Homebrew**: Package manager for CLI tools and fonts +- **Flathub**: Full access to Flatpak applications + +### Getting Started +1. Complete the initial setup wizard +2. Install additional software via Flathub (Software app) +3. Use Homebrew for command-line tools: `brew install ` +4. Check out the [Project Bluefin documentation](https://docs.projectbluefin.io) for general usage + +### Variant-Specific Features + +#### DX (Developer Experience) +- libvirt virtualization +- Docker containers +- VSCode IDE +- Development toolchains + +#### GDX (Graphical Developer Experience) +- NVIDIA drivers and CUDA +- AI/ML development tools +- Graphics and video editing software + +## Troubleshooting + +### Boot Issues +- Ensure Secure Boot is disabled or properly configured +- Check system requirements are met +- Try the x86_64_v2 variant for older hardware + +### Installation Problems +- Verify ISO integrity after download +- Use a different USB creation tool (Ventoy, Rufus, dd) +- Check available disk space + +### Getting Help +- ๐Ÿ› **Report Issues**: [GitHub Issues](https://github.com/tuna-os/tunaOS/issues) +- ๐Ÿ’ฌ **Chat**: [Matrix #tunaos:reilly.asia](https://matrix.to/#/%23tunaos:reilly.asia) +- ๐ŸŽฎ **Discord**: [Universal Blue Community](https://discord.gg/WEu6BdFEtp) \ No newline at end of file diff --git a/docs/intro.md b/docs/intro.md new file mode 100644 index 0000000..0a247ad --- /dev/null +++ b/docs/intro.md @@ -0,0 +1,70 @@ +--- +sidebar_position: 1 +--- + +# Welcome to TunaOS + +## A Collection of Cloud-Native Enterprise Linux OS Images + +TunaOS is a curated collection of **Bootc-based desktop operating systems** that are forks of [Bluefin LTS](https://github.com/ublue-os/bluefin-lts), built on modern container technology. This is an exploration of the flexibility of Bootc and a hope that some people believe in the Enterprise Linux Desktop. + +The plan is to provide a stable experience with up-to-date GNOME and modern tooling. + +## โœจ Key Features + +- **Latest GNOME**: Don't get stuck on a 3-year-old GNOME. We try to backport the latest Desktop features and bring them to the Enterprise Desktop + - Currently we're shipping GNOME `48.3` while EL will be stuck on GNOME `47` for the foreseeable future +- **Anaconda WebUI & Live ISO**: Modern installation experience (pending upstream) +- **Homebrew**: We bake Homebrew into the image, so all your CLI apps (and fonts) are just a brew command away +- **Flathub by Default**: This is a no-brainer that isn't preset in our base images. Actually get all the Flatpaks that are generally available on the net + +## ๐Ÿ  Available Variants + +We ship 3 versions for each base, matching upstream: + +- **Regular**: See [Bluefin's excellent documentation](https://docs.projectbluefin.io/) for info +- **DX (Developer Experience)**: Adding libvirt, Docker, VSCode, etc. [Learn more](https://docs.projectbluefin.io/dx) +- **GDX (Graphical Developer Experience)**: Adding Nvidia drivers and CUDA. For Nvidia users/AI/VFX devs. [Learn more](https://docs.projectbluefin.io/gdx) + +### Images Available + +- **[Albacore](albacore)** - AlmaLinux 10 based +- **[Yellowfin](yellowfin)** - AlmaLinux Kitten 10 based (closest to upstream Bluefin LTS) +- **[Bonito](bonito)** - Fedora 42 based (cutting-edge) +- **[Skipjack](skipjack)** - CentOS 10 based + +## ๐Ÿ“‹ System Requirements + +| Component | Minimum | Recommended | +|-----------|---------|-------------| +| **CPU** | x86_64, ARM64 | x86_64, ARM64 | +| **RAM** | 4 GB | 8 GB+ | +| **Storage** | 20 GB | 50 GB+ | + +## ๐Ÿš€ Quick Start + +Ready to get started? Check out our [installation guide](installation) or download ISOs for your preferred variant: + +- [Albacore Downloads](albacore#downloads) +- [Yellowfin Downloads](yellowfin#downloads) +- [Bonito Downloads](bonito#downloads) +- [Skipjack Downloads](skipjack#downloads) + +## ๐Ÿ“š External Documentation + +Since TunaOS is based on Bluefin LTS, most documentation can be found at: + +- [Project Bluefin Documentation](https://docs.projectbluefin.io) - Primary reference for shared functionality +- [AlmaLinux Wiki](https://wiki.almalinux.org) - For AlmaLinux-specific information +- [Universal Blue](https://universal-blue.org/) - Community and ecosystem info + +## ๐Ÿค Community & Support + +- ๐Ÿ› **Report Issues**: [GitHub Issues](https://github.com/tuna-os/tunaOS/issues) +- ๐Ÿ’ฌ **Matrix Chat**: [#tunaos:reilly.asia](https://matrix.to/#/%23tunaos:reilly.asia) +- ๐ŸŽฎ **Discord**: [Universal Blue Community](https://discord.gg/WEu6BdFEtp) +- ๐Ÿ’ฌ **AlmaLinux Atomic SIG**: [AlmaLinux Atomic SIG](https://chat.almalinux.org/almalinux/channels/sigatomic) + +--- + +*TunaOS is made by James in his free time, powered by [Bootc](https://github.com/bootc-dev/bootc), and inspired by [Bluefin](https://projectbluefin.io) and the [Universal Blue](https://universal-blue.org/) Community.* \ No newline at end of file diff --git a/docs/skipjack.md b/docs/skipjack.md new file mode 100644 index 0000000..03c6319 --- /dev/null +++ b/docs/skipjack.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 5 +--- + +# Skipjack (CentOS) + +**Based on:** CentOS 10 + +CentOS-based variant providing a stable enterprise foundation. + +:::note Development Status +This variant is currently under development. Check the [GitHub repository](https://github.com/tuna-os/tunaOS) for current progress. +::: + +## Features + +- ๐Ÿข **CentOS 10** enterprise foundation +- ๐Ÿ”„ **Bootc-based** modern container approach +- ๐Ÿ›ก๏ธ **Enterprise stability** with modern tooling + +## Downloads + +### Regular Edition +**Image:** `ghcr.io/tuna-os/skipjack:latest` + +**ISOs:** *Coming soon - check back for updates* + +## Installation + +### Using Container Image +```bash +podman pull ghcr.io/tuna-os/skipjack:latest +``` + +### Building ISO +```bash +curl https://raw.githubusercontent.com/Tuna-OS/tunaOS/refs/heads/main/build-iso.sh \ +-o build-bootc.sh +chmod +x build-bootc.sh + +# Build Skipjack ISO (when available) +sudo ./build-bootc.sh iso ghcr.io/tuna-os/skipjack:latest +``` + +## Differences from Project Bluefin + +For general functionality, refer to the [Project Bluefin Documentation](https://docs.projectbluefin.io). + +CentOS-specific features: +- Based on CentOS 10 stream packages +- Enterprise Linux ecosystem compatibility +- Upstream CentOS development alignment + +## Development Status + +This variant is under active development. Contributions welcome! Track progress: + +- **Issues**: [GitHub Issues](https://github.com/tuna-os/tunaOS/issues) +- **Source**: [GitHub Repository](https://github.com/tuna-os/tunaOS) + +## Community Support + +- **CentOS**: [CentOS Stream Discussion](https://forums.centos.org/) +- **Universal Blue**: [Discord Community](https://discord.gg/WEu6BdFEtp) +- **TunaOS**: [Matrix Chat](https://matrix.to/#/%23tunaos:reilly.asia) \ No newline at end of file diff --git a/docs/system-requirements.md b/docs/system-requirements.md new file mode 100644 index 0000000..2856628 --- /dev/null +++ b/docs/system-requirements.md @@ -0,0 +1,156 @@ +--- +sidebar_position: 7 +--- + +# System Requirements + +Before installing TunaOS, ensure your system meets the following requirements. + +## Hardware Requirements + +### Minimum Requirements + +| Component | Specification | +|-----------|---------------| +| **Processor** | x86_64 (64-bit Intel/AMD) or ARM64 | +| **Memory** | 4 GB RAM | +| **Storage** | 20 GB free disk space | +| **Graphics** | Integrated graphics or discrete GPU | +| **Network** | Internet connection for initial setup | + +### Recommended Requirements + +| Component | Specification | +|-----------|---------------| +| **Processor** | x86_64 or ARM64 with 2+ cores | +| **Memory** | 8 GB RAM or more | +| **Storage** | 50 GB+ SSD storage | +| **Graphics** | Dedicated GPU (for GDX variant) | +| **Network** | Broadband internet connection | + +## Architecture Support + +### x86_64 (Standard) +- Modern Intel and AMD 64-bit processors +- Most common desktop and laptop systems +- Full feature support + +### x86_64_v2 (Legacy Compatibility) +- Older CPUs from before 2013 +- Available for Albacore and Yellowfin variants +- Slightly reduced performance optimizations + +### ARM64 +- Apple Silicon Macs (M1, M2, M3, etc.) +- Raspberry Pi 4 and newer +- Other ARM64 single-board computers +- Modern ARM-based laptops and desktops + +## Storage Considerations + +### Disk Space Usage +- **Base installation**: ~15-20 GB +- **With applications**: 25-30 GB typical usage +- **Developer tools** (DX variant): +5-10 GB +- **Graphics tools** (GDX variant): +10-15 GB + +### Storage Types +- **SSD recommended**: Better performance and responsiveness +- **HDD supported**: Minimum 7200 RPM for acceptable performance +- **NVMe**: Optimal performance for development workflows + +## Memory Requirements by Variant + +### Regular Edition +- **Minimum**: 4 GB RAM +- **Recommended**: 8 GB RAM +- **Optimal**: 16 GB+ RAM + +### DX (Developer Experience) +- **Minimum**: 6 GB RAM +- **Recommended**: 16 GB RAM +- **Optimal**: 32 GB+ RAM (for VMs and containers) + +### GDX (Graphical Developer Experience) +- **Minimum**: 8 GB RAM +- **Recommended**: 16 GB RAM +- **Optimal**: 32 GB+ RAM (for AI/ML workloads) + +## Graphics Requirements + +### Integrated Graphics +- Intel HD Graphics 4000 or newer +- AMD Radeon R5/R7 series or newer +- Apple integrated graphics (M-series) + +### Discrete Graphics + +#### For Regular/DX Variants +- Any modern GPU with open-source drivers +- NVIDIA cards (with nouveau drivers) +- AMD Radeon cards (with AMDGPU drivers) + +#### For GDX Variant +- **NVIDIA GPU recommended** (GTX 1060 or newer) +- CUDA support for AI/ML applications +- Minimum 4 GB VRAM for graphics work +- 8 GB+ VRAM recommended for AI/ML + +## Network Requirements + +### Installation +- Internet connection required for: + - Initial system updates + - Flatpak application installation + - Homebrew package downloads + +### Bandwidth Recommendations +- **Minimum**: 10 Mbps for comfortable updates +- **Recommended**: 25 Mbps+ for development workflows +- **Optimal**: 100 Mbps+ for container workflows + +## UEFI/BIOS Requirements + +### Supported Boot Methods +- **UEFI** (recommended) +- **Legacy BIOS** (limited support) + +### Security Features +- **Secure Boot**: Supported (may need configuration) +- **TPM**: Optional but recommended +- **Intel TXT/AMD SVM**: Supported for virtualization + +## Compatibility Notes + +### Supported Hardware +- Most standard PC hardware from 2013 onwards +- Apple Silicon Macs (ARM64 variant) +- Many ARM single-board computers + +### Known Limitations +- Very old hardware may require x86_64_v2 variants +- Some proprietary hardware may need additional drivers +- WiFi adapters may need firmware packages + +### Virtualization +- **Hypervisors**: VMware, VirtualBox, QEMU/KVM, Parallels +- **Minimum VM specs**: 4 GB RAM, 25 GB disk +- **Recommended VM specs**: 8 GB RAM, 50 GB disk + +## Before Installation + +### Checklist +- [ ] Verify hardware compatibility +- [ ] Backup important data +- [ ] Check internet connection +- [ ] Download appropriate ISO variant +- [ ] Prepare installation media (USB drive) +- [ ] Review installation method + +### Choosing Your Variant +- **Albacore**: Enterprise stability (AlmaLinux 10) +- **Yellowfin**: Upstream compatibility (AlmaLinux Kitten 10) +- **Bonito**: Cutting-edge (Fedora 42) - *Development* +- **Skipjack**: CentOS base - *Development* + +Need help deciding? Check our [installation guide](installation) or ask in our [Matrix chat](https://matrix.to/#/%23tunaos:reilly.asia). \ No newline at end of file diff --git a/docs/tuna-os.md b/docs/tuna-os.md deleted file mode 100644 index 218d52b..0000000 --- a/docs/tuna-os.md +++ /dev/null @@ -1,121 +0,0 @@ -
- -# ๐ŸŸ TunaOS -### *A Collection of Atomic Desktop Operating Systems* - -*Specialized forks of [Bluefin LTS](https://github.com/ublue-os/bluefin-lts) for different use cases* - ---- - -[![License](https://img.shields.io/github/license/hanthor/tunaOS?style=for-the-badge)](LICENSE) -[![GitHub Stars](https://img.shields.io/github/stars/hanthor/tunaOS?style=for-the-badge)](https://github.com/hanthor/tunaOS/stargazers) -[![Issues](https://img.shields.io/github/issues/hanthor/tunaOS?style=for-the-badge)](https://github.com/hanthor/tunaOS/issues) - -
- -## ๐Ÿš€ About TunaOS - -TunaOS is a curated collection of **Atomic desktop operating systems** that are forks of Bluefin, built on modern container technology. Each variant is carefully crafted for specific use cases, offering the reliability of bootc-based systems with the flexibility to choose your ideal Linux experience. - -## ๐Ÿ  Available Variants - -### ๐Ÿ  Yellowfin -[![Build Status](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml/badge.svg?branch=yellowfin)](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml) - -**Base:** [AlmaLinux Kitten 10](https://wiki.almalinux.org/development/almalinux-os-kitten-10.html#container-images) -**Tag:** `a10s` -**Branch:** [yellowfin](https://github.com/hanthor/tunaOS/tree/yellowfin) - -The closest to upstream Bluefin LTS experience with enhanced capabilities: -- โœจ **x86_64/v2** microarchitecture support for better performance -- ๐Ÿ–ฅ๏ธ **SPICE support** for qemu/libvirt virtualization -- ๐Ÿ”„ **Compatible with upstream LTS** because it's based on CentOS - ---- - -### ๐ŸŸ Albacore -[![Build Status](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml/badge.svg?branch=albacore)](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml) - -**Base:** AlmaLinux 10.0 -**Tag:** `10` -**Branch:** [albacore](https://github.com/hanthor/tunaOS/tree/albacore) - -Stable enterprise-grade desktop experience built on AlmaLinux foundation. - -#### ๐Ÿ–ฅ๏ธ Albacore Server -[![Build Status](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml/badge.svg?branch=albacore-server)](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml) - -**Tag:** `a10-server` -**Branch:** [albacore-server](https://github.com/hanthor/tunaOS/tree/albacore-server) - -Server-optimized variant with: -- ๐Ÿšซ **No GDM** (display manager disabled) -- ๐Ÿ’ป **Virtualization Host** capabilities included -- ๐Ÿข **Perfect for** server deployments and virtualization hosts - ---- - -### ๐ŸŽฃ Bluefin Tuna -[![Build Status](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml/badge.svg?branch=bluefin-tuna)](https://github.com/hanthor/tunaOS/actions/workflows/build-regular.yml) - -**Base:** Fedora 42 -**Tag:** `F42` -**Branch:** [bluefin-tuna](https://github.com/hanthor/tunaOS/tree/bluefin-tuna) - -Cutting-edge experience with Bluefin LTS tooling ported to the latest Fedora release. - -## ๐Ÿ“‹ System Requirements - -| Component | Minimum | Recommended | -|-----------|---------|-------------| -| **CPU** | x86_64, ARM64 | x86_64/v2 or better, ARM64 | -| **RAM** | 4 GB | 8 GB+ | -| **Storage** | 20 GB | 50 GB+ | -| **Architecture** | AMD64, ARM64 | AMD64/v2, ARM64 | - -## ๐Ÿ› ๏ธ Installation - -### Container Runtime -```bash -podman pull ghcr.io/hanthor/tunaos:yellowfin # or your preferred variant -``` - -### Bootable Image -Use [bootc-image-builder](https://github.com/osbuild/bootc-image-builder) to create installation media: - -```bash -sudo podman run --rm -it --privileged \ - -v $(pwd):/output \ - quay.io/centos-bootc/bootc-image-builder:latest \ - build --type iso \ - ghcr.io/hanthor/tunaos:yellowfin -``` - -## ๐Ÿงช Current Status - -> **Note:** These images are currently in active development. The maintainer is daily-driving `yellowfin` and planning to deploy `albacore-server` as a Proxmox replacement. - -## ๐Ÿค Community & Support - -We'd love to hear from you! Whether you're using these images or just curious: - -- ๐Ÿ› **Report Issues:** [GitHub Issues](https://github.com/hanthor/tunaOS/issues) -- ๐Ÿ’ฌ **Chat with us:** [AlmaLinux Atomic SIG](https://chat.almalinux.org/almalinux/channels/sigatomic) -- ๐ŸŽฎ **Discord:** [Universal Blue Community](https://discord.gg/WEu6BdFEtp) - -## ๐Ÿ“š Documentation - -- [AlmaLinux Kitten 10 Differences](https://wiki.almalinux.org/development/almalinux-os-kitten-10.html#how-is-almalinux-os-kitten-different-from-centos-stream) -- [Bluefin LTS Documentation](https://github.com/ublue-os/bluefin-lts) -- [Project Bluefin Documentation](https://docs.projectbluefin.io) -- [Universal Blue Guide](https://universal-blue.org/) - ---- - -
- -**Made by James in his free time** - -*Licensed under [Apache 2.0](LICENSE)* - -
diff --git a/docs/yellowfin.md b/docs/yellowfin.md new file mode 100644 index 0000000..0544d79 --- /dev/null +++ b/docs/yellowfin.md @@ -0,0 +1,81 @@ +--- +sidebar_position: 3 +--- + +# Yellowfin (AlmaLinux Kitten) + +**Based on:** [AlmaLinux Kitten 10](https://wiki.almalinux.org/development/almalinux-os-kitten-10.html#container-images) + +The closest to upstream Bluefin LTS experience with enhanced capabilities. + +## Features + +- โœจ **x86_64/v2** microarchitecture support for older CPUs (pre-2013) +- ๐Ÿ–ฅ๏ธ **SPICE support** for qemu/libvirt virtualization +- ๐Ÿ”„ **Compatible with upstream LTS** because Kitten is based on CentOS + +## Downloads + +### Regular Edition +**Image:** `ghcr.io/tuna-os/yellowfin:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/yellowfin-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/yellowfin-amd64-v2.iso) +- [arm64](https://download.tunaos.org/yellowfin-arm64.iso) + +### DX (Developer Experience) +**Image:** `ghcr.io/tuna-os/yellowfin-dx:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/yellowfin-dx-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/yellowfin-dx-amd64-v2.iso) +- [arm64](https://download.tunaos.org/yellowfin-dx-arm64.iso) + +### GDX (Graphical Developer Experience) +**Image:** `ghcr.io/tuna-os/yellowfin-gdx:latest` + +**ISOs:** +- [x86_64](https://download.tunaos.org/yellowfin-gdx-amd64.iso) +- [x86_64_v2](https://download.tunaos.org/yellowfin-gdx-amd64-v2.iso) +- [arm64](https://download.tunaos.org/yellowfin-gdx-arm64.iso) + +## Installation + +### Using Container Image +```bash +podman pull ghcr.io/tuna-os/yellowfin:latest +``` + +### Building ISO +```bash +curl https://raw.githubusercontent.com/Tuna-OS/tunaOS/refs/heads/main/build-iso.sh \ +-o build-bootc.sh +chmod +x build-bootc.sh + +# Build Yellowfin ISO +sudo ./build-bootc.sh iso ghcr.io/tuna-os/yellowfin:latest +``` + +## AlmaLinux Kitten Differences + +Yellowfin is based on AlmaLinux Kitten 10, which provides: + +- **CentOS Stream compatibility**: Kitten tracks CentOS Stream more closely than regular AlmaLinux +- **Upstream compatibility**: Better alignment with Bluefin LTS expectations +- **Updated packages**: More frequent updates aligned with upstream development + +For detailed information about AlmaLinux Kitten differences, see: +[AlmaLinux Kitten 10 Documentation](https://wiki.almalinux.org/development/almalinux-os-kitten-10.html#how-is-almalinux-os-kitten-different-from-centos-stream) + +## Differences from Project Bluefin + +For general functionality, refer to the [Project Bluefin Documentation](https://docs.projectbluefin.io). + +Yellowfin maintains maximum compatibility with upstream Bluefin LTS while providing the AlmaLinux ecosystem benefits. + +## Community Support + +- **AlmaLinux**: [AlmaLinux Atomic SIG](https://chat.almalinux.org/almalinux/channels/sigatomic) +- **Universal Blue**: [Discord Community](https://discord.gg/WEu6BdFEtp) +- **TunaOS**: [Matrix Chat](https://matrix.to/#/%23tunaos:reilly.asia) \ No newline at end of file diff --git a/docusaurus.config.ts b/docusaurus.config.ts index f3480a9..1a07c9c 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -6,7 +6,7 @@ import type * as Preset from '@docusaurus/preset-classic'; const config: Config = { title: 'TunaOS', - tagline: 'Dinosaurs and Tuna are cool', + tagline: 'A Collection of Cloud-Native Enterprise Linux OS Images', favicon: 'img/favicon.ico', // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future @@ -18,12 +18,12 @@ const config: Config = { url: 'https://tuna-os.github.io', // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: '/', + baseUrl: '/docs/', // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. organizationName: 'tuna-os', // Usually your GitHub org/user name. - projectName: 'TunaOS', // Usually your repo name. + projectName: 'docs', // Usually your repo name. trailingSlash: false, // Set to true if you want to add a trailing slash to all URLs. onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', @@ -45,23 +45,9 @@ const config: Config = { // Please change this to your repo. // Remove this to remove the "edit this page" links. editUrl: - 'https://github.com/tuna-os/docs/tree/main/packages/create-docusaurus/templates/shared/', - }, - blog: { - showReadingTime: true, - feedOptions: { - type: ['rss', 'atom'], - xslt: true, - }, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/tuna-os/docs/tree/main/packages/create-docusaurus/templates/shared/', - // Useful options to enforce blogging best practices - onInlineTags: 'warn', - onInlineAuthors: 'warn', - onUntruncatedBlogPosts: 'warn', + 'https://github.com/tuna-os/docs/tree/main/', }, + blog: false, // Disable blog theme: { customCss: './src/css/custom.css', }, @@ -71,23 +57,22 @@ const config: Config = { themeConfig: { // Replace with your project's social card - image: 'img/docusaurus-social-card.jpg', + image: 'img/tunaos-social-card.png', navbar: { - title: 'My Site', + title: 'TunaOS', logo: { - alt: 'My Site Logo', - src: 'img/logo.svg', + alt: 'TunaOS Logo', + src: 'img/tuna-logo.png', }, items: [ { type: 'docSidebar', sidebarId: 'tutorialSidebar', position: 'left', - label: 'Tutorial', + label: 'Documentation', }, - {to: '/blog', label: 'Blog', position: 'left'}, { - href: 'https://github.com/tuna-os/docs', + href: 'https://github.com/tuna-os/tunaOS', label: 'GitHub', position: 'right', }, @@ -97,11 +82,36 @@ const config: Config = { style: 'dark', links: [ { - title: 'Docs', + title: 'TunaOS', + items: [ + { + label: 'Documentation', + to: 'docs/intro', + }, + { + label: 'System Requirements', + to: 'docs/system-requirements', + }, + ], + }, + { + title: 'Variants', items: [ { - label: 'TunaOS', - to: '/docs/tuna-os', + label: 'Albacore (AlmaLinux)', + to: 'docs/albacore', + }, + { + label: 'Yellowfin (AlmaLinux Kitten)', + to: 'docs/yellowfin', + }, + { + label: 'Bonito (Fedora)', + to: 'docs/bonito', + }, + { + label: 'Skipjack (CentOS)', + to: 'docs/skipjack', }, ], }, @@ -109,16 +119,16 @@ const config: Config = { title: 'Community', items: [ { - label: 'Stack Overflow', - href: 'https://stackoverflow.com/questions/tagged/docusaurus', + label: 'Matrix Chat', + href: 'https://matrix.to/#/%23tunaos:reilly.asia', }, { - label: 'Discord', - href: 'https://discordapp.com/invite/docusaurus', + label: 'Universal Blue Discord', + href: 'https://discord.gg/WEu6BdFEtp', }, { - label: 'X', - href: 'https://x.com/docusaurus', + label: 'AlmaLinux Atomic SIG', + href: 'https://chat.almalinux.org/almalinux/channels/sigatomic', }, ], }, @@ -126,17 +136,21 @@ const config: Config = { title: 'More', items: [ { - label: 'Blog', - to: '/blog', + label: 'GitHub', + href: 'https://github.com/tuna-os/tunaOS', }, { - label: 'GitHub', - href: 'https://github.com/facebook/docusaurus', + label: 'Project Bluefin', + href: 'https://docs.projectbluefin.io', + }, + { + label: 'AlmaLinux Wiki', + href: 'https://wiki.almalinux.org', }, ], }, ], - copyright: `Copyright ยฉ ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`, + copyright: `Copyright ยฉ ${new Date().getFullYear()} TunaOS Project. Built with Docusaurus.`, }, prism: { theme: prismThemes.github, diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx index c2551fb..7de8394 100644 --- a/src/components/HomepageFeatures/index.tsx +++ b/src/components/HomepageFeatures/index.tsx @@ -5,48 +5,50 @@ import styles from './styles.module.css'; type FeatureItem = { title: string; - Svg: React.ComponentType>; + Svg?: React.ComponentType>; description: ReactNode; + emoji?: string; }; const FeatureList: FeatureItem[] = [ { - title: 'Easy to Use', - Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, + title: 'Latest GNOME Desktop', + emoji: '๐Ÿ–ฅ๏ธ', description: ( <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. + Experience GNOME 48.3 on Enterprise Linux - don't get stuck on 3-year-old + desktop environments. We backport the latest features to Enterprise Linux. ), }, { - title: 'Focus on What Matters', - Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, + title: 'Bootc Container Technology', + emoji: '๐Ÿ“ฆ', description: ( <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. + Built on modern bootc container technology for immutable, reliable systems. + Easy updates, rollbacks, and customization through container images. ), }, { - title: 'Powered by React', - Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, + title: 'Multiple Base Images', + emoji: '๐Ÿ ', description: ( <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. + Choose from AlmaLinux, AlmaLinux Kitten, Fedora, or CentOS bases. + Each variant optimized for specific use cases and compatibility needs. ), }, ]; -function Feature({title, Svg, description}: FeatureItem) { +function Feature({title, Svg, emoji, description}: FeatureItem) { return (
- + {emoji &&
{emoji}
} + {Svg && }
{title} diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css index b248eb2..76be271 100644 --- a/src/components/HomepageFeatures/styles.module.css +++ b/src/components/HomepageFeatures/styles.module.css @@ -9,3 +9,8 @@ height: 200px; width: 200px; } + +.featureEmoji { + font-size: 4rem; + margin-bottom: 1rem; +} diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 9f71a5d..1bc087b 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -16,8 +16,92 @@ } } +.heroContent { + display: flex; + justify-content: center; + align-items: center; +} + +.heroText { + max-width: 800px; +} + +.heroDescription { + font-size: 1.1rem; + margin: 1.5rem 0; + opacity: 0.9; +} + +.heroDescription a { + color: inherit; + text-decoration: underline; +} + .buttons { display: flex; align-items: center; justify-content: center; + gap: 1rem; + flex-wrap: wrap; +} + +.downloadSection { + padding: 4rem 0; + background: var(--ifm-color-emphasis-100); +} + +.variantCard { + background: white; + border-radius: 8px; + padding: 2rem; + box-shadow: var(--ifm-global-shadow-lw); + height: 100%; + margin-bottom: 2rem; +} + +.variantCard h3 { + margin-bottom: 1rem; + color: var(--ifm-color-primary); +} + +.downloadLinks h4 { + margin-top: 1.5rem; + margin-bottom: 0.5rem; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.5px; + color: var(--ifm-color-emphasis-700); +} + +.archLinks { + display: flex; + gap: 0.5rem; + margin-bottom: 1rem; + flex-wrap: wrap; +} + +.devCard { + opacity: 0.7; + background: var(--ifm-color-emphasis-200); +} + +.devNote { + font-style: italic; + color: var(--ifm-color-emphasis-600); + margin-top: 1rem; +} + +@media screen and (max-width: 768px) { + .buttons { + flex-direction: column; + gap: 0.5rem; + } + + .archLinks { + justify-content: center; + } + + .variantCard { + margin-bottom: 1rem; + } } diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 2e006d1..dbe9266 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -13,31 +13,132 @@ function HomepageHeader() { return (
- - {siteConfig.title} - -

{siteConfig.tagline}

-
- - Docusaurus Tutorial - 5min โฑ๏ธ - +
+
+ + ๐ŸŸ {siteConfig.title} + +

{siteConfig.tagline}

+

+ Specialized forks of Bluefin LTS based + on AlmaLinux 10, AlmaLinux Kitten 10, CentOS 10, and Fedora +

+
+ + Get Started ๐Ÿš€ + + + Download ISOs ๐Ÿ“ฆ + +
+
); } +function DownloadSection() { + return ( +
+
+
+ Download TunaOS Images +

Choose your preferred variant and architecture

+
+
+
+
+

๐ŸŸ Albacore (AlmaLinux 10)

+

Stable enterprise-grade desktop experience

+
+

Regular Edition

+ +

DX (Developer)

+ +

GDX (Graphics/AI)

+ +
+
+
+
+
+

๐Ÿ  Yellowfin (AlmaLinux Kitten 10)

+

Closest to upstream Bluefin LTS experience

+
+

Regular Edition

+ +

DX (Developer)

+ +

GDX (Graphics/AI)

+ +
+
+
+
+
+
+
+

๐ŸŽฃ Bonito (Fedora 42)

+

Cutting-edge experience (Development)

+

+ Status: Under development - check back soon! +

+
+
+
+
+

๐Ÿฃ Skipjack (CentOS 10)

+

CentOS-based variant (Development)

+

+ Status: Under development - check back soon! +

+
+
+
+
+
+ ); +} + export default function Home(): ReactNode { const {siteConfig} = useDocusaurusContext(); return ( + title={`${siteConfig.title} - Cloud-Native Enterprise Linux`} + description="A collection of cloud-native Enterprise Linux OS images based on Bluefin LTS">
+
); diff --git a/src/pages/markdown-page.md b/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. From 6326623477bcaec754fc3fa6586b4bea3f78e4e9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Sep 2025 10:23:30 +0000 Subject: [PATCH 3/4] Add TunaOS branding, logos, and hero graphics section Co-authored-by: hanthor <5840441+hanthor@users.noreply.github.com> --- docusaurus.config.ts | 4 +- src/components/HeroGraphics/index.tsx | 34 ++++++++ src/components/HeroGraphics/styles.module.css | 81 ++++++++++++++++++ src/pages/index.tsx | 2 + static/img/bootc-logo.png | Bin 0 -> 59339 bytes static/img/favicon.svg | 4 + static/img/tuna-logo.svg | 4 + 7 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 src/components/HeroGraphics/index.tsx create mode 100644 src/components/HeroGraphics/styles.module.css create mode 100644 static/img/bootc-logo.png create mode 100644 static/img/favicon.svg create mode 100644 static/img/tuna-logo.svg diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 1a07c9c..7885658 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -7,7 +7,7 @@ import type * as Preset from '@docusaurus/preset-classic'; const config: Config = { title: 'TunaOS', tagline: 'A Collection of Cloud-Native Enterprise Linux OS Images', - favicon: 'img/favicon.ico', + favicon: 'img/favicon.svg', // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future future: { @@ -62,7 +62,7 @@ const config: Config = { title: 'TunaOS', logo: { alt: 'TunaOS Logo', - src: 'img/tuna-logo.png', + src: 'img/tuna-logo.svg', }, items: [ { diff --git a/src/components/HeroGraphics/index.tsx b/src/components/HeroGraphics/index.tsx new file mode 100644 index 0000000..8357f1a --- /dev/null +++ b/src/components/HeroGraphics/index.tsx @@ -0,0 +1,34 @@ +import type {ReactNode} from 'react'; +import clsx from 'clsx'; +import styles from './styles.module.css'; + +function HeroGraphics(): ReactNode { + return ( +
+
+
+
+
+
+
๐ŸŸ
+
TunaOS
+
+
+
Powered by
+
+ Bootc Logo +
+
+
+
+
+
+
+ ); +} + +export default HeroGraphics; \ No newline at end of file diff --git a/src/components/HeroGraphics/styles.module.css b/src/components/HeroGraphics/styles.module.css new file mode 100644 index 0000000..02fe48b --- /dev/null +++ b/src/components/HeroGraphics/styles.module.css @@ -0,0 +1,81 @@ +.heroGraphics { + padding: 2rem 0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + text-align: center; +} + +.graphicsContainer { + display: flex; + justify-content: space-around; + align-items: center; + flex-wrap: wrap; + gap: 2rem; +} + +.fishGraphic { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.fishEmoji { + font-size: 4rem; + filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3)); + animation: float 3s ease-in-out infinite; +} + +.fishName { + font-size: 1.5rem; + font-weight: bold; + text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); +} + +.powerSection { + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.powerText { + font-size: 1.2rem; + opacity: 0.9; +} + +.bootcContainer { + background: white; + padding: 1rem; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); +} + +.bootcLogo { + height: 80px; + width: auto; +} + +@keyframes float { + 0%, 100% { + transform: translateY(0px); + } + 50% { + transform: translateY(-10px); + } +} + +@media screen and (max-width: 768px) { + .graphicsContainer { + flex-direction: column; + gap: 1.5rem; + } + + .fishEmoji { + font-size: 3rem; + } + + .bootcLogo { + height: 60px; + } +} \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx index dbe9266..18fc968 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -4,6 +4,7 @@ import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import Layout from '@theme/Layout'; import HomepageFeatures from '@site/src/components/HomepageFeatures'; +import HeroGraphics from '@site/src/components/HeroGraphics'; import Heading from '@theme/Heading'; import styles from './index.module.css'; @@ -137,6 +138,7 @@ export default function Home(): ReactNode { description="A collection of cloud-native Enterprise Linux OS images based on Bluefin LTS">
+
diff --git a/static/img/bootc-logo.png b/static/img/bootc-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..15289bb414f34ca66b0a5f9133ebcc3cc5b402c7 GIT binary patch literal 59339 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

k} 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 + + ๐ŸŸ + \ No newline at end of file diff --git a/static/img/tuna-logo.svg b/static/img/tuna-logo.svg new file mode 100644 index 0000000..23fc30f --- /dev/null +++ b/static/img/tuna-logo.svg @@ -0,0 +1,4 @@ + + + ๐ŸŸ + \ No newline at end of file From 948b5e0072803c86f648a2f8565ceacdc8f251fd Mon Sep 17 00:00:00 2001 From: James Reilly Date: Sun, 14 Sep 2025 17:47:26 +0530 Subject: [PATCH 4/4] Update src/components/HeroGraphics/index.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/components/HeroGraphics/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/HeroGraphics/index.tsx b/src/components/HeroGraphics/index.tsx index 8357f1a..32ff0c9 100644 --- a/src/components/HeroGraphics/index.tsx +++ b/src/components/HeroGraphics/index.tsx @@ -17,7 +17,7 @@ function HeroGraphics(): ReactNode {

Bootc Logo