---
url: /guide/installation.md
description: >-
  Install Scheduler Pro from its private Composer repository with your licence
  key, publish its assets, and optionally publish translations.
---

# Installation

Scheduler Pro is a paid package served from a private Composer repository. Your purchase email holds a licence key; your username is the email you bought with.

## Add the repository

```bash
composer config repositories.scheduler-pro composer https://packages.hoceine.com
```

## Add your licence

```bash
composer config http-basic.packages.hoceine.com you@example.com YOUR-LICENCE-KEY
```

This writes to the project's `auth.json`. Keep that file out of git, or add `--global` to store the credentials once for every project on your machine.

## Require the package

```bash
composer require hoceineel/filament-scheduler-pro
```

## Publish the assets

```bash
php artisan filament:assets
```

Filament's `filament:upgrade` hook republishes assets on every `composer update`, so this is only needed once.

## Generate a widget

```bash
php artisan make:scheduler FrontDeskSchedule --model=Appointment --resource=Staff
```

Or a board:

```bash
php artisan make:kanban TaskBoard --model=Task
```

See [Quick Start](/guide/quick-start).

## Deploying

Servers and CI need the same credentials. Either commit nothing and set them per environment:

```bash
composer config --global http-basic.packages.hoceine.com you@example.com YOUR-LICENCE-KEY
```

or provide them as JSON in the `COMPOSER_AUTH` environment variable:

```bash
COMPOSER_AUTH='{"http-basic":{"packages.hoceine.com":{"username":"you@example.com","password":"YOUR-LICENCE-KEY"}}}'
```

On Laravel Forge, add them in the server's or site's Composer package authentication settings.

## Updates

Your licence includes updates for its update window. Releases published after the window ends stay hidden until you renew; versions you already have keep installing.

## Translations

English, French and Arabic ship in the box. Publish them to edit:

```bash
php artisan vendor:publish --tag=scheduler-pro-translations
```

## Panel colours

Event and badge colours accept any Tailwind colour name (`sky`, `rose`…), hex values, or a `HasColor` enum. Names you registered on the panel with `->colors()` use your panel's shades.
