Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

A self-hosted, local-first hardware monitoring system for Windows and Linux PCs.

> **New here? Read [Start Here](docs/START-HERE.md) instead of this file.**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include the new guide in downloadable artifacts

The new primary link works in the GitHub checkout but is broken in every packaged copy of this README: scripts/build-release.ps1 stages only agent, static, scripts, and installer; scripts/build-linux-portable.sh likewise omits docs; and scripts/build-installer.ps1 stages the README without the docs directory. Users opening the README delivered by the ZIP, Linux tarball, or installer therefore cannot reach docs/START-HERE.md; stage that file in each artifact or use an absolute GitHub link.

Useful? React with 馃憤聽/ 馃憥.

> It walks through installing, getting past the browser security warning, and
> finding your token, in plain language. This README is the reference. That is
> the guide.

---

## Features
Expand Down Expand Up @@ -39,6 +44,8 @@ A self-hosted, local-first hardware monitoring system for Windows and Linux PCs.

## Installation

*Step-by-step version with the gotchas explained: [Start Here](docs/START-HERE.md).*

### Installer (recommended)

1. Download **`HumWatch-Setup-vX.X.X.exe`** from the [releases page](https://github.com/StaticHumStudio/HumWatch/releases)
Expand Down
223 changes: 223 additions & 0 deletions docs/START-HERE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Start Here

This guide gets HumWatch running and gets you looking at it. No prior experience assumed.

If you only read one thing, read [The two things that confuse everyone](#the-two-things-that-confuse-everyone). That is where people get stuck.

---

## What HumWatch is

HumWatch watches your computer's hardware. Temperatures, fan speeds, how hard the CPU is working, how much memory is left, how much disk space you have. It shows all of it on a web page.

It runs on your own machine. Nothing goes to the cloud. There is no account to make.

---

## Step 1: Install it

Pick the row that matches your computer.

| Your setup | What to download | What to do |
|---|---|---|
| **Windows, normal** | `HumWatch-Setup-v2.0.2.exe` | Double-click it. Click Yes when Windows asks for permission. |
| **Windows, no installer** | `HumWatch-v2.0.2.zip` | Unzip it anywhere. Run `setup.bat`, then `run.bat`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not start a second server after portable Windows setup

For the Windows ZIP path, setup.bat defaults to installing the background service (setup.bat:155-180), and the service installer starts it before returning (installer/service-setup.ps1:663-689). Telling the user to run run.bat immediately afterward therefore launches another HumWatch process on port 9100, which exits with an address-in-use error. Direct users to open the dashboard after the default service installation, and reserve run.bat for users who explicitly decline the service.

Useful? React with 馃憤聽/ 馃憥.

| **Debian or Ubuntu Linux** | `humwatch_2.0.2_amd64.deb` | `sudo apt install ./humwatch_2.0.2_amd64.deb` |
| **Other Linux** | `HumWatch-v2.0.2-linux.tar.gz` | Unpack it. Run `./setup.sh`, then `./run.sh`. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Provision portable Linux before promising remote access

Following this exact non-root Linux flow only creates a checkout-local virtual environment (setup.sh:21-27) and makes run.sh select its development profile, whose token is under .humwatch and whose listener is forced to 127.0.0.1 (run.sh:18-31,54-57). It neither installs an auto-starting service nor permits the phone/other-computer flow described below, and the documented /etc/humwatch/auth-token will not exist. Either document the root provisioning and systemd steps for this download or identify it as a local-only foreground development mode.

Useful? React with 馃憤聽/ 馃憥.


All of these are on the [releases page](https://github.com/StaticHumStudio/HumWatch/releases).

> **Already have HumWatch on Windows? Back up before you run the installer.** It does not carry your saved history across, which is a known bug ([#14](https://github.com/StaticHumStudio/HumWatch/issues/14)). Copy `C:\HumWatch\humwatch.db` somewhere safe first. If you already ran it, see [My history disappeared](#my-history-disappeared).

That is the install. It starts by itself and it starts again when you reboot.

---

## The two things that confuse everyone

Two things surprise almost everyone the first time. Both look like something is broken. Neither one is.

### 1. It is `https`, not `http`

HumWatch only answers over `https`. The address is:

```
https://localhost:9100
```

That `s` matters. Type `http` and you get nothing at all.

### 2. Your browser will say the site is dangerous

You will see a full-page warning. Something like **"Your connection is not private"** or **"Warning: Potential Security Risk Ahead."**

**This is expected. Your computer is not compromised.**

Here is what is actually happening. HTTPS needs a certificate, which is a file that proves a website is who it claims to be. Normally a company like Let's Encrypt vouches for that certificate, and your browser trusts them.

HumWatch cannot do that, because it runs on *your* machine. There is no public company that can vouch for your laptop. So HumWatch makes its own certificate and signs it itself. Your browser sees a certificate that nobody famous vouched for, and it does the only thing it can do, which is warn you.

The warning is correct in general. It is just wrong about *your* computer, because you are the one who installed the thing it is warning you about.

**To get past it:**

- **Chrome or Edge:** click **Advanced**, then **Proceed to localhost (unsafe)**
- **Firefox:** click **Advanced**, then **Accept the Risk and Continue**
- **Safari:** click **Show Details**, then **visit this website**

You may have to do this once per browser, and again on your phone.

---

## Step 2: Get your token

Now the page asks for a **token**. A token is just a long password that HumWatch made for you. It is how HumWatch knows it is you and not somebody else on your network.

You do not make one up. One already exists. You just have to go read it.

**Windows:**

Open Notepad as an administrator, then open this file:

```
C:\ProgramData\HumWatch\auth-token
```

Or paste this into PowerShell:

```powershell
Get-Content C:\ProgramData\HumWatch\auth-token
```
Comment on lines +86 to +90

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Tell users to elevate the PowerShell token command

When the Windows installer or service setup path was used, provisioning removes ordinary Users and Authenticated Users from the runtime tree and grants access only to SYSTEM and Administrators (scripts/provision-security.ps1:74-109). A normal PowerShell window therefore returns Access Denied for this suggested command, even though it is presented as the easy alternative to elevated Notepad; explicitly require an Administrator PowerShell session here.

Useful? React with 馃憤聽/ 馃憥.


**Linux:**

```bash
sudo cat /etc/humwatch/auth-token
```

You will get a long line of random letters and numbers. Copy the whole thing. Do not add spaces. Do not press Enter in the middle of it.

Paste it into the box on the page and click **Retry**.

That is it. You are in. Your browser remembers the token, so you will not have to do this again on that browser.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Limit the token persistence claim to the current session

The dashboard stores the token in window.sessionStorage (static/js/auth.js:14-27), not persistent browser storage. After the user closes the relevant tab/window and later returns, the token prompt can appear again, so promising they will never need the token again on that browser leaves them without the credential they were told they could forget; describe this as browser-session persistence instead.

Useful? React with 馃憤聽/ 馃憥.


---

## Step 3: Look at it from your phone or another computer

Works the same way, with one extra step first: **both devices have to be on the same network.**

If they are on the same Wi-Fi, you are fine. If you want to reach your home PC from a coffee shop, you need something like [Tailscale](https://tailscale.com), which is free and makes your devices act like they are on the same network no matter where they are.

Once that is sorted, replace `localhost` with the other machine's address:

```
https://192.168.1.50:9100
```

Find that address by running `ipconfig` on Windows or `ip addr` on Linux, on the machine running HumWatch. If you use Tailscale, run `tailscale ip -4` instead and use that number.

You will get the security warning again. Same deal, click through it.

**On your phone you will get a slightly worse warning than on your computer.** Two things are wrong instead of one. The certificate is self-signed like before, *and* it does not list the machine's network address, only its name and `localhost`. Click through anyway. The tap is usually **Advanced**, then **Proceed**.

Each machine has its own token, so grab that machine's token the same way you did in Step 2.

---

## Step 4: Seeing all your machines at once

HumWatch has a **Machines** page meant to show every computer you are running it on, side by side.

**Fair warning: this probably shows zero right now.** Two reasons, and both are fixable.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include the CORS allowlist in fleet setup

For manually added machines, the dashboard fetches the peer directly from the browser (static/js/pages/machines.js:234-243), while cors_origins defaults to an empty list and the server permits only explicitly listed origins (agent/main.py:149-156). Matching tokens and trusted certificates therefore still leave these cards unable to load across origins. Add the README's cors_origins/HUMWATCH_CORS_ORIGINS step rather than describing tokens and certificates as the only two blockers.

Useful? React with 馃憤聽/ 馃憥.


**Reason one, the tokens do not match.** The login box says "Shared fleet token" for a reason. The fleet view expects every machine to use the *same* token. But each install generates its own. So pick one machine's token, and copy it onto the others:

- **Windows:** replace the contents of `C:\ProgramData\HumWatch\auth-token`
- **Linux:** replace the contents of `/etc/humwatch/auth-token`

Restart HumWatch on any machine you changed.

**Reason two, the certificates.** Machines check each other's certificates before trusting them, and self-signed certificates fail that check silently. Nothing errors, the other machine just never shows up.

Fixing this properly means regenerating certificates that list each machine's network address, then telling every machine to trust the others. That is genuinely fiddly and it is documented in [Multi-Machine Setup](../README.md#multi-machine-setup) in the README.

If you only watch one computer, ignore this whole section. Nothing is broken.

---

## Keeping it updated

**Windows, installed with the installer:** download the new `.exe` and run it. Back up your database first, see the warning in Step 1.

**Windows, unzipped version:** double-click `update.bat`. It downloads the new version, checks that the download was not tampered with, and swaps it in. If anything goes wrong it puts the old version back.

**Debian or Ubuntu:** `sudo apt install ./humwatch_<new-version>_amd64.deb`. Your settings and history survive.

---

## When something goes wrong

### The page will not load at all

Check HumWatch is actually running.

- **Windows:** press Windows+R, type `services.msc`, find **HumWatch**. It should say Running.
- **Linux:** `systemctl status humwatch`

Also make sure you typed `https` and not `http`.

### "This site can't be reached" from another device

The two devices are not really on the same network, or a firewall is blocking port 9100. Test it from the HumWatch machine itself first using `https://localhost:9100`. If that works, the problem is the network between them, not HumWatch.

### The token box keeps rejecting my token

Almost always a copy-paste problem. Common causes:

- A space snuck in at the start or end
- You copied only part of it
- A line break got pasted in the middle
- You used a different machine's token

Read the file again and copy the entire line.

### My history disappeared

The Windows installer does not move your saved history into the place HumWatch now reads from. That is bug [#14](https://github.com/StaticHumStudio/HumWatch/issues/14). Your data is not gone, it is still sitting in the install folder.

Stop HumWatch and copy it across yourself:

```powershell
Stop-Service HumWatch
Copy-Item C:\HumWatch\humwatch.db C:\ProgramData\HumWatch\data\humwatch.db -Force
Start-Service HumWatch
```

Run PowerShell as administrator. Your history comes back.

### There is no "Advanced" button on the warning

Rare, but it happens if you reached the page by hostname rather than by IP address. Try the numeric address instead, like `https://192.168.1.50:9100`.

### I forgot which address to use

On the machine itself, `https://localhost:9100` always works.

---

## Quick reference

| Thing | Windows | Linux |
|---|---|---|
| Address on that machine | `https://localhost:9100` | `https://localhost:9100` |
| Token file | `C:\ProgramData\HumWatch\auth-token` | `/etc/humwatch/auth-token` |
| Your data | `C:\ProgramData\HumWatch\data\` | `/var/lib/humwatch/` |
| Logs | `C:\ProgramData\HumWatch\logs\` | `journalctl -u humwatch` |
| Start and stop | `services.msc`, find HumWatch | `sudo systemctl start\|stop humwatch` |

---

## Still stuck?

Open an issue at [github.com/StaticHumStudio/HumWatch/issues](https://github.com/StaticHumStudio/HumWatch/issues). Include your operating system, how you installed it, and what the screen actually says. Copy the exact wording of any error. It helps more than a description of it.
Loading