open-index/open-npm huggingface dataset:
npm package: @keithk/deploy-cli
Description: CLI for DialUpDeploy - The fastest way to get a site online
Latest version: 0.1.0

# Deploy CLI

Welcome to the Deploy CLI! This is your command-line toolkit for managing, building, and running your Deploy server and sites with ease. Inspired by the spirit of the old internet, our CLI makes it simple for anyone to get started hosting and customizing their own web playground.

## Getting Started

Install dependencies at the project root:

```bash
git clone https://github.com/keithk/deploy.git
cd deploy
bun install
```

### Running CLI Commands

All CLI commands are run from the project root using Bun:

```bash
bun packages/cli/src/index.ts <command> [options]
```

Or, if you have a global install:

```bash
deploy <command> [options]
```

### Available Commands

```
list                     List all available sites and their commands
run <site> <command>     Run a command for a specific site
init [directory]         Initialize a new project
setup [local|production] Set up the project for local development or production
site create <name>       Create a new site
site list                List all sites
start                    Start the server
dev                      Start the server in development mode
action run [action-id]   Run actions
caddyfile update         Update Caddyfile
processes list           List all processes
processes watch          Real-time monitoring dashboard
help                     Show this help message

Options:
  --port, -p               Set the port for the web server (default: 3000)
  --root, -r               Set the root directory for sites (default: ./sites)
```

## Easy Server Setup

To set up your local development environment with HTTPS and subdomain routing, just run:

```sh
bun run setup:macos
```

This will:
- Install Caddy and dnsmasq if needed
- Configure subdomains like `blog.dev.flexi` to work locally
- Set up HTTPS for your local sites

For production, use:

```sh
bun run setup:production
```

This will walk you through deploying to your own domain (like `keith.is`).

## Building and Customizing Sites

The CLI is your gateway to building and customizing your own sites! Just add a folder to `/sites`, configure it, and use the CLI to build, run, or list your creations. Whether you’re making a static site, a dynamic app, or something totally unique, you’re in control.

## The Spirit of the Old Internet

Deploy is about making it easy and fun to carve out your own corner of the web. Hack, remix, and share—just like the early days. See `/sites` for examples and inspiration!

---

For more advanced usage, see the main project README or the docs.
npm package: @keithk/deploy-core
Description: Shared utilities and types for DialUpDeploy
Latest version: 0.1.0

# Flexible Web Core

This is the heart of Flexible Web—the core library that powers site discovery, configuration, routing, and more.

## What Does Core Do?

- Discovers and loads sites from `/sites`
- Handles configuration (`config.json` per site)
- Provides utilities for routing, subdomains, and dynamic mounting
- Exposes APIs for building your own site types

## Customizing Your Experience

Want to make Flexible Web your own? The core package is designed for hacking and extension. Build new site types, add custom configuration, or wire up your own plugins.

### Example: Custom Site Type

You can add new logic for site detection, build steps, or runtime behavior by extending the core APIs. See the code and comments for extension points!

## Building Your Own Sites

Add new folders in `/sites` and configure each with a `config.json`. The core will automatically detect and load them based on their type (static, dynamic, static-build, passthrough).

### Configuration Structure

Each site is configured with a `config.json` file that defines its behavior:

```json
{
  "type": "static-build",
  "buildDir": "dist",
  "commands": {
    "dev": "eleventy --serve",
    "build": "eleventy"
  },
  "subdomain": "my-site",
  "default": false,
  "actions": [
    {
      "id": "nightly-build",
      "type": "scheduled",
      "command": "bun run build",
      "cron": "0 3 * * *",
      "triggerBuild": true
    }
  ]
}
```

The configuration loader will automatically merge settings from `config.json` with any scripts defined in `package.json` and auto-detect appropriate values when possible.

## The Old Internet Spirit

Flexible Web Core is all about empowerment—giving you the tools to create, remix, and share your own web spaces. Dive in, experiment, and make something uniquely yours!

---

For a full guide to configuration and advanced usage, see the main project README or the docs.
npm package: @keithk/deploy-server
Description: Server for DialUpDeploy
Latest version: 0.1.0

# Flexible Web Server

This is the Flexible Web Server package—the Bun-powered server that brings your sites to life! It handles routing, subdomain magic, HTTPS, and all the plumbing so you can focus on building awesome web experiences.

## What Does the Server Do?

- Serves static, dynamic, static-build, and passthrough sites from `/sites`
- Handles subdomain routing (e.g., `blog.dev.flexi`, `api.dev.flexi`)
- Supports custom domains (see site `deploy.json`)
- Integrates with Caddy for HTTPS (local and production)
- Runs with Bun for speed and simplicity

## Getting Started

Start the server (after setup):

```bash
bun packages/cli/src/index.ts start
```

Or in development mode:

```bash
bun packages/cli/src/index.ts dev
```

## Local HTTPS & Subdomains

After running the setup script (`bun run setup:macos`), you can access your sites at URLs like:

- https://dev.flexi
- https://blog.dev.flexi

## Building and Serving Sites

The server works hand-in-hand with the CLI and core packages. Add your sites to `/sites`, configure them, and the server will do the rest—serving static files, mounting dynamic apps, or proxying to external servers.

## Customizing & Hacking

Want to dig deeper? The server is designed for extension. Add new middleware, change routing logic, or integrate new protocols. Check out the code in `src/` for entry points.

## The Joy of Making Websites

Flexible Web Server is about lowering the barriers to web creativity. Whether you’re building a personal homepage, a blog, or something wild, this server makes it fun and easy—just like the early web!

---

For more details on advanced setup and deployment, see the main project README or the docs.
npm package: @keithmonster/cli-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@keithmonster/cli`
npm package: @keithmonster/cli-linux-riscv64-gnu
Description: This is the **riscv64gc-unknown-linux-gnu** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-linux-riscv64-gnu`

This is the **riscv64gc-unknown-linux-gnu** binary for `@keithmonster/cli`
npm package: @keithmonster/cli-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@keithmonster/cli`
npm package: @keithmonster/cli-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@keithmonster/cli`
npm package: @keithmonster/cli-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@keithmonster/cli`
npm package: @keithmonster/cli-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@keithmonster/cli`
Latest version: 0.0.7

# `@keithmonster/cli-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@keithmonster/cli`
npm package: @keithmonster/utils
Description: utils for Node.js
Latest version: 0.2.6

# @keithmonster/utils

utils for Node.js


### FsUtils
```ts
export class FsUtils {
  static rmdir(path: string): boolean
  static mkdir(path: string): boolean
  static readdir(path: string): Array<string>
  static write(path: string, contents: string): boolean
  static read(path: string): string
  static rm(path: string): boolean
  static isDir(path: string): boolean
  static isFile(path: string): boolean
}
```

### PathUtils
```ts
export class PathUtils {
  static basename(path: string, ext?: string | undefined | null): string
  static extname(path: string): string | null
}
```
npm package: @keithmonster/utils-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@keithmonster/utils`
Latest version: 0.2.6

# `@keithmonster/utils-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@keithmonster/utils`
npm package: @keithmonster/utils-linux-riscv64-gnu
Description: This is the **riscv64gc-unknown-linux-gnu** binary for `@keithmonster/utils`
Latest version: 0.2.1

# `@keithmonster/utils-linux-riscv64-gnu`

This is the **riscv64gc-unknown-linux-gnu** binary for `@keithmonster/utils`
npm package: @keithmonster/utils-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@keithmonster/utils`
Latest version: 0.2.6

# `@keithmonster/utils-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@keithmonster/utils`
npm package: @keithmonster/utils-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@keithmonster/utils`
Latest version: 0.2.6

# `@keithmonster/utils-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@keithmonster/utils`
npm package: @keithmonster/utils-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@keithmonster/utils`
Latest version: 0.2.6

# `@keithmonster/utils-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@keithmonster/utils`
npm package: @keithmonster/utils-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@keithmonster/utils`
Latest version: 0.2.6

# `@keithmonster/utils-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@keithmonster/utils`
npm package: @keithwang/keith-babel-jsx
Description: [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/KeithWang2019/Keith-Babel-JSX/blob/master/LICENSE) [![webpack](https://img.shields.io/badge/webpack-%5E5.74.0-green)](#) [![@babel/core](https://img.shields.io/bad
Author: KeithWang
Latest version: 1.0.7


[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/KeithWang2019/Keith-Babel-JSX/blob/master/LICENSE)
[![webpack](https://img.shields.io/badge/webpack-%5E5.74.0-green)](#)
[![@babel/core](https://img.shields.io/badge/%40babel%2Fcore-%5E7.19.3-green)](#)
[![@babel/plugin-transform-react-jsx](https://img.shields.io/badge/%40babel%2Fplugin--transform--react--jsx-%5E7.19.0-green)](#)
# [Keith-Babel-JSX](https://github.com/KeithWang2019/Keith-Babel-JSX)

## 什么是Keith-Babel-JSX
Keith-Babel-JSX是一套转译代码，通过对JSX转译成对应的[Keith-Core](https://github.com/KeithWang2019/Keith-Core)虚拟对象，[Keith-Core](https://github.com/KeithWang2019/Keith-Core)负责渲染。

## 引用方式
```js
{
  test: /\.jsx?$/,
  exclude: /node_modules/,
  use: {
    loader: "babel-loader",
    options: {
      presets: ["@babel/preset-env"],
      plugins: [
        [
          "@babel/plugin-transform-react-jsx",
          {
            runtime: "automatic",
            importSource: "@keithwang/keith-babel-jsx",
          },
        ],
      ],
    },
  },
}
```

## 完整参考
代码结构与工程[Keith-Demo](https://github.com/KeithWang2019/Keith-Demo)
npm package: @keithwang/keith-core
Description: [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/KeithWang2019/Keith-Core/blob/master/LICENSE) [![webpack](https://img.shields.io/badge/webpack-%5E5.74.0-green)](#) [![@babel/core](https://img.shields.io/badge/%4
Author: KeithWang
Latest version: 1.0.21

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/KeithWang2019/Keith-Core/blob/master/LICENSE)
[![webpack](https://img.shields.io/badge/webpack-%5E5.74.0-green)](#)
[![@babel/core](https://img.shields.io/badge/%40babel%2Fcore-%5E7.19.3-green)](#)
[![@babel/plugin-transform-react-jsx](https://img.shields.io/badge/%40babel%2Fplugin--transform--react--jsx-%5E7.19.0-green)](#)
# [Keith-Core](https://github.com/KeithWang2019/Keith-Core)

## 什么是Keith-Core
Keith-Core是一套类似React的程序，通过[Keith-Babel-JSX](https://github.com/KeithWang2019/Keith-Babel-JSX)对JSX转译成对应的[Keith-Core](https://github.com/KeithWang2019/Keith-Core)虚拟对象，[Keith-Core](https://github.com/KeithWang2019/Keith-Core)负责渲染。【避免太多概念】

## 安装方式
```shell
npm install @keithwang/keith-core
```

## 完整参考
代码结构与工程[Keith-Demo](https://github.com/KeithWang2019/Keith-Demo)