@ollamawg/cli 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +48 -14
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -6,7 +6,7 @@ Reach your Ollama server from your laptop and phone without exposing it to the i
6
6
 
7
7
  It is a single Go binary. WireGuard runs in user space through [wireguard-go](https://git.zx2c4.com/wireguard-go) and gVisor's network stack, so the server needs no root, no kernel module and no TUN device. Computers connect with `ollamawg connect`, which needs no admin rights either. Phones use the official WireGuard app, because the keys and protocol are standard WireGuard.
8
8
 
9
- ![Dashboard](https://raw.githubusercontent.com/himanshu-mamgain/ollamawg/v0.2.2/docs/images/dashboard.png)
9
+ ![Dashboard](https://raw.githubusercontent.com/himanshu-mamgain/ollamawg/v0.4.0/docs/images/dashboard.png)
10
10
 
11
11
  <sub>Screenshot taken with simulated devices and traffic.</sub>
12
12
 
@@ -43,7 +43,7 @@ Ollama itself stays on `127.0.0.1`. Nothing outside the tunnel can talk to it.
43
43
  - ask your ISP for a public IP;
44
44
  - or relay through a small VPS.
45
45
 
46
- See [Troubleshooting](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/getting-started.md#troubleshooting).
46
+ See [Troubleshooting](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/getting-started.md#troubleshooting).
47
47
 
48
48
  ## Install
49
49
 
@@ -53,7 +53,7 @@ npx @ollamawg/cli version # or run it without installing
53
53
  go install github.com/himanshu-mamgain/ollamawg/cmd/ollamawg@latest
54
54
  ```
55
55
 
56
- Standalone binaries are attached to every [GitHub Release](https://github.com/himanshu-mamgain/ollamawg/releases). A `Dockerfile` is included; see [Running as a service](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/deploy.md#docker).
56
+ Standalone binaries are attached to every [GitHub Release](https://github.com/himanshu-mamgain/ollamawg/releases). A `Dockerfile` is included; see [Running as a service](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/deploy.md#docker).
57
57
 
58
58
  ## Quickstart
59
59
 
@@ -95,11 +95,43 @@ You can also use **Add device** in the dashboard, then **Phone**.
95
95
 
96
96
  Ollama apps such as Enchanted or Reins work too: point them at `http://10.77.0.1:11434`.
97
97
 
98
- <img src="https://raw.githubusercontent.com/himanshu-mamgain/ollamawg/v0.2.2/docs/images/chat.png" alt="The chat page on a phone" width="300">
98
+ **Missed the QR code, lost a config, or got a new phone?** The server never stores device private keys, so a config can't be shown twice. Issue a new one instead: `ollamawg reissue --name phone --qr`, or **New config** on the device in the dashboard. The device keeps its name, address and policy, and the old config stops working.
99
+
100
+ <img src="https://raw.githubusercontent.com/himanshu-mamgain/ollamawg/v0.4.0/docs/images/chat.png" alt="The chat page on a phone" width="300">
99
101
 
100
102
  <sub>Chat page on a phone, with a simulated model reply.</sub>
101
103
 
102
- See [Getting started](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/getting-started.md) for the full walkthrough.
104
+ See [Getting started](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/getting-started.md) for the full walkthrough.
105
+
106
+ ## Dashboard login
107
+
108
+ The dashboard runs on the server at `http://127.0.0.1:8088`. The browser asks for a username and password.
109
+
110
+ **Username and password.** `init` creates the user `admin` with a random password, which it prints and saves in `server.yaml` under `admin.password`. To choose your own:
111
+
112
+ ```sh
113
+ ollamawg passwd # asks for a new password twice
114
+ ollamawg passwd --user himanshu # also change the username
115
+ ollamawg init --endpoint ... --user himanshu --set-password # or choose both at setup
116
+ ```
117
+
118
+ Passwords you choose are stored as a bcrypt hash (`admin.password_hash`), never in plain text. A running server picks up the change within 2 seconds.
119
+
120
+ **Two-factor login (2FA).** This adds a 6-digit code from an authenticator app, such as Google Authenticator, Authy, 1Password or Microsoft Authenticator.
121
+
122
+ ```sh
123
+ ollamawg 2fa enable # shows a QR code: scan it, then type the code to confirm
124
+ ollamawg 2fa status
125
+ ollamawg 2fa disable # also the way back in if you lose your phone
126
+ ```
127
+
128
+ You can also turn it on from the **2FA** button in the dashboard.
129
+
130
+ With 2FA on:
131
+ - The dashboard opens on a login form that asks for the username, password and code.
132
+ - Scripts and Prometheus use the API token (`admin.api_token`) as `Authorization: Bearer <token>`.
133
+
134
+ See [Dashboard and admin API](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/dashboard.md).
103
135
 
104
136
  ## Features
105
137
 
@@ -134,11 +166,13 @@ See [Getting started](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/d
134
166
  Server
135
167
  init create server.yaml with keys and a dashboard password
136
168
  add-peer register a device; --qr prints a QR code for the WireGuard app
169
+ reissue new key and config (or --qr) for an existing device
137
170
  remove-peer delete a device
138
171
  list-peers show devices and rules
139
172
  block block --device or --ip
140
173
  unblock undo a block
141
174
  serve run the tunnel, proxy, chat page and dashboard
175
+ passwd set your own dashboard username and password
142
176
  2fa enable, disable or check two-factor dashboard login
143
177
 
144
178
  Client
@@ -156,19 +190,19 @@ Run `ollamawg <command> -h` for a command's flags.
156
190
 
157
191
  | Guide | What's in it |
158
192
  |---|---|
159
- | [Getting started](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/getting-started.md) | Install, set up a server, add laptops and phones, connect |
160
- | [Configuration](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/configuration.md) | Every field in `server.yaml` and client configs, roles, model rules |
161
- | [Dashboard and admin API](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/dashboard.md) | The UI, two-factor login, the HTTP API behind it, Prometheus metrics |
162
- | [Security model](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/security.md) | What is protected, how, and what is not |
163
- | [Running as a service](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/deploy.md) | systemd, launchd, Windows, Docker, port forwarding |
164
- | [Go library](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/library.md) | Embedding the server and client in your own programs |
193
+ | [Getting started](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/getting-started.md) | Install, set up a server, add laptops and phones, connect |
194
+ | [Configuration](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/configuration.md) | Every field in `server.yaml` and client configs, roles, model rules |
195
+ | [Dashboard and admin API](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/dashboard.md) | The UI, two-factor login, the HTTP API behind it, Prometheus metrics |
196
+ | [Security model](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/security.md) | What is protected, how, and what is not |
197
+ | [Running as a service](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/deploy.md) | systemd, launchd, Windows, Docker, port forwarding |
198
+ | [Go library](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/library.md) | Embedding the server and client in your own programs |
165
199
 
166
200
  ## Limitations
167
201
 
168
202
  - **Devices need to reach one UDP port on the server.** There is no relay or NAT traversal. CGNAT connections need one of the workarounds in [Requirements](#requirements).
169
203
  - **The dashboard has one admin account.** Put a reverse proxy with SSO in front if several people manage it.
170
204
  - **Chat history lives in each device's browser.** It is not synced between devices or stored on the server.
171
- - **No independent security audit yet.** The cryptography comes from wireguard-go and gVisor. The policy layer is small and covered by end-to-end tests. See the [Security model](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/docs/security.md).
205
+ - **No independent security audit yet.** The cryptography comes from wireguard-go and gVisor. The policy layer is small and covered by end-to-end tests. See the [Security model](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/docs/security.md).
172
206
 
173
207
  ## Building from source
174
208
 
@@ -182,7 +216,7 @@ Go 1.24 or newer is required. Cross-compiling works out of the box, for example
182
216
 
183
217
  ## Releasing
184
218
 
185
- Releases are cut from `main` by [`.github/workflows/publish.yml`](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/.github/workflows/publish.yml):
219
+ Releases are cut from `main` by [`.github/workflows/publish.yml`](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/.github/workflows/publish.yml):
186
220
 
187
221
  1. In a PR, bump `version` (and its `optionalDependencies`) in `npm/cli/package.json` and `Version` in `server.go`. A test fails if they differ.
188
222
  2. Merge the PR. The workflow publishes every npm package that's missing that version, using trusted publishing with provenance, then creates the GitHub Release with binaries.
@@ -191,4 +225,4 @@ A re-run finishes a release that stopped halfway.
191
225
 
192
226
  ## License
193
227
 
194
- [MIT](https://github.com/himanshu-mamgain/ollamawg/blob/v0.2.2/LICENSE)
228
+ [MIT](https://github.com/himanshu-mamgain/ollamawg/blob/v0.4.0/LICENSE)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ollamawg/cli",
3
- "version": "0.2.2",
3
+ "version": "0.4.0",
4
4
  "description": "Reach your Ollama server from anywhere through a user-space WireGuard tunnel, with per-device access control and a dashboard.",
5
5
  "keywords": [
6
6
  "ollama",
@@ -28,11 +28,11 @@
28
28
  "node": ">=16"
29
29
  },
30
30
  "optionalDependencies": {
31
- "@ollamawg/darwin-arm64": "0.2.2",
32
- "@ollamawg/darwin-x64": "0.2.2",
33
- "@ollamawg/freebsd-x64": "0.2.2",
34
- "@ollamawg/linux-arm64": "0.2.2",
35
- "@ollamawg/linux-x64": "0.2.2",
36
- "@ollamawg/win32-x64": "0.2.2"
31
+ "@ollamawg/darwin-arm64": "0.4.0",
32
+ "@ollamawg/darwin-x64": "0.4.0",
33
+ "@ollamawg/freebsd-x64": "0.4.0",
34
+ "@ollamawg/linux-arm64": "0.4.0",
35
+ "@ollamawg/linux-x64": "0.4.0",
36
+ "@ollamawg/win32-x64": "0.4.0"
37
37
  }
38
38
  }