Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phrp720/aw-sync-suite
Sync multiple ActivityWatch instances to Prometheus, centralized and visualized with Grafana.
https://github.com/phrp720/aw-sync-suite
activitywatch analytics as-a-service aw-sync-agent aw-sync-center aw-sync-suite cross-platform dashboard monitoring service sync synchronizer
Last synced: about 1 month ago
JSON representation
Sync multiple ActivityWatch instances to Prometheus, centralized and visualized with Grafana.
- Host: GitHub
- URL: https://github.com/phrp720/aw-sync-suite
- Owner: phrp720
- License: mit
- Created: 2024-10-14T10:42:01.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2025-01-02T02:38:43.000Z (about 1 month ago)
- Last Synced: 2025-01-02T02:53:42.150Z (about 1 month ago)
- Topics: activitywatch, analytics, as-a-service, aw-sync-agent, aw-sync-center, aw-sync-suite, cross-platform, dashboard, monitoring, service, sync, synchronizer
- Language: Go
- Homepage:
- Size: 1.22 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-activitywatch - aw-sync-suite
README
Aw-Sync-Suite
Open-Source Solution for Securely Syncing and Visualizing Multiple ActivityWatch Instances.
If youβve ever wished for a simple, centralized solution to sync and visualize data from multiple instances of ActivityWatch, youβre in the right place.
π For detailed documentation, visit our GitHub Wiki.π Table of Contents
1. [About](#-about)
2. [Features](#-features)
3. [Installation & Usage](#-installation--usage)
4. [Components](#-components)
- [aw-sync-agent](#aw-sync-agent)
- [aw-sync-center](#aw-sync-center)
5. [Architecture](#-architecture)
6. [Requirements](#-requirements)
7. [Contributing](#-contributing)
8. [License](#-license)## π About
**Aw-Sync-Suite** provides an easy-to-deploy solution on syncing data from multiple [ActivityWatch](https://github.com/ActivityWatch/activitywatch) instances to a centralized [Prometheus](https://prometheus.io/) database with easy visualization in [Grafana](https://grafana.com/).The project operates independently of **ActivityWatch** and supports all ActivityWatch versions with a REST API.
### This suite consists of two main components:
- **[aw-sync-agent](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-agent):** Runs on each device, retrieves and filters ActivityWatch data, and sends it securely to Prometheus via remote-write.
- **[aw-sync-center](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-center):** A centralized Prometheus and Grafana setup for aggregating and visualizing data.### ποΈ Preview
| ![TOP](aw-sync-center/grafana/dashboards/screenshots/summary/summary_1.png) | ![BOTTOM](aw-sync-center/grafana/dashboards/screenshots/summary/summary_2.png) |
|-----------------------------------------------------------------------------|--------------------------------------------------------------------------------|You can check also the [screenshots](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-center/grafana/dashboards/screenshots) for more insights.
## π Features
- π **Centralized Monitoring:** Aggregate data from multiple devices effortlessly.
- π‘οΈ **Data Filtering:** Protect sensitive information by filtering or sanitizing it at the source.
- π **Checkpointing Mechanism:** Smart synchronization with automatic tracking of synced data.
- π **Pre-Built Dashboards:** Use intuitive Grafana dashboards for instant insights.
- βοΈ **Effortless Deployment:** Simple setup for both agent and central components.## π Installation & Usage
Downloads are available on the [releases page](https://github.com/phrp720/aw-sync-suite/releases).
For instructions on how to get started, please see the [guide in the documentation](https://github.com/phrp720/aw-sync-suite/wiki/Installation-Guide).
## 𧩠Components
### aw-sync-agent
- **Purpose**: Syncs data from ActivityWatch to Prometheus.
- **Deployment**: Run on each computer you wish to track user activity from.
- **Configuration**: Configurable via the `aw-sync-agent.yaml` file.| Platform Support | Runs as a Service (`-service`) | General Workability |
|------------------|--------------------------------|---------------------|
| **Windows** | β | β |
| **Linux** | β | β |
| **macOS** | β | β |> [!Note]
> - The **aw-sync-agent** is fully operational on **macOS**, but the `-service` feature (which allows the agent to run as a background service) is not yet implemented for macOS.
> - On macOS, you can still manually start and run the agent to sync ActivityWatch data without issues.### aw-sync-center
- **Purpose**: Centralized cloud setup that includes Prometheus and Grafana for monitoring and visualization.
- **Deployment**: Set up once for centralized control and management.
- **Included Services**: Prometheus, Grafana, and necessary dashboards.
## π ArchitectureSync-Suite contains two available setups: one **without Bearer Token Authentication** and another **with Bearer Token Authentication**.
The latter provides an additional layer of security by securing the Prometheus endpoints with a Bearer token if it is exposed to the internet.
This setup uses a Nginx reverse proxy to secure the Prometheus endpoints.| Without Bearer Token Authentication π | With Bearer Token Authentication π |
|---------------------------------------------|---------------------------------------------------------|
| ![aw-sync-diagram.png](aw-sync-diagram.png) | ![aw-sync-diagram-nginx.png](aw-sync-diagram-nginx.png) |## π οΈ Requirements
- Docker and Docker Compose for easy setup of `aw-sync-center`.
- A running instance of ActivityWatch on the computers you want to monitor.## π₯ Contributing
Contributions are welcomed! If you have ideas, improvements, or bug fixes, feel free to open an issue or submit a pull request.## π License
This project is licensed under the **MIT license**.
See [LICENSE](https://github.com/phrp720/aw-sync-suite/blob/master/LICENSE) for more information.