This project is my personal website.
- Clone the project.
- Copy
.env.example
to.env
.
- To use SQLite (the default), create the file at
database/database.sqlite
. - To use MySQL or PostgreSQL, create your DB and configure the
DB_*
vars.
- Make sure you meet the project's runtime requirements:
- If you use ASDF, run
asdf install
- If you manage runtimes another way:
- PHP 8.2.x
- Node 20.x
- Yarn 1.22.x
- If you use ASDF, run
- Run
composer install
. - Run
yarn
to install dependencies.- If you use vanilla
npm
instead, I'm terribly sorry. ¯\_(ツ)_/¯
- If you use vanilla
- Generate project key:
php artisan key:generate
. - Run migrations:
php artisan migrate
. - Link public storage:
php artisan storage:link
- Optionally, seed dev data:
php artisan db:seed --seeder=DemoSeeder
This project's .env
uses the file
cache store. But Laravel 11.x's default cache store is database
. Feel free to
change this or comment it out to use the default.
There are a couple of helpers used around the project (assets_url()
and image_url()
) that hook into
the App\Services\ImageService
class. This exists to:
- allow permanent image storage to live on another
disk
- Still provide fast load times for images by "caching" them on the same disk as the application at first request
The ENV var IMAGE_SERVICE_REMOTE_DISK
lets you choose where to look for downloadable assets. It defaults to a local
disk to ensure these features work as intended after cloning.