Filament One is a flexible starter kit for building scalable admin dashboards with essential features, security, and modern PHP practices for a smooth development experience.
jeddsaliba/filament-one is a Laravel package for filament one is a flexible starter kit for building scalable admin dashboards with essential features, security, and modern php practices for a smooth development experience..
It currently has 8 GitHub stars and 57 downloads on Packagist (latest version 1.5.0).
Install it with composer require jeddsaliba/filament-one.
Discover more Laravel packages by jeddsaliba
or browse all Laravel packages to compare alternatives.
Last updated
Filament One is a powerful and flexible starting point for building robust and scalable admin dashboards. This boilerplate is designed to help developers quickly set up an admin panel with essential features, security measures, and user-friendly management tools.
Built using FilamentPHP, it leverages modern PHP development practices to ensure a smooth and efficient experience.
Key Features:
Why Choose Filament One?
Setup Local Environment
Setup with Docker
Database
Generate Filament Shield Permissions
Create Administrator Account
Generate Test Data
Initialize The Application
API Support
Troubleshooting
Plugins Used
Acknowledgments
Support
This section covers setting up Filament One for local development without Docker.
# Create project
composer create-project jeddsaliba/filament-one
cd filament-one
# Create environment file
cp .env.example .env
php artisan key:generate
Update the following in your .env file:
Application URL:
APP_NAME="Filament One"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=UTC
For MySQL:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
For PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
Important: Make sure you've created the database before running migrations.
If you have Redis installed locally:
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
REDIS_CACHE_DB=1
# Use Redis for cache and sessions
CACHE_STORE=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
Update mail settings in your .env file:
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
Note: For local development, you can use Mailpit or MailHog for testing emails.
Install npm dependencies and build assets:
npm install
npm run build
Or for development with hot reload:
npm run dev
After completing the setup above, proceed to:
Filament One includes Docker configuration for easy local development. This setup includes PHP-FPM, Nginx, MySQL, Redis, and a queue worker - everything you need to get started quickly.
The Docker setup provides the following services:
| Service | Description | Port | |---------|-------------|------| | app | PHP 8.3-FPM application server | Internal | | nginx | Nginx web server | 80 | | mysql | MySQL 8.0 database | 3306 | | redis | Redis cache and queue | 6379 | | queue | Laravel queue worker | Internal |
# Create project
composer create-project jeddsaliba/filament-one
cd filament-one
# Create environment file
cp .env.example .env
⚠️ Critical: Docker services communicate using service names as hostnames. Your .env file must use these service names.
Update your .env file with the following Docker-specific configuration:
# Application Settings
APP_NAME="Filament One"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=UTC
# Database Configuration
# ⚠️ DB_HOST must be 'mysql' (Docker service name, not localhost!)
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
# Redis Configuration
# ⚠️ REDIS_HOST must be 'redis' (Docker service name, not localhost!)
REDIS_CLIENT=phpredis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
REDIS_CACHE_DB=1
# Cache & Session (using Redis)
CACHE_STORE=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
# Queue Configuration
QUEUE_CONNECTION=redis
# Mail Configuration (optional)
MAIL_MAILER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
Important Notes:
DB_HOST=mysql - Must use the Docker service name, not 127.0.0.1 or localhostREDIS_HOST=redis - Must use the Docker service name, not 127.0.0.1 or localhostDB_DATABASE, DB_USERNAME, DB_PASSWORD) are used by both Laravel and the MySQL container initialization# Build the containers
docker-compose build
# Start all services in detached mode
docker-compose up -d
All services should show as "Up" or "running".
docker-compose exec app php artisan key:generate
After completing the Docker setup:
If you encounter issues, see the Troubleshooting section below.
Assuming that you have already created an empty database, run this command to migrate the database tables:
php artisan migrate
If you're using Docker, the database is automatically created. Just run:
docker-compose exec app php artisan migrate
In order to generate filament shield permissions, run this command:
php artisan shield:generate --all
docker-compose exec app php artisan shield:generate --all
In order to create an administrator account, run this command:
php artisan shield:super-admin
docker-compose exec app php artisan shield:super-admin
You may also run this command in order to populate the database with test data:
php artisan db:seed
docker-compose exec app php artisan db:seed
Option 1: Using Vite (Recommended for development)
npm run dev
In another terminal, start the PHP server:
php artisan serve
Option 2: Build assets for production
npm run build
php artisan serve
Start all services:
docker-compose up -d
The application will be available at http://localhost. The Docker setup includes:
Note: For frontend development with hot reload, you may want to run Vite separately on your host machine:
npm run dev
Or use the Docker Node service (if configured) for a fully containerized development environment.
Integrate Filament One with external applications via APIs.
Here is the postman collection. Just import it and you're all set!
Without Docker:
npm run build
With Docker:
docker-compose exec app npm run build
Or rebuild the assets in the container:
docker-compose exec app sh -c "npm install && npm run build"
These are Filament Plugins use for this project.
| Plugin | Author | | :-------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | | Ace Editor | Rio Dewanto P | | ActivityLog | Rômulo Ramos | | API Service | Rupadana | | Breezy | Jeff Greco | | Comments | Parallax | | Date Range Filter and Picker | Majid Al Zariey | | Easy Footer | Alexandre | | Environment Indicator | Dennis Koch | | Filament Spatie Media Library | Filament Official | | Filament Spatie Settings | Filament Official | | Global Search Modal | Mohamed Charrafi | | Grapes JS | dotSwan | | Impersonate | Signature Tech Studio | | Phone Input | Yusuf Kaya | | Shield | Bezhan Salleh | | Spatie Laravel Health | Shuvro Roy |
Give a ⭐️ if this project helped you!