Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/0m1n3m/contacts-db/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through getting a fully working Contacts DB instance up and running, whether that’s on a local development machine or a production server. By the end you’ll have the application installed, the database migrated, an admin account created, and the development server (or production build) running.

System Requirements

Before you begin, make sure your environment meets the following requirements:
RequirementVersion
PHP8.3 or higher
Composer2.x
Node.js18+
npmBundled with Node.js
DatabaseSQLite (default, built into PHP) or MySQL / MariaDB / PostgreSQL
SQLite is the default database driver and requires no separate database server. The SQLite file is created automatically inside the database/ directory during setup — making this the fastest way to get started locally.

Installation Steps

1

Clone the repository

Clone the Contacts DB source code from GitHub and navigate into the project directory:
git clone https://github.com/0m1n3m/contacts-db.git && cd contacts-db
2

Run the setup script

The composer run setup script handles the entire bootstrap sequence in one command:
composer run setup
Under the hood, this script runs the following steps in order:
  1. composer install — installs all PHP dependencies from composer.lock
  2. Copies .env.example to .env (only if .env does not already exist)
  3. php artisan key:generate — generates a unique APP_KEY for encryption
  4. php artisan migrate --force — creates all database tables
  5. npm install --ignore-scripts — installs all JavaScript dependencies
  6. npm run build — compiles and bundles all frontend assets with Vite
When this command finishes you will have a fully installed application with a built frontend ready to serve.
3

Seed the admin user

Create the first admin account by running the AdminUserSeeder. The seeder reads the ADMIN_EMAIL and ADMIN_PASSWORD values from your .env file via config/admin.php. Add those two variables to .env before running the seeder:
ADMIN_EMAIL=you@yourcompany.com
ADMIN_PASSWORD=a-strong-password-here
Then run:
php artisan db:seed --class=AdminUserSeeder
The seeder uses updateOrCreate so it is safe to run multiple times — it will update the password if the email already exists. If ADMIN_PASSWORD is not set, the seeder exits silently without creating any user.
4

Start the development server

Launch all development processes together with the dev Composer script:
composer run dev
This uses concurrently to start four processes in parallel, each shown in a different colour in your terminal:
ProcessCommandColour
PHP dev serverphp artisan serveBlue
Queue workerphp artisan queue:listen --tries=1 --timeout=0Purple
Log viewerphp artisan pail --timeout=0Pink
Vite HMRnpm run devOrange
Your application will be available at http://localhost:8000 by default.
composer run dev relies on concurrently (installed as a dev npm dependency). All four processes run together in the same terminal session. If you stop the command (Ctrl+C), all processes are killed simultaneously via the --kill-others flag. Do not use this script in production.

Manual Setup (Alternative to composer run setup)

If you prefer to run each step individually — for example, to customise individual steps before migrating — you can follow these commands in order:
composer install
After completing all steps manually, add your ADMIN_EMAIL and ADMIN_PASSWORD to .env and run the admin seeder as described in Step 3 above.
For a production deployment, replace npm run build with the same command — Vite will produce an optimised, minified bundle. Make sure APP_ENV=production and APP_DEBUG=false are set in your .env before going live.

Build docs developers (and LLMs) love