# Setup local development

## Setup local development

These are the steps required to setup the local development.

DayWright is a Laravel application. That means it requires this setup:

* PHP 8.1 or newer
* Web server (e.g., Laravel Valet, Nginx, or `php artisan serve`)
* Composer
* MySQL (or SQLite)

You can find more details on the [Laravel documentation website](https://laravel.com/docs/master/installation).

Here are the steps that we suggest you to follow:

1. Install PHP and a web server like Nginx. If you are on macOS, we recommend [Valet](https://laravel.com/docs/9.x/valet).
2. Install [SQLite](https://formulae.brew.sh/formula/sqlite) or MySQL.
3. `composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader`
4. `npm install --frozen-lockfile`
5. `cp .env.example .env` and configure `.env` file
   1. `php artisan key:generate --no-interaction` (generates APP\_KEY)
6. Optional: generate dummy data
   1. `php artisan db:seed`
7. `npm build` to generate the proper JS and CSS files
8. php artisan serve and head to your browser Visit `http://localhost:8000` to start using DayWright locally.<br>

   #### 🔑 Environment Configuration

   DayWright supports several third-party services for a full feature set (e.g., Mail, SMS, Social Login, Amazon S3, Zoom). For local development, these are optional — but if you want to use them:

   * Configure their API keys in your `.env` file
   * Refer to the `.env.example` for all available options
   * You can skip unneeded services by leaving their `.env` keys empty during development
