diff --git a/v3.x/installation.mdx b/v3.x/installation.mdx
index 8a5141e..ab11a4d 100644
--- a/v3.x/installation.mdx
+++ b/v3.x/installation.mdx
@@ -46,18 +46,22 @@ If you are looking to migrate from Cachet v2.x, please refer to the [migration g
+ Ensure the user running your web server can write to Cachet's `storage` directory. Cachet uses this
+ directory for logs, cached files, sessions, and other runtime data.
+
+
Copy the `.env.example` file to `.env`:
```bash
cp .env.example .env
```
-
+
Generate an application key:
```bash
php artisan key:generate
```
-
+
Configure the `.env` file and set the values of your setup:
```ini .env
DB_CONNECTION=mysql
@@ -68,25 +72,25 @@ If you are looking to migrate from Cachet v2.x, please refer to the [migration g
DB_PASSWORD=
```
-
+
Publish Cachet's assets:
```bash
php artisan vendor:publish --tag=cachet
```
-
+
Run the database migrations:
```bash
php artisan migrate
```
-
+
Create the first user by following the prompts:
```bash
php artisan cachet:make:user
```
-
+
Enable the scheduler by adding the following cron entry:
```bash /etc/crontab
* * * * * php /path/to/cachet/artisan schedule:run >> /dev/null 2>&1
@@ -94,7 +98,7 @@ If you are looking to migrate from Cachet v2.x, please refer to the [migration g
Cachet uses the scheduler to send subscriber notifications for completed maintenance and long-running incidents.
-
+
Run a queue worker to deliver email notifications:
```bash
php artisan queue:work