PHPackages                             aesircloud/laravel-presence - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. aesircloud/laravel-presence

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

aesircloud/laravel-presence
===========================

User presence (online/away/offline) for Laravel with cache or webhook driver.

1.0.1(7mo ago)00MITPHPPHP ^8.2|^8.3|^8.4CI passing

Since Sep 26Pushed 7mo agoCompare

[ Source](https://github.com/AesirCloud/laravel-presence)[ Packagist](https://packagist.org/packages/aesircloud/laravel-presence)[ Docs](https://github.com/AesirCloud/laravel-presence)[ RSS](/packages/aesircloud-laravel-presence/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (9)Versions (3)Used By (0)

AesirCloud Laravel Presence
===========================

[](#aesircloud-laravel-presence)

User presence for **Laravel** (online / away / offline) with a cache-backed heartbeat and optional **webhook** fan-out.

- **Cache driver** (Redis recommended) with TTL-based presence
- **Webhook driver** for real-time delivery (HMAC-signed)

 [ ![CI Status](https://github.com/aesircloud/laravel-presence/actions/workflows/tests.yml/badge.svg?branch=main) ](https://github.com/aesircloud/laravel-presence/actions) [ ![Packagist Version](https://camo.githubusercontent.com/9d09912d6a0a1afe1327152ddba36c74620b4eb458ee4ab752265c1e277ba095/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6165736972636c6f75642f6c61726176656c2d70726573656e63652e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/aesircloud/laravel-presence) [ ![Packagist Downloads](https://camo.githubusercontent.com/5257737047443ba909ed014f878bddaca2c5f06b9b469bd80f3b2c5e5544b4c7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6165736972636c6f75642f6c61726176656c2d70726573656e63652e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/aesircloud/laravel-presence) [ ![License](https://camo.githubusercontent.com/f7abdf40ae7712ee63e23297e39d12d3694b17d37fc8e88a8a8ec5321741c640/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6165736972636c6f75642f6c61726176656c2d70726573656e63652e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/aesircloud/laravel-presence)

---

Requirements
------------

[](#requirements)

- PHP **8.4+**
- Laravel **12.x**
- Cache store (Redis recommended in production)

---

Install
-------

[](#install)

```
  composer require aesircloud/laravel-presence
  php artisan vendor:publish --tag=presence-config
```

This publishes `config/presence.php`.

### Minimal `.env`

[](#minimal-env)

```
# cache | webhook
PRESENCE_DRIVER=cache

# Cache
PRESENCE_CACHE_STORE=redis
PRESENCE_TTL=120
PRESENCE_AWAY_AFTER=90
```

Key options (see `config/presence.php`):

- `driver`: `cache` (default) or `webhook`
- `cache.ttl_seconds` / `cache.away_after_seconds`
- `webhook.url`, `webhook.secret`, `webhook.signature_header` (default `X-Presence-Signature`), `webhook.algo` (default `sha256`)
- `routing.register_heartbeat_route`: expose `/presence/heartbeat` if `true`
- `scope.resolver`: optional closure that returns `{ tenant, location, domain, guard }` to scope cache keys

---

Laravel 12 middleware (auto-heartbeats)
---------------------------------------

[](#laravel-12-middleware-auto-heartbeats)

In Laravel 12, register middleware in **`bootstrap/app.php`**:

```
