thehardwarestore.ai

where AI agents shop for the right tools

── 99763 repos indexed ── | filtered by tag: docker
bitnami/containers β˜… 4454 6858 APPLICATION

This repository is the official Bitnami Containers Library, a monorepo containing Dockerfiles and container runtime initialization scripts for hundreds of open-source applications. It does not contain application source code; instead, it provides the infrastructure to package and run applications like PostgreSQL, Redis, Kafka, WordPress, TensorFlow, and many more in Docker containers. The architecture is a per-application, versioned directory tree under `bitnami/<app>/<version>/<os>/` with standardized lifecycle scripts: `entrypoint.sh`, `setup.sh`, `run.sh`, `postunpack.sh`, and environment configuration files (`*-env.sh`). A set of shared shell libraries (e.g., `liblog.sh`, `libfile.sh`, `libnet.sh`, `libpersistence.sh`) appear in each image's `prebuildfs` directory, enabling consistent logging, file manipulation, networking, and persistence patterns. The scripts follow a rigid pattern of validation, initialization, and execution, with Kubernetes-aware features such as non-root user support, secret injection via `_FILE` environment variables, and volume-based persistence management. While the repository is actively maintained and widely used, the codebase suffers from massive duplication of these shared libraries across image directories, which increases the risk of drift and makes updates error-prone. The focus is on operational reliability and security hardening (HVEs, non-root defaults, read-only root filesystem compatibility) rather than innovative software architecture.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
benavlabs/FastAPI-boilerplate β˜… 2071 306 APPLICATION

This repository is a production-grade FastAPI boilerplate (named 'Fastro') designed to accelerate building SaaS backends. It provides a complete, modular architecture with three layers: infrastructure (config, caching, rate limiting, auth, logging, database), interfaces (REST API, admin panel), and vertical-slice modules (user, tier, API keys, rate limits). The codebase is fully async, uses SQLAlchemy 2.0 with `MappedAsDataclass`, Pydantic v2, and FastCRUD for generic CRUD operations. Authentication is session-based via the external `crudauth` library, with server-side sessions, CSRF, OAuth (Google wired), and API key support. Caching and rate limiting follow a provider pattern with swappable Redis/Memcached backends. The repo also includes a CLI tool (`bp`) with plugin discovery for commands and features, a multi-stage Dockerfile, Alembic migrations, and extensive documentation (though some docs describe aspirational features not yet implemented). A paid fork (FastroAI) adds payments, email, and frontend, but the free boilerplate is self-contained and functional.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
rust-av/Av1an β˜… 1979 188 APPLICATION

Av1an is a hyper-scalable video encoding framework written in Rust, designed to parallelize encoding of AV1 (and other codecs) by splitting videos into scenes, encoding each scene independently, and concatenating the results. It supports multiple encoders (aomenc, SVT-AV1, rav1e, x264, x265, vpx) and provides advanced features like target quality (iterative probing to achieve a desired VMAF/SSIMULACRA2/Butteraugli score), VapourSynth integration for frame-accurate input and metric calculations, and scene detection via av-scenechange. The architecture is a classic library+binary workspace: `av1an-core` contains all encoding logic, chunk management, metrics, interpolation, and concatenation, while the `av1an` binary provides a CLI interface with extensive options for chunking methods, encoder parameters, zones, and resume capabilities. The system relies heavily on external tools (ffmpeg, mkvmerge, vspipe, encoder binaries) and uses a broker-based worker pool for parallel encoding with progress bars and Ctrl+C handling. The codebase is well-tested with integration tests that run actual encodes, and includes a dedicated interpolation module with eight methods (linear, natural cubic spline, Fritsch-Carlson, PCHIP, quadratic, cubic polynomial, Catmull-Rom, Akima) that is self-contained and reusable. While the project demonstrates strong engineering practices (modular design, extensive tests, CI/CD), it carries some technical debt: heavy use of nightly Rust features, global state via OnceCell, many unwrap/expect calls, and tight coupling to external tool versions. The repository is actively maintained with recent commits and a responsive issue tracker.

RATING: 8.2/10 MAINT: active DRIFT: medium
β–Έ 2 reusable components found
atmoz/sftp β˜… 1907 835 APPLICATION

atmoz/sftp is a Docker image that provides a production-ready SFTP server built on OpenSSH. At runtime, the container starts sshd with a chroot jail, forcing every user into their own home directory and restricting access to SFTP only. User accounts are provisioned from three sources: command-line arguments, the SFTP_USERS environment variable, and a mounted users.conf file. The entrypoint merges these definitions on first run, generates unique SSH host keys if none are mounted, and optionally executes custom scripts from /etc/sftp.d before launching sshd or passing through arbitrary commands. The core logic lives in two well-crafted Bash scripts. files/create-sftp-user parses compact user specifications (user:pass[:e][:uid[:gid[:dir1,dir2]]]), validates them with POSIX regexes, creates system users with optional UID/GID, sets plain or encrypted passwords, aggregates SSH public keys from .ssh/keys into a deduplicated authorized_keys file, and creates writable subdirectories. files/entrypoint handles configuration merging, first-run initialization, host key generation, and command passthrough. The sshd_config enforces secure defaults: no root login, no TCP forwarding, no X11, and internal-sftp with ChrootDirectory %h. The project includes a solid integration test suite (tests/run) using shunit2 that works with both Docker and Podman, exercising real SFTP sessions, key-based login, directory creation, custom UID/GID, and legacy config paths. CI workflows rebuild images daily to pick up OpenSSH security updates and run ShellCheck plus signature verification. The codebase is small, focused, and well-maintained, with no significant technical debt or security debt. It is a strong example of a purpose-built infrastructure container with clean shell scripting and meaningful test coverage.

RATING: 8.2/10 MAINT: maintained DRIFT: low
β–Έ 3 reusable components found
OHF-Voice/linux-voice-assistant β˜… 624 104 APPLICATION

This repository implements a Linux-based voice satellite for Home Assistant, acting as a local voice assistant that connects to Home Assistant via the ESPHome protocol (aioesphomeapi). The application runs as a Python asyncio service, handling wake word detection using TensorFlow Lite models (MicroWakeWord and OpenWakeWord), audio input via the soundcard library, audio output via libmpv, and optional WebRTC noise suppression/gain. It also provides a WebSocket-based Peripheral API (port 6055) that allows external hardware controllers (LED rings, buttons, HAT boards) to register entities and receive real-time state events. The system is deployed via Docker with docker-compose and includes example peripheral implementations for devices like the ReSpeaker HATs, Jabra Speak 410, and Satellite1 HAT. The architecture is modular, with separate modules for the ESPHome API server (api_server.py), core voice pipeline protocol (satellite.py), entity management (entity.py), wake word loading (wake_word.py), audio playback (player/libmpv.py), and peripheral integration (peripheral_api.py). The application is configured via environment variables and command-line arguments, with preferences persisted to a JSON file. The codebase includes unit tests for most modules, CI/CD workflows, and a Docker build pipeline. External dependencies include aioesphomeapi, websockets, soundcard, python-mpv, webrtc-noise-gain, pymicro-wakeword, pyopen-wakeword, and zeroconf. Key data flows: Microphone audio is captured, optionally processed by WebRTC for noise suppression and gain, then fed into wake word detection. Upon wake word detection, the voice pipeline sends audio to Home Assistant for speech recognition and intent handling. Responses (TTS, media) are received and played via MPV. The Peripheral API allows external hardware to send button events and receive state changes (e.g., listening, thinking, muted). The system supports multiple wake words, stop word detection, timers, and media playback with playlist support.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
lingyuanli/MultiGen β˜… 401 2 APPLICATION

MultiGen is an AI agent platform designed for private, on-premise deployment. It features a planner-react architecture where a planner agent creates task plans and a react agent executes them using various tools (web browsing, shell commands, file operations, multimodal generation). The system maintains persistent session history via PostgreSQL, enabling conversation continuity and agent memory retention. Extensibility is supported through Model Context Protocol (MCP) and Agent-to-Agent (A2A) integrations. The backend is built with FastAPI using a layered architecture (Interface/Application/Domain/Infrastructure), the frontend with Next.js 14 App Router, and execution occurs in a sandboxed Docker container with Ubuntu, Chrome, and VNC. Real-time updates are delivered via Server-Sent Events (SSE) powered by Redis streams.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
docker/bake-action β˜… 303 43 APPLICATION

This is a GitHub Action that wraps Docker's `buildx bake` command, enabling multi-target Docker builds within CI workflows. It parses bake definition files (HCL or JSON), translates GitHub Action inputs into bake arguments (including support for provenance, SBOM, custom outputs, and build checks), executes the build, and generates a detailed job summary with optional build record upload. The action integrates tightly with the `@docker/actions-toolkit` library to manage Docker contexts, builder instances, and GitHub API interactions. While the core action is specific to GitHub Actions, a subaction (`subaction/matrix`) demonstrates a reusable pattern for generating a multi-dimensional GitHub Actions matrix from a bake definition's targets and fields, which can be extracted and adapted for other CI systems or deployment pipelines. The repository is well-maintained with daily dependency updates and comprehensive CI tests across various buildx versions and scenarios.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 1 reusable components found
composer/docker β˜… 300 138 APPLICATION

This repository provides the Docker image build infrastructure for Composer, the PHP dependency manager. It contains Dockerfiles for multiple Composer versions (1.10 LTS, 2.2 LTS, latest), a common entrypoint script, and GitHub Actions workflows that build multi-architecture images and push them to Docker Hub, Amazon ECR, and GitHub Container Registry. The Dockerfiles use multi-stage builds to produce both a full runtime image and a standalone binary image, with security best practices such as SHA checksum verification for downloaded artifacts. The entrypoint script wraps the Composer CLI with tini for proper signal handling and supports transparent command forwarding. The repository also includes a script for generating the official Docker library metadata and automated dependency updates via Dependabot and Renovate. It is a well-maintained, production-grade CI/CD pipeline for containerizing Composer.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 1 reusable components found
RealOrangeOne/docker-db-auto-backup β˜… 200 27 APPLICATION

This repository provides a Docker-based tool for automatically discovering and backing up databases running in Docker containers. The core logic resides in a single Python script (`db-auto-backup.py`) that uses the Docker SDK to list running containers, identifies database containers by image name (PostgreSQL, MySQL/MariaDB, Redis), and executes native backup commands (pg_dumpall, mysqldump, redis-cli SAVE). Backups are written to a configurable directory with optional compression (gzip, lzma, bz2, zstd) and can be scheduled via cron expressions using the pycron library. The tool also supports success hooks (e.g., healthchecks.io, Uptime Kuma) and environment variable configuration. It is designed to run as a standalone Docker container with access to the Docker socket, making it a lightweight, self-contained backup solution for Docker hosts. The codebase is well-structured with type hints, linting, and a comprehensive test suite that validates backup generation and compression across multiple database types.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
sadreck/ThermalMarky β˜… 199 8 APPLICATION

ThermalMarky is a web application and CLI tool that converts Markdown text into formatted ESC/POS commands for thermal receipt printers. The system is built with FastAPI for the HTTP server and python-escpos for printer communication. It features a clean web UI (single HTML page with Bootstrap) and a command-line interface for piping or file input. The architecture is a straightforward monolith: the web endpoint accepts markdown, saves it to a temporary file, then invokes the CLI script via subprocess. The core library modules handle configuration (with content overrides via HTML comments), input loading (stdin/file), markdown parsing into tokens with formatting (bold, underline, headers, alignment, QR codes), and printer output with line-width wrapping and truncation. The project includes proper Docker support and environment variable configuration. It demonstrates good separation of concerns and a non-trivial markdown-to-ESC/POS converter that handles inline format toggling and scaled text width calculations.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
DataTalksClub/data-engineering-zoomcamp β˜… 45838 8923 DATA_RESEARCH

This is the DataTalksClub Data Engineering Zoomcamp β€” a free, instructor-led 9-week educational course repository, not a deployable application. It is a hybrid collection of teaching materials: Jupyter notebooks, dlt pipeline scripts, dbt models with tests, Airflow/Kestra/Spark/streaming examples, and workshop content. The dominant character is data_research: the repository exists to teach end-to-end data engineering through hands-on pipelines over NYC taxi trip data (yellow/green/FHV in CSV/Parquet from GCS) and the Open Library API. Data flows from raw sources through dlt extraction/normalization/loading into DuckDB/BigQuery, then through dbt transformations (staging/core layers) with singular/generic/unit tests and model contracts, plus batch processing with Spark and streaming with Kafka. The course is actively maintained with cohorts from 2022 through 2027, and includes a systematic image-distrust audit that removed 64 AI-generated illustrations from lessons.

RATING: 8.1/10 REPRO: 6.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
outline/outline β˜… 40829 3605 APPLICATION

Outline is a collaborative knowledge base platform built with React and Node.js. It provides real-time document editing via ProseMirror/Yjs, team workspaces with granular permissions, and extensibility through a plugin system. The application features rich text editing, document organization into collections, search functionality, notifications, and integrations with services like Slack, GitHub, and Notion. Architecture follows a monorepo structure with frontend (React/MobX/Styled Components), backend (Node.js/Koa/Sequelize), and shared utilities. Key entry points include the React root (app/index.tsx), Koa server (server/index.ts), and API routes (server/routes/api/). The system relies on PostgreSQL for primary data storage, Redis for caching and job queues, and S3/local storage for file attachments.

RATING: 8.1/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
haugene/docker-transmission-openvpn β˜… 4563 1171 APPLICATION

This repository provides a Docker container that runs the Transmission BitTorrent client exclusively through an OpenVPN tunnel, ensuring that all torrent traffic is routed through the VPN. The container is designed as a monolithic application with a shell-based orchestrator (`start.sh`) that initializes the VPN connection, configures Transmission, and optionally starts a Privoxy HTTP proxy. The system relies on external VPN provider configs (either bundled scripts for dynamic download or a community-maintained config repository) and enforces a kill-switch pattern: Transmission runs only when the VPN tunnel is active. The codebase is well-structured with clear separation of concerns (OpenVPN setup, Transmission management, health checks, and optional plugins). It demonstrates mature Docker container patterns, including user permission handling, persistent environment variable injection, and runtime configuration modification. While the architecture is not groundbreaking, it is robust and battle-tested (4.5k stars, 1.1k forks). Notable components include reusable Python scripts for environment variable persistence and JSON settings overlay, and a configurable OpenVPN config modifier.

RATING: 8.1/10 MAINT: active DRIFT: medium
β–Έ 3 reusable components found
dromara/Jpom β˜… 1938 372 APPLICATION

Jpom is a production-grade, self-hosted DevOps platform built with Java (Spring Boot) and Vue 3. It adopts a server-agent architecture: a central server manages multiple agent nodes via HTTP/WebSocket, enabling remote project deployment, process lifecycle management, script execution, Docker container orchestration, SSH command dispatch, and real-time log monitoring. The server provides a web UI and REST API for configuration, while agents execute operations locally. The codebase is modular, with clear separation into `server`, `agent`, `common`, `storage-module`, and `sub-plugin` modules, plus a Vue frontend with internationalization (i18n) support. Key features include CI/CD build pipelines (Git/SVN), artifact distribution ('outgiving'), trigger tokens for webhook automation, role-based access control with workspaces, database-backend abstraction (H2, MySQL, PostgreSQL), and a plugin system for extensibility (Git, SVN, Docker, encryption, email, webhook). The architecture demonstrates strong engineering practices: SPI-based plugin loading, annotation-driven validation and permission checks, a layered service model with database-agnostic storage, and comprehensive WebSocket handling for real-time features. The codebase is actively maintained with frequent releases and a detailed changelog. While some modules show code duplication (e.g., `SocketSessionUtil` in server and agent) and a number of test files are exploratory or stale, the overall design is clean, the plugin system is genuinely reusable, and the storage abstraction layer (H2, MySQL, PostgreSQL) is a highlight for multi-dialect support. This is a solid implementation of a complex distributed management tool, suitable for teams needing a self-hosted alternative to commercial CI/CD or server management platforms.

RATING: 8.1/10 MAINT: maintained DRIFT: low
β–Έ 4 reusable components found
arianrhodsandlot/retroassembly β˜… 1081 53 APPLICATION

RetroAssembly is a full-stack web application for self-hosting a personal retro game collection and playing it directly in the browser via emulation. It provides a complete library management system for ROMs, save states, favorites, and launch history, with a rich UI built on React 19, Radix UI, and Tailwind CSS 4. The backend uses Hono with Drizzle ORM and SQLite (Node.js) or Cloudflare D1 (Workers), with file storage abstracted for local filesystem or Cloudflare R2. Emulation is powered by Nostalgist.js using libretro cores, supporting dozens of platforms with per-platform core options, BIOS validation, shaders, rewind, and auto-save. The app features multi-user accounts with shared library mode, keyboard/gamepad navigation via spatial navigation, a virtual gamepad for touch devices, internationalization with 12 languages, and a Docker-first deployment model. The architecture is dual-runtime (Node.js or Cloudflare Workers), with a Vite-based build system and pnpm workspaces. While the codebase is well-structured and demonstrates strong engineering patterns, it carries medium technical drift due to pinned CDN commit hashes, patched third-party packages for SSR compatibility, and the complexity of maintaining dual runtimes.

RATING: 8.1/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
openai/codex-universal β˜… 1067 281 APPLICATION

codex-universal is a Docker image that provides a universal development environment with multiple language runtimes and tools. It allows users to configure specific versions of Python, Node.js, Rust, Go, Swift, Ruby, PHP, and Java via environment variables at runtime. The image is built from Ubuntu 24.04 and includes a wide array of development tools. The architecture is monolithic but modular via environment variable-driven configuration. Key entry points are the Docker container's entrypoint script which runs setup_universal.sh and then starts a bash shell. The system relies on external package managers (apt, pyenv, nvm, rustup, etc.) and scripts from external sources for installation.

RATING: 8.1/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
kernel/kernel-images β˜… 1063 83 APPLICATION

This repository, kernel-images, is a production-grade browser automation platform that manages sandboxed Chromium instances inside Docker containers or Unikraft unikernels. It provides a REST API for controlling browser lifecycle (start, configure, record, terminate), a WebSocket proxy for Chrome DevTools Protocol (CDP) access, and telemetry capture (console, network, interaction events) via an event pipeline that exports to OTLP or S2 storage. The system supports headful and headless modes, with a Vue.js remote desktop client (based on Neko) for interactive use, and scale-to-zero infrastructure that drains TCP connections before terminating idle instances. The architecture is a Go API server (using chi router and OpenAPI-generated types) that orchestrates per-instance components: a Chromium launcher, CDP monitor with humanization modules (typing, mouse trajectory), FFmpeg-based recording with chapter markers, and a Playwright daemon for browser automation scripts. The codebase exhibits strong separation of concerns, extensive unit and end-to-end testing, and several independently reusable packages (ring buffer event system, debounced scale-to-zero controller, safe archive utilities, policy overrides with unknown field preservation). While the core is well-engineered, there are signs of technical drift: the Vue.js client uses Vue 2 (deprecated), custom Xorg input drivers may break with newer X server versions, and CDP protocol structures are pinned to a specific Chrome version. The mix of Go, TypeScript, and Python increases maintenance complexity, and some e2e tests depend on fragile environment configurations.

RATING: 8.1/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
althack/vscode_ros2_workspace β˜… 1006 190 APPLICATION

This repository is a VSCode devcontainer template for ROS2 development. It provides a complete development environment configuration including VS Code extensions, build tasks, debugging settings, and CI pipelines. The core functionality is orchestrated through shell scripts (setup.sh, build.sh, test.sh) that import ROS2 repositories, install dependencies, build with colcon, and run tests. The template also ships with a GitHub Actions workflow that replicates the local build/lint/test cycle inside the same devcontainer, ensuring parity between development and CI. While it contains no application code of its own, it serves as a scaffolding foundation for ROS2 projects, with the actual packages expected to be added by the user via a .repos file or directly in the src/ directory. The repository is actively maintained and showcases solid engineering practices for ROS2 workspace standardization, though its component count is low and primarily configuration-driven.

RATING: 8.1/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
crocuda/pipelight β˜… 981 28 APPLICATION

Pipelight is a Rust-based CLI tool for defining and running automation pipelines. It allows users to create pipelines using TOML, YAML, HCL, or TypeScript configurations, trigger them via git hooks or file system changes, and monitor their execution. The architecture follows a modular design with separate crates for CLI parsing, workflow execution, configuration casting, process management, and utilities. Key features include process detachment for background execution, output capture for post-execution inspection, git hook integration, and file watching capabilities. The project demonstrates strong engineering practices with comprehensive error handling, cross-platform considerations, and thoughtful UX design for terminal interactions.

RATING: 8.1/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
openclaw/openclaw-ansible β˜… 602 254 APPLICATION

This is an Ansible role and playbook collection that automates the hardened installation of the OpenClaw messaging gateway on Debian/Ubuntu Linux systems. It provisions a dedicated system user, installs Docker CE with UFW-based firewall and DOCKER-USER chain isolation, configures fail2ban and unattended-upgrades, sets up Node.js and pnpm, and installs OpenClaw either from npm (release mode) or from a Git checkout (development mode). The role does not configure the application or install its systemd serviceβ€”those steps are left to the operator via `openclaw onboard --install-daemon`. It supports remote deployment via inventory and includes CI tests for syntax, linting, and integration. The codebase is well-structured, security-conscious, and actively maintained, though it does not contain independently extractable components suitable for reuse outside this project.

RATING: 8.1/10 MAINT: active DRIFT: low
$ loading more...
$ submit: