Skip to content

Latest commit

 

History

History
162 lines (123 loc) · 5.86 KB

File metadata and controls

162 lines (123 loc) · 5.86 KB
Linux Library

Linux Library

Every major Linux distribution. Every architecture. One place.

Visit the site  ·  Report a bug  ·  Request a distro



GitHub deployments License Last commit


About

Linux Library is a single-page website that makes finding and downloading any major Linux distribution easy. Instead of searching across a bunch of different sites, everything is in one place - with every link pointing to an official distribution mirror. No files are hosted here, ever.

Pick a distro, choose your architecture and edition in the designated download wizard, and you'll get the official ISO straight away in your browser.


Features

  • 33 distributions - everything from everyday desktops to security-focused and enterprise distros
  • Guided download wizard - modal guides you through architecture, desktop environment, and edition
  • Multiple architectures - x64, ARM64, and Raspberry Pi images where available
  • Official mirrors only - every link points to the distribution's own download servers
  • Zero dependencies - only HTML, CSS, and vanilla JavaScript; no frameworks, no build step
  • Responsive - works on desktop, tablet, and mobile

Distributions

View all 33 distributions
# Distribution Category
1 Ubuntu General purpose
2 Linux Mint Beginner-friendly
3 Debian Stable / Base
4 Fedora Cutting-edge
5 Pop!_OS Developer / Creator
6 Manjaro Arch-based
7 Zorin OS Windows switcher
8 Arch Linux DIY / Advanced
9 Raspberry Pi OS Single-board computing
10 Kubuntu Ubuntu + KDE
11 Xubuntu Ubuntu + Xfce
12 Lubuntu Lightweight
13 EndeavourOS Arch-based
14 Garuda Linux Arch-based / Gaming
15 elementary OS macOS-like
16 KDE neon Latest KDE Plasma
17 MX Linux Debian-based
18 openSUSE Enterprise / Desktop
19 deepin Stylish desktop
20 Red Hat Enterprise Linux Enterprise
21 Rocky Linux RHEL-compatible
22 AlmaLinux RHEL-compatible
23 Oracle Linux Enterprise
24 CentOS Stream Enterprise upstream
25 Kali Linux Security / Pentesting
26 Parrot OS Security / Privacy
27 NixOS Declarative / Reproducible
28 Tails Privacy / Anonymity
29 Qubes OS Security-focused
30 Alpine Linux Minimal / Containers
31 Void Linux Independent / Rolling
32 Gentoo Source-based
33 CachyOS Performance-optimised

Project Structure

linux-library.github.io/
├── icons/                     # Distribution logo PNGs
├── LICENSE                    # MIT license
├── README.md                  # README
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── apple-touch-icon.png
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon.ico
├── icon.png                   # Site icon (OG image)
├── index.html                 # Main page and all markup
├── robots.txt
├── script.js                  # Distro data + download wizard logic
├── site.webmanifest           # PWA manifest
├── sitemap.xml
└── style.css                  # Styles (custom properties, grid, modal, animations)

Contributing

I really appreciate contributors. Here's how you can help:

Adding or updating a distribution

All distro data lives in the DISTROS array at the top of script.js. Each entry follows this structure:

{
  name: 'Example OS',
  website: 'https://example.com/',
  img: '/icons/exampleos.png',
  about: 'A short paragraph describing the distro...',
  links: [
    { url: 'https://example.com/example.iso', architecture: 'x64 (recommended)', desktop: 'GNOME (recommended)' },
    { url: 'https://example.com/example-arm.iso', architecture: 'ARM64', desktop: 'GNOME' },
  ],
}

Link objects can use any combination of the following optional keys alongside url:

Key Example values
architecture 'x64 (recommended)', 'ARM64', 'Raspberry Pi'
desktop 'GNOME (recommended)', 'KDE Plasma', 'Xfce'
type 'Desktop', 'Server', 'Lite', 'Full'

The download wizard automatically detects which keys are present and builds the selection steps accordingly.

Adding an icon

Place a square PNG (preferably 512×512 or larger) in the /icons/ directory, named in lowercase with no spaces (e.g. exampleos.png), and reference it in the img field of the distro entry.

Updating outdated links

If a download URL has changed or a new version has been released, just open an issue or submit a pull request updating the URL in script.js.


Deployment

The site is deployed automatically via GitHub Pages from the main branch. No CI configuration is needed - just push to main and GitHub Pages will serve the updated site in a matter of minutes.


Licence

This project is open source and available under the MIT Licence.


Built by Alex Bowles and contributors.