🌐 US-Proxy
class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
Skip to content

SamuelMarks/libscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

228 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🚀 LibScript: The Universal Provisioning Engine

Native Power. Docker Optional. Zero YAML Bloat. Provision anything, anywhere.

License CI Tests

LibScript is a high-performance software provisioning framework and multicloud orchestrator. It’s built for engineers who want the reproducibility of containers with the raw performance of native execution—and the flexibility to switch between them in a single command.


🌟 Why LibScript?

Most configuration managers require a heavy runtime (Python, Ruby, Go) just to start working. LibScript doesn't. It's written in pure, battle-hardened POSIX shell and Windows CMD/PowerShell. It's as "bare metal" as it gets.

📦 "Every-Thing-is-a-Package-Manager"

LibScript's architecture is uniquely decentralized. Every component (Postgres, Nginx, Node.js, etc.) is its own self-contained package manager.

  • Decentralized Logic: Each module contains its own setup, lifecycle hooks, and platform-specific drivers.
  • Global Orchestration: The global CLI (libscript.sh / libscript.cmd) acts as a routing layer that can resolve complex dependency stacks (e.g., postgres>16,valkey,python>3.12) and provision them in one go.

⚡ Pure Power, Zero Bloat

  • Zero Dependencies: No agents. No runtimes. Just /bin/sh, .cmd, and .ps1.
  • Native Execution: Stop paying the "container tax." Deploy high-availability clusters directly on your host OS—whether it's a FreeBSD jail, a Windows server, or a Linux box.
  • Built-in PaaS capabilities: LibScript automatically generates systemd/launchd service files for your apps, handles Nginx reverse proxying, and automatically fetches Let's Encrypt TLS certs—all driven by a single libscript.json.
  • Truly Universal: One codebase for 🐧 Linux, 🪟 Windows (Native CMD), 🍎 macOS, 😈 BSD, and ☀️ Solaris.
  • Artifact Factory: Turn your local stack into a production-ready .msi, .exe (InnoSetup/NSIS), .deb, .rpm, .apk, .txz, .pkg, .dmg, Dockerfile, docker-compose.yml, or an interactive TUI installer with one command: package_as.

🛠️ Core Capabilities

🏛️ Native Component Management

LibScript allows you to manage tools either through the global orchestrator or via each component's autonomous CLI.

Using the Global Orchestrator:

# Install and start using the top-level routing layer
./libscript.sh install nodejs 20
./libscript.sh install postgres 16
./libscript.sh start postgres

Using the Local Component CLI:

# Every component is a standalone package manager
./_lib/languages/nodejs/cli.sh install 20
./_lib/databases/postgres/cli.sh install 16
./_lib/databases/postgres/cli.sh start postgres

☸️ Declarative Stack Provisioning

Define your entire infrastructure in a simple libscript.json and let the resolution engine handle the rest.

{
  "name": "my-production-stack",
  "dependencies": {
    "nodejs": ">=20.0.0",
    "postgres": "16",
    "valkey": "latest"
  }
}
# Install all dependencies defined in libscript.json
./libscript.sh install-deps

🧠 AI & Machine Learning Infrastructure

Deploying hardware-accelerated workloads shouldn't require a masterclass in DevOps. LibScript integrates natively with TPU and GPU APIs:

  • TPU VM Provisioning: One-click deployment of ml-eval-node stacks backed by GCS FUSE and TensorBoard.
  • Inference Engines: First-class support for vLLM, JetStream, and Ollama.
  • GKE & XPK: Distributed training across TPU Pods using native xpk clusters.

🌐 Built-in PaaS & netctl

Stop writing boilerplate server configurations. LibScript includes netctl, a universal routing and proxy configuration component that turns your raw OS into a Platform-as-a-Service (PaaS).

  • Service Management: Automatically daemonizes your applications, generating systemd (Linux), launchd (macOS), or Windows Services using the netctl abstraction layer (replacing legacy ingress scripts).
  • Reverse Proxying: Maps application ports to domain names, dynamically configuring Nginx or HAProxy.
  • TLS Automation: Automatically fetches and renews Let's Encrypt certificates via Certbot for secure HTTPS routing out of the box.

🌍 Multicloud Mastery

Manage AWS, Azure, GCP, and DigitalOcean through a single, idempotent interface using the provision and deprovision commands. LibScript leverages native provider CLIs under the hood, securely utilizing your existing environment credentials (~/.aws/credentials, gcloud auth, etc.) without requiring external state files or agents.

# Provision a stack on AWS: <provider> <stack-name> <network> <region> <local-path> <remote-path>
./libscript.sh provision aws my-stack my-vpc us-east-1 ./ ~/my-app

# Tear down the stack and its associated resources
./libscript.sh deprovision aws my-stack us-east-1

📦 The Generator Engine

Convert your shell logic into native installers or container images instantly.

LibScript doesn't just install software—it acts as a powerful artifact factory. Using the package_as command, you can export your entire dependency tree, component logic, and stack configuration into a variety of distributable formats, completely automatically.

Supported Packaging Formats:

  • Windows Installers: .msi (WiX), .exe (InnoSetup, NSIS)
  • Linux Packages: .deb (Debian/Ubuntu), .rpm (RHEL/Fedora/CentOS), .apk (Alpine)
  • macOS/BSD Packages: .pkg (macOS), .dmg (macOS), .txz (FreeBSD)
  • Containers: Dockerfile, docker-compose.yml
  • Interactive: tui (Terminal UI script)

How it Works

When you run package_as, LibScript analyzes your declarative stack configuration, traces the required _lib modules, and compiles them into a self-contained installer or container specification.

# Generate a Windows Installer (.msi) for your current stack
./libscript.sh package_as msi

# Generate a Dockerfile and docker-compose.yml
./libscript.sh package_as docker
./libscript.sh package_as docker-compose

# Generate a Debian package (.deb)
./libscript.sh package_as deb

Granular Dependency Control

The generator provides strict control over how your artifacts fetch and bundle dependencies via the LIBSCRIPT_GLOBAL_INSTALL_METHOD environment variable:

  • system: Relies on the target OS's native package manager (e.g., apt, apk, pacman). This keeps artifacts tiny and leverages the OS maintainers' updates.
  • source: Compiles tools from source or downloads static binaries. Ensures maximum isolation, reproducibility, and works on minimal base systems.

You can even define local overrides (e.g., PYTHON_INSTALL_METHOD="uv") to mix and match system-provided stable packages with newer, custom-managed toolchains within the same generated artifact.

Smart Context Assembly

The generator engine automatically handles the assembly of file structures and configurations. For Docker, it natively resolves filesystem composition before handing off to the container daemon. This bypasses common limitations (like symbolic links failing across Dockerfile build contexts) without requiring you to write tedious COPY commands or manage context paths manually—LibScript yields a ready-to-build, fully contained directory.


🚀 Quick Start

1. Clone the power:

git clone https://github.com/SamuelMarks/libscript.git
cd libscript

2. List everything you can build:

./libscript.sh list

3. Install a high-performance stack natively:

./libscript.sh install nodejs 20
./libscript.sh install postgres latest
./libscript.sh start postgres

🏗️ Architecture: Bare Metal First

LibScript is designed as a routing execution layer. It detects your OS, maps generic dependencies to local package managers (apt, brew, choco, pkg), and executes optimized setup scripts.

  • cli/: Core CLI commands, orchestration logic, and the package_as transformation engine.
  • _lib/: The heart of the system. Modular components (over 140+ available) where each directory is a standalone manager.
  • gen/: Artifact generator module, synthesizing logic into installers, Docker images, and packages.
  • netctl/: Universal routing, firewall, and reverse proxy configuration component.
  • scripts/: Core system utilities for daemonization, cloud deployments, and git hook management.
  • stacks/: Pre-configured, battle-tested blueprints for CMS, ERP, Data Science, and more.
  • vagrant/: Vagrantfiles and setup scripts for testing across multiple OS targets (Alpine, Debian, FreeBSD, etc.).
  • dockerfiles-ssh/: Base container images pre-configured for SSH access and testing.

🤝 Community & Support

LibScript is built for the community. Whether you're managing a single Raspberry Pi or a global multicloud fleet, we want to hear from you.


LibScript: Because your infrastructure should be as fast as your code.


License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

CI Checks Matrix

CI

Component Ubuntu macOS Windows
_lib/app-servers/jetstream
_lib/app-servers/nodejs-server
_lib/app-servers/python-server
_lib/app-servers/rust-server
_lib/app-servers/vllm
_lib/caches/redis
_lib/caches/valkey
_lib/cloud-providers/aws
_lib/cloud-providers/azure
_lib/cloud-providers/gcp
_lib/cloud-providers/gcp/cli
_lib/cloud-providers/gcp/gke-tpu-cluster
_lib/cloud-providers/gcp/gpu-vm
_lib/cloud-providers/gcp/tpu-vm
_lib/cloud/core
_lib/databases/duckdb
_lib/databases/etcd
_lib/databases/mariadb
_lib/databases/mongodb
_lib/databases/postgres
_lib/databases/sqlite
_lib/git-servers/gitea
_lib/git-servers/gitlab
_lib/git-servers/utils
_lib/init-systems/openrc
_lib/init-systems/systemd
_lib/languages/bun
_lib/languages/c
_lib/languages/cc
_lib/languages/cpp
_lib/languages/csharp
_lib/languages/deno
_lib/languages/elixir
_lib/languages/go
_lib/languages/java
_lib/languages/kotlin
_lib/languages/nodejs
_lib/languages/php
_lib/languages/python
_lib/languages/ruby
_lib/languages/rust
_lib/languages/sh
_lib/languages/swift
_lib/languages/zig
_lib/logging/fluentbit
_lib/logging/tensorboard
_lib/orchestration/docker
_lib/orchestration/kubernetes-k0s
_lib/orchestration/kubernetes-thw
_lib/orchestration/kubernetes/kubectl
_lib/package-managers/ansible-galaxy
_lib/package-managers/apk
_lib/package-managers/apt
_lib/package-managers/aqua
_lib/package-managers/asdf
_lib/package-managers/awscli
_lib/package-managers/azure-cli
_lib/package-managers/brew
_lib/package-managers/bun-pm
_lib/package-managers/bundler
_lib/package-managers/cabal
_lib/package-managers/cargo
_lib/package-managers/cargo-binstall
_lib/package-managers/choco
_lib/package-managers/composer
_lib/package-managers/conan
_lib/package-managers/conda
_lib/package-managers/cpanm
_lib/package-managers/cygwin
_lib/package-managers/deno-pm
_lib/package-managers/dnf
_lib/package-managers/emerge
_lib/package-managers/eopkg
_lib/package-managers/flatpak
_lib/package-managers/fnm
_lib/package-managers/gem
_lib/package-managers/ghcup
_lib/package-managers/go-pm
_lib/package-managers/google-cloud-sdk
_lib/package-managers/guix
_lib/package-managers/hatch
_lib/package-managers/helm
_lib/package-managers/julia
_lib/package-managers/krew
_lib/package-managers/luarocks
_lib/package-managers/macports
_lib/package-managers/mamba
_lib/package-managers/mas
_lib/package-managers/mise
_lib/package-managers/mix
_lib/package-managers/msys2
_lib/package-managers/nimble
_lib/package-managers/nix
_lib/package-managers/npm
_lib/package-managers/nuget
_lib/package-managers/nvm
_lib/package-managers/opam
_lib/package-managers/pacman
_lib/package-managers/paru
_lib/package-managers/pdm
_lib/package-managers/pip
_lib/package-managers/pipx
_lib/package-managers/pkg
_lib/package-managers/pkgx
_lib/package-managers/pnpm
_lib/package-managers/poetry
_lib/package-managers/pub
_lib/package-managers/pyenv
_lib/package-managers/r
_lib/package-managers/rbenv
_lib/package-managers/rebar3
_lib/package-managers/rustup
_lib/package-managers/rvm
_lib/package-managers/rye
_lib/package-managers/sbt
_lib/package-managers/scoop
_lib/package-managers/sdkman
_lib/package-managers/snap
_lib/package-managers/spack
_lib/package-managers/stack
_lib/package-managers/swupd
_lib/package-managers/uv
_lib/package-managers/vcpkg
_lib/package-managers/winget
_lib/package-managers/xbps
_lib/package-managers/yarn
_lib/package-managers/yay
_lib/package-managers/zypper
_lib/security/openbao
_lib/storage-layers/gcsfuse
_lib/storage-layers/minio
_lib/toolchains/bazel
_lib/toolchains/cmake
_lib/toolchains/coursier
_lib/toolchains/gradle
_lib/toolchains/huggingface-cli
_lib/toolchains/just
_lib/toolchains/maven
_lib/toolchains/xpk
_lib/utilities/7zip
_lib/utilities/aria2
_lib/utilities/busybox
_lib/utilities/curl
_lib/utilities/dash
_lib/utilities/jq
_lib/utilities/powershell
_lib/utilities/psmux
_lib/utilities/tmux
_lib/utilities/wait4x
_lib/utilities/wget
_lib/web-servers/caddy
_lib/web-servers/httpd
_lib/web-servers/iis
_lib/web-servers/lighttpd
_lib/web-servers/nginx
stacks/cms/drupal
stacks/cms/joomla
stacks/cms/wordpress
stacks/collaboration/nextcloud
stacks/crawlers/firecrawl
stacks/data-science/jupyterhub
stacks/ecommerce/magento
stacks/ecommerce/prestashop
stacks/ecommerce/woocommerce
stacks/erp/odoo
stacks/forums/phpbb
stacks/networking/openvpn
stacks/scaffolds/serve-actix-diesel-auth-scaffold
stacks/task-queues/celery

About

Docker-optional zero-dependency multicloud cross-platform deploys (Windows, Linux, BSD, macOS, SunOS, …)

Topics

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
CC0-1.0
LICENSE-CC0
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors