CHost is a powerful command-line tool that simplifies local web development by allowing you to use custom, easy-to-remember domain names (like myproject.local
) for your localhost
projects instead of dealing with ports. It automatically manages a proxy server to route these domains to the correct local ports.
- Custom Local Domains: Run your projects on memorable domains like
app.local
instead oflocalhost:3000
. - Automatic Proxying: A built-in proxy server that listens on standard ports (80 for HTTP, 443 for HTTPS) and forwards requests to your development servers.
- Automatic SSL: Automatically generates self-signed SSL certificates for your local domains, enabling you to test over HTTPS.
- Hosts File Management: Automatically adds and removes entries from your system's hosts file (with your permission).
- Simple CLI: An easy-to-use command-line interface for managing your domains.
- Cross-Platform: Works on macOS, Linux, and Windows.
You can install CHost globally using npm:
npm install -g chost
Note: Since CHost needs to modify the hosts file and listen on protected ports, you will likely need to run its commands with sudo
on macOS/Linux or as an Administrator on Windows.
-
Initialize CHost: Navigate to your project's directory and run:
sudo chost init
This will create a
.chost
configuration file and might ask you to set up your first domain. -
Add a Domain: To map a domain like
my-app.local
to a project running on port3000
, run:sudo chost add my-app.local --port 3000
-
Start the Server: Start the CHost proxy server:
sudo chost server start
The server will run in the background.
-
Access Your Project: You can now open
http://my-app.local
orhttps://my-app.local
in your browser to access your local development server.
chost init
: Initialize a new CHost configuration in the current directory.chost add <domain> [--port <port>]
: Add a new domain and map it to a port.chost remove <domain>
: Remove a domain and its configuration.chost list
: List all configured domains.chost server start
: Start the background proxy server.chost server stop
: Stop the background proxy server.chost server status
: Check the status of the proxy server.chost server logs
: View the server's logs.
CHost combines three main components:
- Configuration File (
.chost
): A JSON file in your project directory where your domain-to-port mappings are stored. - Hosts File: CHost adds entries to your system's hosts file to make your custom domains point to
127.0.0.1
. - Proxy Server: A background server listens on ports 80 and 443. When it receives a request, it looks at the domain name and proxies the request to the correct
localhost
port based on your configuration.
This setup allows you to have multiple projects running on different ports, all accessible through clean, memorable domain names.