Skip to content

Sagyam/linite

Repository files navigation

Linite

Linite Logo

Bulk install Linux apps with a single command

License: MIT zread Build

Try it now · Report Bug · Request Feature

Overview

Linite is a Ninite-style package installer for Linux distributions and Windows. It aggregates applications from multiple package sources (APT, DNF, Pacman, Zypper, Nix, Flatpak, Snap, AUR, Homebrew, Winget, Scoop) and generates a installation commands based on your platform and preferences.

Instead of manually searching for packages across different repositories and running multiple package manager commands, Linite provides a web interface to select applications and outputs a single, ready-to-run installation script.

Website | Dev Docs

Linite Demo

Quick Start

Visit website, select your apps and distribution, then copy the generated command.

Example output for Ubuntu 24.04:

# Setup
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# Install
sudo apt install -y firefox git
flatpak install -y flathub org.videolan.VLC com.visualstudio.code

Features

Multi-Source Package Support

Linite integrates with native package managers (APT, DNF, Pacman, Zypper, Nix, Winget), universal formats (Flatpak, Snap), community repositories (AUR, Homebrew, Scoop), and script-based installations. The package selection algorithm prioritizes sources based on distribution defaults and user preferences.

Automatic Package Selection

For each application, Linite queries available packages across sources and selects the optimal one based on:

  • Distribution-specific source priorities
  • User-configured preferences
  • Package availability and version information

The command generator groups packages by source and includes necessary setup commands (e.g., adding Flatpak remotes).

Package Metadata Sync

Package information is synchronized every 24 hours from:

This ensures version numbers, licenses, and availability status stay current across all platforms.

Catalog Management

The application database currently includes 170+ applications organized into 10 categories. Administrators can manage apps, packages, and source mappings through an authenticated admin interface.

Supported Platforms

Linux Distributions

Debian Family

  • Ubuntu: APT, Flatpak, Snap, Npm, Pip, Go, Cargo, Script
  • Debian: APT, Flatpak, Snap, Npm, Pip, Go, Cargo, Script
  • Linux Mint: APT, Flatpak, Script
  • Pop!_OS: APT, Flatpak, Snap, Script
  • Zorin OS: APT, Flatpak, Snap, Script
  • Elementary OS: APT, Flatpak, Snap, Script

RHEL/Fedora Family

  • Fedora: DNF, Flatpak, Snap, Script
  • Nobara: DNF, Flatpak, Snap, Script
  • Bazzite: Flatpak, Homebrew, Snap, Script

Arch Family

  • Arch Linux: Pacman, AUR, Flatpak
  • Manjaro: Pacman, AUR, Flatpak, Snap
  • CachyOS: Pacman, AUR, Flatpak

Other

  • openSUSE: Zypper, Flatpak
  • NixOS: Nix, Flatpak, Snap

Windows

  • Windows: Winget, Scoop

All distributions support script-based installations as a fallback. Additional platforms can be added by mapping package manager support in the database.

Architecture

Frontend: Next.js 16 (App Router) with TypeScript, React, and Tailwind CSS UI Components: shadcn/ui Database: Turso (libSQL) with Drizzle ORM Authentication: BetterAuth Storage: Azure Blob Storage (app icons) APIs: Flathub, Snapcraft, AUR, Repology Deployment: Vercel

See docs/PROJECT_OVERVIEW.md for detailed architecture documentation.

Development

Prerequisites

  • Bun package manager
  • Turso database (or local libSQL)
  • Azure Blob Storage account (for icon uploads)

Setup

# Install dependencies
bun install

# Configure environment variables
cp .env.example .env
# Edit .env with your credentials

# Validate environment setup
bun run check-env

# Run database migrations
bun run db:migrate

# Seed initial data
bun run db:seed

# Start development server
bun run dev

Database Commands

bun run db:generate   # Generate migrations from schema changes
bun run db:migrate    # Apply migrations
bun run db:push       # Push schema directly (development)
bun run db:studio     # Open Drizzle Studio
bun run db:wipe       # Clear all data
bun run db:seed       # Populate initial data

Testing

bun test              # Watch mode
bun test:run          # Run once
bun test:coverage     # With coverage report

239 tests covering API routes, services, and UI components. Tests are co-located with source files (*.test.ts, *.test.tsx).

Documentation

Contributing

Contributions are welcome. Please open an issue to discuss significant changes before submitting PRs. See CONTRIBUTING.md for guidelines.

Common contributions:

  • Adding applications to the catalog
  • Expanding distribution support
  • Improving package selection algorithms
  • Bug fixes and performance improvements

License

MIT License - see LICENSE for details.

Acknowledgments

Inspired by Ninite. Package data provided by Flathub, Snapcraft, AUR, Homebrew, NixHub, Winget, and Repology. UI components from shadcn/ui.

About

A Ninite-style bulk package installer for Linux distributions.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages