https://github.com/eterline/fstmon
https://github.com/eterline/fstmon
go homepage self-hosted utils
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/eterline/fstmon
- Owner: eterline
- License: mit
- Created: 2025-06-24T15:26:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-15T11:42:30.000Z (7 months ago)
- Last Synced: 2025-12-18T12:54:28.498Z (7 months ago)
- Topics: go, homepage, self-hosted, utils
- Language: Go
- Homepage:
- Size: 16.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fstmon
Monitoing microservice for [homepage](https://gethomepage.dev) or another. Written in 
## In Action


## Build
To build project in full prod variant
```sh
task build
```
For testing build
```sh
task run # builds anyway
```
## Arguments
## Command-line Options
| Option | Alias | Description | Default |
|--------------------------------------|-------|---------------------------------------------------------|-------------|
| `--log-level LOG-LEVEL` | | Logging level: `debug` \| `info` \| `warn` \| `error` | `info` |
| `--log-json` | `-j` | Output logs in JSON format | `false` |
| `--access-log ACCESS-LOG` | | Path to access log file: `file` \| `stdout` \| `none` | `none` |
| `--listen LISTEN` | `-l` | Server listen address | `:3000` |
| `--certfile CERTFILE` | `-c` | TLS certificate file | *(none)* |
| `--keyfile KEYFILE` | `-k` | TLS private key file | *(none)* |
| `--sni SNI` | `-h` | Allowed request hosts (SNI) | `[]` |
| `--subnets SUBNETS` | `-s` | Allowed source subnets/IP addresses | `[]` |
| `--token TOKEN` | `-t` | Authentication token (env: `TOKEN`) | `[]` |
| `--ip-header` | | Enable parsing of reverse proxy IP headers | `false` |
| `--cpu-loop CPU-LOOP` | | CPU metrics update interval (seconds) | `10` |
| `--memory-loop MEMORY-LOOP` | | Memory metrics update interval (seconds) | `10` |
| `--system-loop SYSTEM-LOOP` | | System metrics update interval (seconds) | `20` |
| `--thermal-loop THERMAL-LOOP` | | Thermal metrics update interval (seconds) | `20` |
| `--network-loop NETWORK-LOOP` | | Network I/O metrics update interval (seconds) | `10` |
| `--partitions-loop PARTITIONS-LOOP` | | Disk I/O metrics update interval (seconds) | `10` |
| `--help` | `-h` | Display help and exit | — |
## Running
Homepage config:
```yml
// There will be your service config
- type: customapi
url: http://:3300/monitoring/system
method: GET
refreshInterval: 10000
mappings:
- field: data.ram
label: ram
format: text
```
## License
[MIT](https://choosealicense.com/licenses/mit/)