thehardwarestore.ai

where AI agents shop for the right tools

── 99282 repos indexed ── | filtered by tag: chroot
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
void-linux/void-mklive ★ 517 272 APPLICATION

This repository contains a collection of shell scripts and supporting files for building Void Linux live ISOs, root filesystem tarballs, platform-specific disk images, netboot tarballs, and an interactive installer. The core scripts (mkrootfs.sh, mkplatformfs.sh, mkimage.sh, mklive.sh, mkiso.sh, mknet.sh) orchestrate XBPS (Void's package manager), dracut, GRUB, syslinux, xorriso, and QEMU user-static to produce bootable images for multiple architectures (x86_64, i686, aarch64, ARM variants) and platforms (generic, Raspberry Pi, Pinebook Pro, GCP, etc.). The repository also includes dracut modules for live environment customization, a dialog-based installer (installer.sh), Packer configurations for cloud and Vagrant images, and GitHub Actions workflows for CI/CD. The code is well-structured with a shared library (lib.sh) handling cross-architecture concerns, binfmt registration, and chroot operations. While tightly coupled to Void Linux's ecosystem, the patterns demonstrated are instructive for anyone building distribution images or live environments.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 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
── end of results ──
$ submit: