Skip to content

Commit e8718b0

Browse files
authored
Merge pull request #328 from txn2/docs
Documentation website updates
2 parents 497ad00 + 7c46bef commit e8718b0

File tree

10 files changed

+418
-145
lines changed

10 files changed

+418
-145
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
[![Docker Pulls](https://img.shields.io/docker/pulls/txn2/kubefwd)](https://hub.docker.com/r/txn2/kubefwd)
1111
[![GitHub Downloads](https://img.shields.io/github/downloads/txn2/kubefwd/total)](https://github.com/txn2/kubefwd/releases)
1212

13+
**[Documentation](https://kubefwd.com)** | **[Getting Started](https://kubefwd.com/getting-started/)** | **[TUI Guide](https://kubefwd.com/tui-guide/)**
14+
1315
## Develop Locally, Connect to Kubernetes
1416

1517
**kubefwd** enables developers to work on their local machine while seamlessly accessing services running in a Kubernetes cluster. If you're building a new API that needs to connect to a database at `db:5432`, an auth service at `auth:443`, and a cache at `redis:6379`, all running in your development cluster, kubefwd makes them available locally by their service names, exactly as they would appear in-cluster. No environment-specific configuration, no local service setup, no Docker Compose files. Just run `kubefwd` and your application's existing connection strings work.
@@ -126,9 +128,7 @@ Download from [releases](https://github.com/txn2/kubefwd/releases):
126128

127129
### Windows
128130

129-
```batch
130-
scoop install kubefwd
131-
```
131+
Download from [releases](https://github.com/txn2/kubefwd/releases) - extract `kubefwd.exe` and run as Administrator.
132132

133133
### Docker
134134

docs/getting-started.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,13 @@ sudo mv kubefwd /usr/local/bin/
5252

5353
### Windows
5454

55-
Using [Scoop](https://scoop.sh/):
55+
Download the Windows executable from [GitHub Releases](https://github.com/txn2/kubefwd/releases/latest):
5656

57-
```batch
58-
scoop install kubefwd
59-
```
60-
61-
To upgrade:
57+
1. Download `kubefwd_Windows_x86_64.zip`
58+
2. Extract `kubefwd.exe`
59+
3. Add to your PATH or run directly
6260

63-
```batch
64-
scoop update kubefwd
65-
```
61+
Run as Administrator (required for hosts file access).
6662

6763
### Docker
6864

docs/images/bg-mirror.jpg

415 KB
Loading

docs/images/brand-text-800-blk.png

16.9 KB
Loading

docs/images/brand-text-800.png

17.1 KB
Loading

docs/images/kubefwd-masthead.jpg

53.4 KB
Loading

docs/images/logo_icon.png

14.1 KB
Loading

docs/index.md

Lines changed: 66 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,74 @@
1-
# kubefwd Documentation
2-
3-
> Bulk Kubernetes port forwarding with an interactive TUI, unique IPs per service, and automatic reconnection.
4-
5-
![kubefwd TUI](images/tui-110-main-active.png)
6-
7-
## What is kubefwd?
8-
9-
kubefwd is a command-line tool that bulk-forwards Kubernetes services to your local machine. Unlike `kubectl port-forward`, kubefwd:
10-
11-
- Forwards **all services** in a namespace with one command
12-
- Assigns **unique IP addresses** (127.x.x.x) to each service
13-
- Updates `/etc/hosts` so you can use **service names** directly
14-
- Provides an **interactive TUI** with real-time metrics
15-
- **Auto-reconnects** when pods restart
16-
17-
## Quick Start
1+
---
2+
title: kubefwd
3+
description: Bulk port forward Kubernetes services for local development
4+
hide:
5+
- navigation
6+
- toc
7+
---
8+
9+
<div class="home-hero">
10+
<img src="images/brand-text-800-blk.png" alt="kubefwd" class="hero-logo hero-logo-light">
11+
<img src="images/brand-text-800.png" alt="kubefwd" class="hero-logo hero-logo-dark">
12+
</div>
13+
14+
<div class="home-intro">
15+
<p><strong>kubefwd</strong> enables developers to work locally while accessing services running in Kubernetes. Connect to <code>db:5432</code>, <code>auth:443</code>, <code>redis:6379</code>, all by service name, exactly as in-cluster. No environment config, no Docker Compose. Just run kubefwd.</p>
16+
</div>
17+
18+
<div class="home-buttons">
19+
<a href="getting-started/" class="btn btn-primary">Get Started</a>
20+
<a href="https://github.com/txn2/kubefwd" class="btn btn-secondary">GitHub</a>
21+
</div>
22+
23+
<div class="home-screenshot">
24+
<img src="images/tui-110-main-active.png" alt="kubefwd TUI">
25+
</div>
26+
27+
<div class="home-features">
28+
<div class="feature">
29+
<span class="feature-icon">🔌</span>
30+
<div>
31+
<strong>Unique IP per Service</strong>
32+
<span>Each service gets its own 127.x.x.x. Multiple databases on port 3306? No conflicts.</span>
33+
</div>
34+
</div>
35+
<div class="feature">
36+
<span class="feature-icon">🔄</span>
37+
<div>
38+
<strong>Auto-Reconnect</strong>
39+
<span>Pods restart? kubefwd reconnects automatically with exponential backoff.</span>
40+
</div>
41+
</div>
42+
<div class="feature">
43+
<span class="feature-icon">📊</span>
44+
<div>
45+
<strong>Interactive TUI</strong>
46+
<span>Real-time status, traffic metrics, and pod logs in your terminal.</span>
47+
</div>
48+
</div>
49+
<div class="feature">
50+
<span class="feature-icon">🌐</span>
51+
<div>
52+
<strong>Service Names Work</strong>
53+
<span>Updates /etc/hosts so any app can access services by name.</span>
54+
</div>
55+
</div>
56+
</div>
57+
58+
<div class="home-install">
1859

1960
```bash
20-
# Install
61+
# macOS
2162
brew install txn2/tap/kubefwd
2263

23-
# Forward all services with the TUI
64+
# Then forward services
2465
sudo -E kubefwd svc -n my-namespace --tui
2566
```
2667

27-
Access services by name:
28-
29-
```bash
30-
curl http://api-service:8080
31-
mysql -h database -P 3306
32-
```
33-
34-
## Documentation
35-
36-
### Getting Started
37-
38-
- [Installation & Quick Start](getting-started.md) - Get up and running
39-
40-
### Using kubefwd
41-
42-
- [TUI Guide](tui-guide.md) - Interactive interface, keyboard shortcuts
43-
- [Configuration](configuration.md) - All command line flags and options
44-
- [Advanced Usage](advanced-usage.md) - Multi-namespace, multi-cluster, Docker
45-
46-
### Reference
47-
48-
- [Troubleshooting](troubleshooting.md) - Common issues and solutions
49-
- [Architecture](architecture.md) - How kubefwd works under the hood
50-
- [Comparison](comparison.md) - kubefwd vs Telepresence, mirrord, Gefyra
51-
52-
## Key Features
53-
54-
### Interactive TUI
55-
56-
The Terminal User Interface provides:
57-
- Real-time service status monitoring
58-
- Traffic metrics with sparkline graphs
59-
- Pod log streaming
60-
- Keyboard-driven navigation
61-
62-
Press `?` for help, `q` to quit.
63-
64-
### Unique IP per Service
65-
66-
Each service gets its own loopback IP (127.1.27.x), eliminating port conflicts:
67-
68-
```
69-
127.1.27.1 api-service
70-
127.1.27.2 database
71-
127.1.27.3 cache
72-
```
73-
74-
Multiple services can use the same port (e.g., several databases on 3306).
75-
76-
### Automatic Reconnection
77-
78-
With `--tui` or `-a`, kubefwd automatically reconnects when:
79-
- Pods are restarted
80-
- Connections drop
81-
- Services are updated
82-
83-
Uses exponential backoff (1s → 5min max).
84-
85-
### Headless Service Support
86-
87-
For headless services (ClusterIP: None), kubefwd forwards all pods:
88-
- `service-name` → first pod
89-
- `pod-name.service-name` → specific pods
90-
91-
Essential for StatefulSets and database clusters.
92-
93-
## Comparison with kubectl
94-
95-
| Feature | kubectl port-forward | kubefwd |
96-
|---------|---------------------|---------|
97-
| Services per command | One | All in namespace |
98-
| IP allocation | localhost only | Unique IP per service |
99-
| Port conflicts | Manual management | None |
100-
| Service name resolution | Not supported | Automatic |
101-
| Auto-reconnect | No | Yes |
102-
| Monitoring | None | TUI with metrics |
103-
104-
## Installation Options
105-
106-
| Platform | Command |
107-
|----------|---------|
108-
| macOS | `brew install txn2/tap/kubefwd` |
109-
| Linux | Download from [releases](https://github.com/txn2/kubefwd/releases) |
110-
| Windows | `scoop install kubefwd` |
111-
| Docker | `docker run txn2/kubefwd ...` |
112-
113-
See [Getting Started](getting-started.md) for details.
114-
115-
## Requirements
116-
117-
- kubectl configured with cluster access
118-
- Root/sudo access (required for /etc/hosts and network interfaces)
119-
120-
## Source Code
121-
122-
kubefwd is open source under the Apache 2.0 license.
68+
</div>
12369

124-
- GitHub: [https://github.com/txn2/kubefwd](https://github.com/txn2/kubefwd)
125-
- Issues: [https://github.com/txn2/kubefwd/issues](https://github.com/txn2/kubefwd/issues)
70+
<div class="home-footer">
71+
<a href="https://github.com/txn2/kubefwd/releases"><img src="https://img.shields.io/github/release/txn2/kubefwd.svg?style=flat-square" alt="Release"></a>
72+
<a href="https://github.com/txn2/kubefwd"><img src="https://img.shields.io/github/stars/txn2/kubefwd?style=flat-square" alt="Stars"></a>
73+
<p>Open source by <a href="https://twitter.com/cjimti">Craig Johnston</a></p>
74+
</div>

0 commit comments

Comments
 (0)