thehardwarestore.ai

where AI agents shop for the right tools

── 98940 repos indexed ── | filtered by tag: ubuntu
ilysenko/codex-desktop-linux ★ 3894 506 APPLICATION

This repository is a community distribution and feature-extension framework for OpenAI's ChatGPT desktop application on Linux. It does not contain the core ChatGPT application itself; instead, it verifies, repackages, and patches the official signed upstream .deb package to produce customized builds for multiple Linux package formats (deb, RPM, pacman, AppImage, Nix, Gentoo ebuild). The system adds over 40 optional Linux-specific features—such as system tray integration, global dictation, computer-use automation (window management, accessibility, screenshots), desktop recording/replay, text-to-speech, proxy authentication, and UI tweaks—each gated behind a declarative feature manifest and applied via a sophisticated patch engine that modifies the Electron app bundle at build time. Architecturally, the project is a build/packaging/update framework. The core is a patch engine (scripts/patches/) that applies declarative descriptors to the upstream app.asar in phases (main-bundle, webview-asset, extracted-app). Features live under linux-features/ with standardized manifests (feature.json), patch scripts (patch.js), stage hooks, and tests. Performance-critical subsystems are implemented in Rust: a computer-use backend (window management, input simulation, accessibility tree), a record-replay backend (desktop session capture, timeline events, skill drafting), a text-to-speech MCP server, a global dictation helper, and a self-updating package manager daemon. The launcher (start.sh.template) orchestrates environment setup, feature hooks, and CLI dispatch. Key entry points include the installer (install.sh), the feature picker GUI (scripts/feature-picker.py), the patch runner (scripts/patches/runner.js), and the updater daemon (updater/src/main.rs). Data flows are primarily build-time: the upstream .deb is downloaded, verified via GPG/SHA256, extracted, patched, and repackaged. At runtime, features like computer-use and record-replay communicate with native Rust backends over MCP/JSON-RPC. The updater daemon runs as a systemd user service, polling signed APT metadata and performing transactional rebuilds with rollback support. External dependencies include the upstream OpenAI .deb package (the sole ground-truth source), Node.js for patching, Rust for native components, and various Linux system tools (systemd, D-Bus, GNOME Shell, X11/Wayland utilities, ydotool, wmctrl, xdotool, secret-tool). The build system uses Make, Docker for CI, and supports multiple package managers. The project is heavily dependent on the upstream bundle's minified JavaScript structure, which it manages through contract-based patching with drift detection.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
systemd/mkosi ★ 2001 446 APPLICATION

mkosi is a command-line tool for building customized, bootable OS images. It wraps distribution package managers (dnf, apt, pacman, zypper, apk) and deeply integrates with systemd components (systemd-nspawn, systemd-repart, systemd-boot, systemd-vmspawn, ukify) to produce disk images, containers, unified kernel images, initrds, and extension images. The tool supports multiple output formats (disk, tar, cpio, uki, esp, sysext, confext, portable, oci, directory, addon) and can generate images for a wide range of Linux distributions including Fedora, Debian, Ubuntu, Arch, CentOS, openSUSE, and more. The architecture is a modular Python application with a central build pipeline orchestrated in mkosi/__init__.py. Configuration is handled via layered INI-style files with conditional [Match]/[Assert] sections, allowing complex multi-image builds. A sandbox abstraction (sandbox.py) isolates tool execution using Linux namespaces, mounts, and seccomp filters. Distribution-specific installers are registered via a class registry pattern in mkosi/distribution/__init__.py. The tool also provides standalone subcommands: mkosi-initrd, mkosi-addon, mkosi-sandbox, each with its own entry point. Key features include incremental caching, SecureBoot signing, verity and TPM support, kernel-install integration, tools tree for reproducible builds, and a comprehensive manifest generation. The codebase is well-structured with clear separation between configuration, sandboxing, package management, and image creation. It has extensive tests (pytest with integration markers) and active CI.

RATING: 8.9/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
yutkat/dotfiles ★ 994 49 APPLICATION

This repository is a personal dotfiles collection for configuring a developer environment. It provides a cohesive setup across Linux distributions using Nix flakes and Home Manager for declarative configuration, with fallback scripts for other systems. The environment integrates Zsh shell, Neovim editor, terminal emulators (Wezterm/Alacritty), and window managers (i3/Sway) with consistent keybindings and productivity enhancements. Configuration is modular, with isolated plugin setups for Neovim and Zsh, utility scripts for cross-tool functionality, and version management via mise. The repository emphasizes reproducibility through lock files and structured installation processes.

RATING: 8.9/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
chef/bento ★ 4447 1115 APPLICATION

Bento is a tool that automates the creation of Vagrant base boxes for a wide range of operating systems (Linux, Windows, macOS, FreeBSD, Solaris) using HashiCorp Packer. It provides a Ruby CLI (`bento`) that wraps Packer builds, manages metadata, runs Test Kitchen validation, and uploads boxes to Vagrant Cloud. The repository contains parameterized Packer HCL templates, OS-specific variable files, provisioner scripts (shell and PowerShell), and Windows unattended answer files. The architecture is a CLI orchestrator that delegates to external tools (Packer, Vagrant, VirtualBox, VMware, etc.) with a focus on reproducibility and multi-provider support. Although it originated from the Chef ecosystem, it is a standalone infrastructure tool used to produce the official 'bento' Vagrant boxes.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
hwdsl2/setup-ipsec-vpn ★ 28677 6519 APPLICATION

This repository provides a collection of shell scripts to automate the setup and management of an IPsec VPN server on Linux. It supports multiple VPN protocols (IPsec/L2TP, IPsec/XAuth, IKEv2) and a wide range of Linux distributions including Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux, Oracle Linux, and Alpine Linux. The main entry point is `vpnsetup.sh`, which detects the OS and runs the appropriate installer. The project also includes helper scripts for user management, IKEv2 certificate handling, upgrades, and uninstallation. Additionally, it offers an Azure ARM template for cloud deployment. The code is well-structured with OS-specific installers, common bash utility functions, and extensive documentation in multiple languages. It is a mature, widely-used DevOps tool for system administrators.

RATING: 8.7/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
Fueled/django-init ★ 200 50 APPLICATION

django-init is a cookiecutter template for generating Django-based REST API projects. It provides a comprehensive starting point with Django 4.1, Python 3.9, Poetry dependency management, Django REST Framework, and optional features like Celery, GraphQL, ASGI, Docker, and various deployment configurations. The template generates projects with custom user models, JWT authentication, proper API versioning, and testing setup. What distinguishes this template is the quality of its reusable components in the base/ directory, particularly the custom DRF mixins for multiple serializers and per-action permissions, specialized routers for singleton resources, and thoughtful exception handling and response classes that demonstrate deep understanding of Django REST Framework's architecture.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
GopeedLab/gopeed ★ 26704 1744 APPLICATION

Gopeed is a high-performance, cross-platform download manager written in Go with a Flutter frontend. It supports HTTP/HTTPS, BitTorrent, Magnet links, ed2k, and HLS streaming protocols. The backend provides a REST API, CLI, and an MCP server for AI agent integration. The frontend is a full-featured Flutter app for desktop (Windows, macOS, Linux), mobile (Android, iOS), and web. Key features include multi-connection downloads with slow-start and work-stealing, a JavaScript extension system (goja) with polyfills for fetch, XHR, Blob, and streams, archive extraction (zip, 7z, rar), webhook/script notifications, and browser impersonation via TLS fingerprinting. The architecture is modular: protocol-specific fetchers implement a common interface, the download engine manages task lifecycle and persistence (BoltDB), and the UI communicates via RPC or FFI. The codebase is well-tested with extensive integration tests and includes a legacy Flutter UI (ui/flutter_old) alongside the current one, indicating an ongoing migration from GetX to Riverpod.

RATING: 8.4/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
sous-chefs/apt ★ 200 253 APPLICATION

This Chef cookbook provides custom resources for managing APT (Advanced Package Tool) configuration on Debian-family Linux distributions (Debian 12+, Ubuntu 22.04+). It is a resource-first cookbook, meaning it does not ship recipes or attribute-driven configuration; instead, users declare resources like `apt_config`, `apt_cacher_client`, `apt_cacher_ng`, and `apt_unattended_upgrades` in their wrapper cookbooks. The cookbook handles base APT update behavior, dpkg options, proxy configuration for apt-cacher clients, installation and configuration of the apt-cacher-ng caching proxy server, and unattended-upgrades setup including debconf preseeding. It relies on Chef Infra Client >= 15.3 and the underlying APT system; no external cookbook dependencies are required. The architecture is a set of Chef custom resources (in `resources/`) backed by ERB templates (in `templates/`) and a small library module (in `libraries/`). Each resource encapsulates idempotent actions: creating or deleting configuration files, installing or removing packages, and managing services. The cookbook includes comprehensive ChefSpec unit tests and InSpec integration tests, with CI/CD via GitHub Actions and Test Kitchen with Dokken. It follows modern Chef patterns (unified_mode, action_class, lazy property defaults) and is actively maintained by the Sous Chefs community. Key entry points are the four custom resources. Typical data flows: a user declares a resource in a recipe; Chef converges by writing templates to `/etc/apt/apt.conf.d/`, installing packages (e.g., `apt-cacher-ng`, `unattended-upgrades`), and managing services. The `apt_config` resource also sets up periodic `apt_update` runs and creates helper directories for preseeding. The cookbook does not expose any API endpoints or CLI tools; it is purely a configuration management library for Chef.

RATING: 8.4/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
adi1090x/rofi ★ 8818 398 APPLICATION

The adi1090x/rofi repository is a comprehensive collection of themes, scripts, and configurations for the Rofi application launcher on Linux. It provides users with a wide variety of visual styles for launchers, applets (such as volume, brightness, and battery controls), and power menus, all designed to integrate seamlessly with Rofi. The repository includes an installation script to deploy these themes to the user's system, along with the necessary fonts and preview images. The architecture is modular, separating concerns into launcher types, applets, and power menus, each with multiple style variations. Shared resources like color palettes and font definitions are imported across theme files to ensure consistency and reduce duplication. The applet scripts utilize a shared bash library (`theme.bash`) that abstracts the Rofi invocation process, allowing developers to focus on the applet's core functionality. This demonstrates thoughtful design and reusability. While the repository excels in providing a rich set of themes and useful desktop utilities, it does exhibit some maintenance challenges due to the large number of similar theme files (over 50) that may require synchronized updates. However, the recent activity and clear documentation indicate active maintenance. The project primarily targets Rofi versions around 1.7.3-1.7.4 and includes fallback mechanisms for optional dependencies, showing attention to compatibility.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
juzzlin/Heimer ★ 976 122 APPLICATION

Heimer is a cross-platform desktop mind map editor built with Qt (C++17). It provides a graphical interface for creating, editing, and organizing mind maps with features like adjustable grid, automatic layout optimization, undo/redo, copy/paste, image embedding, and export to PNG/SVG. The architecture follows a layered design: domain layer (Graph, MindMapData, LayoutOptimizer), application layer (services, state machine, settings proxy), view layer (Qt widgets, QGraphicsScene/View, dialogs), and infrastructure layer (file I/O, XML serialization). Key entry points include main.cpp, Application class, MainWindow, EditorView, and EditorService. Data flows from user interactions through EditorView to EditorService, which manipulates the MindMapData (graph) and triggers serialization via AlzFileIO. External dependencies are limited to Qt (5 or 6) and two bundled small libraries (SimpleLogger for logging, Argengine for CLI argument parsing). The layout optimizer uses simulated annealing to arrange nodes, and undo/redo is implemented via snapshot-based state capture. The codebase demonstrates solid engineering practices with unit tests, CI/CD pipelines, and multi-language support.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
johang/vlc-bittorrent ★ 503 58 APPLICATION

vlc-bittorrent is a VLC media player plugin that enables direct streaming of .torrent files and magnet links. It integrates libtorrent-rasterbar to handle the BitTorrent protocol, providing three VLC submodules: a stream_directory module to list torrent contents as a virtual directory, a stream_extractor module to stream individual files with on-demand piece downloading and priority-based piece selection, and an access module to resolve magnet URIs by downloading metadata from peers. The plugin manages a single libtorrent session shared across multiple torrents, handles asynchronous alerts via a dedicated thread, and supports interruptible I/O compatible with VLC's blocking read model. It includes a comprehensive test suite with TAP output and deterministic expected results.

RATING: 7.9/10 MAINT: maintained DRIFT: low
â–¸ 1 reusable components found
community-scripts/ProxmoxVE ★ 29771 2912 APPLICATION

This repository is a large collection of Bash scripts that automate the deployment, configuration, and update of self-hosted services on Proxmox VE, primarily through LXC containers and VMs. It is a provisioning and automation framework rather than a runtime application: each ct/*.sh script declares resource variables (CPU, RAM, disk, OS template) and an optional update_script(), while install/*.sh scripts run inside an existing container to install a specific application. Usage is typically a one-line curl command executed as root on the Proxmox host, after which the script creates a container/VM, installs dependencies, generates credentials, writes systemd units or OpenRC init scripts, and configures databases and reverse proxies. The architecture is layered: hundreds of app-specific scripts wrap a smaller set of shared Bash function libraries in the misc/ directory (build.func, install.func, vm-core.func, core.func, error_handler.func). These shared functions handle common operations such as fetching GitHub releases, setting up language runtimes, creating databases, backing up configs before updates, and standardizing error handling. Update flows generally stop the service, back up configuration/data, fetch the latest release, restore the backup, run migrations, and restart the service. This consistency is the project's main strength and makes adding a new container recipe relatively straightforward. Weaknesses are typical of a large community-driven shell-script collection: no unit tests, heavy reliance on third-party installers fetched via curl|bash, some hardcoded versions, and external dependencies on GitHub release asset names and remote core-library URLs. Many scripts assume Debian/Ubuntu or Alpine bases and run as root with no signature verification. Despite these risks, the codebase is actively maintained, consistently formatted, and the shared function libraries are practical examples of reusable Bash abstractions for Proxmox automation.

RATING: 7.8/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
aandrew-me/ytDownloader ★ 10481 925 APPLICATION

ytDownloader is a cross-platform desktop application built with Electron that provides a graphical interface for downloading videos and audio from YouTube and hundreds of other sites using yt-dlp as the backend download engine. It features a comprehensive download manager supporting single downloads, playlists, and YouTube search, with options for format selection, quality, subtitles, compression, and output templates. The application manages its own yt-dlp and ffmpeg binaries, supports auto-updates, and includes a download history with JSON/CSV export, theming, internationalization (23+ languages), system tray integration, and a global hotkey for quick URL pasting. Architecture: The application follows a standard Electron architecture with a main process (main.js) handling window management, IPC handlers, auto-updater, system tray, and global hotkey. A preload script (preload.js) sets up a context bridge (electronAPI) that exposes filesystem operations, process spawning, clipboard access, and other OS services to the renderer. The renderer process consists of several JavaScript modules (src/index.js, src/playlist.js, src/compressor.js, src/preferences.js, src/history_ui.js, src/common.js) that handle specific views. Communication between renderer and main process occurs via Electron's IPC mechanism (ipcRenderer/ipcMain). User preferences are stored in localStorage and a JSON config file, while download history is persisted as JSON. Key entry points: main.js (Electron main process), preload.js (context bridge), html/index.html (single-page UI shell), src/renderer.js (main renderer logic with YtDownloaderApp class), src/index.js (homepage downloader), src/playlist.js (playlist downloader), src/compressor.js (video compressor), src/preferences.js (settings), src/history_ui.js (history view). External dependencies include yt-dlp (download engine), ffmpeg/ffprobe (media processing), Electron (framework), electron-builder (packaging), electron-updater (auto-updates), systeminformation (GPU detection), and SlimSelect (custom dropdowns). The application bundles these binaries or uses system-installed versions, with fallback mechanisms.

RATING: 7.8/10 MAINT: active DRIFT: medium
â–¸ 5 reusable components found
ubuntu/WSL ★ 200 53 APPLICATION

This repository contains the source code and build pipeline for the official Ubuntu distribution for Windows Subsystem for Linux (WSL). The core component is a C++ launcher executable (DistroLauncher) that registers the Ubuntu WSL instance, manages user accounts, and launches shells via the WSL API. The build system is orchestrated by a set of Go tools (wsl-builder) that automate downloading root filesystem images, generating application metadata and assets (icons, manifests, Windows Terminal integration), and invoking MSBuild to produce an AppX/MSIX bundle for the Microsoft Store. The repository also includes comprehensive CI/CD workflows for building, testing, and publishing releases, as well as end-to-end tests for the launcher. It is a production-grade application packaging system, not a data analysis project.

RATING: 7.8/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
phusion/baseimage-docker ★ 9082 1073 APPLICATION

phusion/baseimage-docker is a specialized Ubuntu base image optimized for Docker containers. It solves common Docker container problems including the PID 1 zombie reaping issue (via a custom /sbin/my_init process), syslog blackhole problem (using syslog-ng that forwards logs to docker logs), and APT incompatibilities. The image provides service supervision through runit, tools for running processes as different users (setuser), easy SSH access (optional), and environment variable management. It's designed to be used as a base image for Docker applications, offering a minimal but production-ready Ubuntu environment.

RATING: 7.6/10 MAINT: maintained DRIFT: low
â–¸ 3 reusable components found
Nyr/wireguard-install ★ 4927 1003 APPLICATION

This repository contains a single bash script (`wireguard-install.sh`) that serves as an interactive installer and manager for a WireGuard VPN server on Linux. It automates the full lifecycle: detecting the OS (Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, Fedora), installing WireGuard (or BoringTun for containerized environments), configuring firewall rules (firewalld or iptables), enabling IP forwarding, generating server and client configurations, and providing a menu to add/remove clients or uninstall. The script is designed to be run as a one-liner and handles many edge cases such as NAT detection, multiple IP addresses, and containerized kernels lacking the WireGuard module. It is a mature, battle-tested tool with thousands of stars and no open issues, but it is a monolithic script with no modular components or tests, limiting reusability beyond its intended purpose.

RATING: 7.6/10 MAINT: active DRIFT: low
nuver-labs/vps-audit ★ 3061 295 APPLICATION

This is a single-file Bash script that performs a comprehensive security and performance audit of a Linux VPS. It checks SSH configuration, firewall status, intrusion prevention systems (Fail2ban/CrowdSec), failed login attempts, system updates, running services, open ports, disk/memory/CPU usage, sudo logging, password policy, and SUID files. The script outputs color-coded PASS/WARN/FAIL results to the console and writes a detailed timestamped report to a file. It is designed for Ubuntu/Debian-based systems and requires root or sudo privileges. The architecture is a monolithic Bash script with no external dependencies beyond standard Linux utilities and optional tools like UFW, Fail2ban, and Docker. The code is well-structured with configurable thresholds and file paths, demonstrating solid Bash scripting practices. However, it is not designed for reuse as a library; it is a standalone tool.

RATING: 7.6/10 MAINT: stale DRIFT: low
â–¸ 1 reusable components found
ophub/amlogic-s9xxx-armbian ★ 10147 3205 APPLICATION

This repository is a comprehensive build system and distribution for Armbian, a lightweight Linux distribution for ARM devices, specifically targeting Amlogic, Rockchip, and Allwinner SoCs used in TV boxes and single-board computers. It provides scripts and GitHub Actions workflows to build custom Armbian images, compile kernels, and manage system software. The architecture is based on a layered filesystem overlay pattern: common-files (shared across all devices), platform-files (per-SoC family), and different-files (per-board overrides), allowing flexible device-specific customization. Key entry points include the `rebuild` script for local image building, GitHub Actions workflows for CI, and a suite of `armbian-*` command-line tools for end-user system management (install, update, kernel management, software center). The project includes a software center with dozens of pre-configured Docker, desktop, and service applications, and extensive device support documented in a model database and per-board boot configurations. While the codebase is functional and widely used, it exhibits high duplication across board-specific files, contains binary device tree blobs without accompanying source, and has several hardcoded paths and vendor-specific dependencies that increase maintenance burden.

RATING: 6.9/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
LiuXin-Developer/rightHouse ★ 502 39 APPLICATION

This repository is a full-stack, multi-client rental property management platform called 'rightHouse' (房适). It consists of three frontends: a Vue 3 + Arco Design admin panel (RH-admin), a uni-app landlord mobile app (RH-landlord), and a uni-app tenant mobile app (RH-tenant), all backed by an Egg.js Node.js REST API (RH-server) with MySQL, Redis, MinIO, and OSS storage. The system enables landlords to publish houses, tenants to search and apply for rentals, and administrators to manage users, houses, and lease applications. Key workflows include lease application with approval flow, maintenance requests, rental market listings with location-based search, and tenant reviews. The architecture is monolithic on the server side but with separate client applications sharing some UI components (uView UI) and a custom HTTP client (luch-request). The codebase is functional and covers the full rental lifecycle, but suffers from duplicated UI component libraries across mobile apps, mixed Vue 2/Vue 3 frameworks, hardcoded configuration values, and lack of automated tests. The admin panel uses modern Vue 3 tooling, while the mobile apps rely on the older uView 2.0 library. The server side includes JWT authentication, SMS notifications, and file upload capabilities. Overall, it is a solid but not exceptional implementation of a rental management system, useful as a reference for similar multi-tenant applications but with several areas of technical debt.

RATING: 6.7/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
RuriOSS/daijin ★ 304 26 APPLICATION

Daijin is a container management tool designed for Android devices running Termux. It provides a menu-driven interface to create, run, remove, and manage Linux containers using either the ruri backend (a lightweight container implementation) or proot (a chroot alternative). The application orchestrates container lifecycle operations by integrating with submodules rurima (for running Docker/LXC images without Docker/LXC) and rootfstool (for obtaining container rootfs from mirrors). Key functionalities include downloading container images, setting up container environments with proper permissions and networking, managing container configurations, and providing launch mechanisms. The architecture is monolithic with modular shell scripts handling specific operations, all built as a Debian package for Termux deployment.

RATING: 6.6/10 MAINT: maintained DRIFT: low
â–¸ 2 reusable components found
$ loading more...
$ submit: