{"id":15137286,"url":"https://github.com/tchapacan/livebox-exporter-rs","last_synced_at":"2025-10-23T13:30:30.174Z","repository":{"id":229915352,"uuid":"777984794","full_name":"tchapacan/livebox-exporter-rs","owner":"tchapacan","description":"A livebox exporter built in rust for prometheus","archived":false,"fork":false,"pushed_at":"2025-01-27T22:19:34.000Z","size":211,"stargazers_count":16,"open_issues_count":13,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-30T18:48:15.847Z","etag":null,"topics":["grafana","livebox","monitoring","network-monitoring","open-telemetry","prometheus","prometheus-exporter","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tchapacan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-26T21:39:05.000Z","updated_at":"2024-11-10T11:23:40.000Z","dependencies_parsed_at":"2024-09-21T11:02:34.416Z","dependency_job_id":"5b3a84e0-eb4a-4904-8be8-e3affdccbe65","html_url":"https://github.com/tchapacan/livebox-exporter-rs","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.17647058823529416","last_synced_commit":"acd2f86a261516a0770f9cd92518c9c0d374879a"},"previous_names":["tchapacan/livebox-exporter-rs"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapacan%2Flivebox-exporter-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapacan%2Flivebox-exporter-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapacan%2Flivebox-exporter-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tchapacan%2Flivebox-exporter-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tchapacan","download_url":"https://codeload.github.com/tchapacan/livebox-exporter-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237827826,"owners_count":19372791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grafana","livebox","monitoring","network-monitoring","open-telemetry","prometheus","prometheus-exporter","rust"],"created_at":"2024-09-26T07:00:37.401Z","updated_at":"2025-10-23T13:30:30.168Z","avatar_url":"https://github.com/tchapacan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# livebox-exporter-rs\n\n\u003cp\u003e\n    \u003ca href=\"https://github.com/tchapacan/livebox-exporter-rs\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/dynamic/toml?url=https://raw.githubusercontent.com/tchapacan/livebox-exporter-rs/master/Cargo.toml\u0026query=$.package.version\u0026style=for-the-badge\u0026label=Version\" alt=\"version\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/tchapacan/livebox-exporter-rs/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/tchapacan/livebox-exporter-rs.svg?style=for-the-badge\" alt=\"license\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/tchapacan/livebox-exporter-rs/actions?query=workflow%3A%22Code%20Checks%22\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/tchapacan/livebox-exporter-rs/code-checks.yml?style=for-the-badge\" alt=\"github ci workflow\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://api.securityscorecards.dev/projects/github.com/tchapacan/livebox-exporter-rs\"\u003e\n      \u003cimg src=\"https://api.securityscorecards.dev/projects/github.com/tchapacan/livebox-exporter-rs/badge?style=for-the-badge\" alt=\"ossf scorecard\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\nA basic livebox exporter written in [rust](https://doc.rust-lang.org/book/title-page.html) 🦀. Start monitoring your livebox router's using [Prometheus](https://github.com/prometheus/prometheus) / [Grafana](https://github.com/grafana/grafana) 💪.\n\n## Features\n\n- **Should work** on livebox 4 and upper 🤷🏻‍\n- **Extracts metrics:** general status, wan configuration, devices status, bandwidth\n- **Exposes metrics:** in Prometheus format, compatible with Grafana\n- **Docker image:** [tchapacan/livebox-exporter-rs:latest](https://hub.docker.com/r/tchapacan/livebox-exporter-rs)\n- **Grafana dashboard template:** check the `example` folder\n\n![grafana dashboard](./images/grafana-dashboard.png)\n\n## Metrics\n\n| **Metric Name**              | **Description**                     | **Type**  |\n|------------------------------|-------------------------------------|-----------|\n| livebox_infos_status         | Livebox general status              | gauge     |\n| livebox_infos_uptime         | Livebox uptime                      | gauge     |\n| livebox_infos_reboot         | Livebox count of reboots            | gauge     |\n| livebox_wan_status           | Livebox wan status                  | gauge     |\n| livebox_link_status          | Livebox link status                 | gauge     |\n| livebox_interface_bytes_rx   | Livebox interface bytes received    | gauge     |\n| livebox_interface_bytes_tx   | Livebox interface bytes transmitted | gauge     |\n| livebox_device_status        | Livebox connected devices status    | gauge     |\n\n\n## Usage\n\n### Docker\n\n1. **Pull latest docker image:** to your local machine.\n\n   ```bash\n   docker pull tchapacan/livebox-exporter-rs:latest\n   ```\n\n2. **Run the Exporter:** run the docker images, using the options.\n\n    ```bash\n    docker run -d --name livebox-exporter-rs -h livebox-exporter-rs -p \u003cexporter_port\u003e:\u003cexporter_port\u003e tchapacan/livebox-exporter-rs:latest --password \u003clivebox_password\u003e --port \u003cexporter_port\u003e\n    ```\n\n3. **Access Metrics:** Once the exporter is running, access the exposed metrics at:\n\n   `http://localhost:\u003cexporter_port\u003e/metrics`\n\n\n### Sources\n\n1. **Clone the Repository:** to your local machine.\n\n   ```bash\n   git clone https://github.com/tchapacan/livebox-exporter-rs.git\n   ```\n\n2. **Build the Project:** go to the project directory and build the project.\n\n    ```bash\n    cd livebox-exporter-rs\n    cargo build --release\n    cd target/release/\n    ```\n\n3. **Run the Exporter:** run the binary, using the options.\n\n    ```bash\n    ./livebox-exporter-rs -P \u003clivebox_password\u003e -p \u003cexporter_port\u003e\n    ```\n\n4. **Access Metrics:** Once the exporter is running, access the exposed metrics at:\n\n   `http://localhost:\u003cexporter_port\u003e/metrics`\n\n\n## Options\n\nSupported command-line options (hope `-P` vs `-p` not to confusing):\n\n| Option                    | Description                                             | Default Value |\n|---------------------------|---------------------------------------------------------|---------------|\n| -P, --password \u003cpassword\u003e | Livebox password **(required)**                         | None          |\n| -p, --port \u003cport\u003e         | Exporter port                                           | 9100          |\n| -l, --listen \u003caddress\u003e    | Listen address                                          | 0.0.0.0       |\n| -G, --gateway \u003caddress\u003e   | Livebox gateway ip address                              | 192.168.1.1   |\n| -v, --verbose             | Enable verbose logging (repeat for increased verbosity) | Off           |\n| -h, --help                | Display help message                                    | N/A           |\n\n```bash\nUsage: livebox-exporter-rs [OPTIONS] --password \u003cpassword\u003e\n\nOptions:\n  -p, --port \u003cport\u003e          exporter port [default: 9100]\n  -l, --listen \u003caddress\u003e     listen address [default: 0.0.0.0]\n  -v, --verbose...           verbose logging\n  -P, --password \u003cpassword\u003e  Livebox password [required]\n  -G, --gateway \u003cgateway\u003e    Livebox gateway ip address [default: 192.168.1.1]\n  -h, --help                 Print help\n  -V, --version              Print version\n```\n\n## Details\n\n![overview schema](./images/livebox-exporter-rs_details.svg)\n\n- Use the [prometheus_exporter_base](https://github.com/MindFlavor/prometheus_exporter_base) crate for formatting Prometheus metrics.\n- Based on a rework version of the [livebox](https://crates.io/crates/livebox/) rust client project to output additional metrics.\n\n\n## Example (docker-compose)\n\n*Grafana/prometheus/livebox-exporter-rs*\n\n```sh\nexample\n├── .env\n├── docker-compose.yaml\n├── grafana\n│   ├── HomeLan.json\n│   └── datasource.yml\n└── prometheus\n    └── prometheus.yml\n```\n\n### Requirements\n- Docker should be installed on your machine.\n\n### Environment Variables\n- Configure your livebox password .env and source it before running `docker-compose`.\n\n```sh\ncd example \u0026\u0026 cp .env.example .env\n```\n\n*Update env..*\n\n\u003e Update your `LIVEBOX_PASSWORD` env secrets variable and source it\n\n```sh\nsource .env\n```\n\n### Docker Compose\n- Run the following command to start the services defined in the `docker-compose.yaml` file:\n```sh\ndocker-compose up -d\n```\n\n### Accessing Grafana\n- Open your web browser and navigate to http://localhost:3000.\n- Log in with the default credentials:\n    - Username: admin\n    - Password: grafana\n\n### Import dashboard template\n- Once logged into Grafana, click on the **+** icon in the left sidebar and select **Import**.\n- Upload **HomeLan.json** json dashboard template from example or copy paste content\n- Import and start enjoying your dashboard!\n\n\u003e Metrics might take few mins to come up (connected devices graph is 1h delayed in grafana due to default configuration)\n\n\n## Contributing\n\nContributions are really welcome! If you encounter any issues, have suggestions, or would like to add/fix features, please do:\n\n- Open an issue to report bugs or request features.\n- Fork the repository, create your branch, make your changes, and submit a pull request.\n\nFor more details here are the [contribution guidelines](CONTRIBUTING.md)\n\n## Security\n\nIf you discover any **security-related issues**, please follow the **responsible disclosure** process and report a security issues [here](https://github.com/tchapacan/livebox-exporter-rs/security/advisories/new). Thank you!\n\n## Alternatives\n\n- https://github.com/Tomy2e/livebox-exporter\n- https://github.com/jeanfabrice/livebox-exporter\n- https://la.robinjiang.com/cyr-ius/hass-livebox-component\n- https://la.robinjiang.com/p-dor/LiveboxMonitor\n- and surely even more...\n\n\n## Legal\n\n`Livebox` is a trademark owned by France Telecom and Orange, and is their property. This tool only uses the name as it is the router this exporter is about. No intellectual property infrigement intended. This work has been done for educational purpose as a personal monitoring side project and shared to the community. If there's any issue with the use of this name here, please don't hesitate to contact me.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchapacan%2Flivebox-exporter-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftchapacan%2Flivebox-exporter-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftchapacan%2Flivebox-exporter-rs/lists"}