A modern, multi-tenant CRM for veterinary practices — scheduling clients & patients, invoicing, medical documents, offers, orders, and more. Built with Laravel 12 and Filament 4.1.
WARNING: Alpha Stage — not production ready. Expect breaking changes and incomplete features.
- Appointments: clients & patients, slot availability, reminders
- Billing: invoices, items, taxes, payments
- Medical docs: findings, attachments, print/PDF
- Multi‑tenancy (SaaS)
- Role & permission model (per user / per location)
- Search, filters, exports, PDF prints
- Laravel 12, PHP 8.3+
- Filament 4.1 (panels, resources, actions)
- MySQL/MariaDB, Redis (cache/queue)
- Pest for tests
- Docker/Sail (optional)
- PHP 8.3+, Composer
- Node 20+, PNPM/NPM
- MySQL 8+ (or MariaDB 10.6+), Redis
- (Optional) Docker & Docker Compose
git clone https://github.com/lukacavic/vetlio.git
cd vetlio
composer install
cp .env.example .env
php artisan key:generateAPP_NAME=Vetlio
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=https://vetlio.test
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
# PHP_CLI_SERVER_WORKERS=4
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=vetlio
DB_USERNAME=root
DB_PASSWORD=
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
CACHE_STORE=database
# CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=log
MAIL_SCHEME=null
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="hello@vetlio.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
VITE_APP_NAME="${APP_NAME}"
php artisan migrate --seed # seeds demo data if available
php artisan storage:linknpm install
npm run devphp artisan serve
# queues & scheduler
php artisan queue:work
# Add cron: * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1- Add feature tests for tenancy scoping and permissions.
- Fork & create a feature branch
- Run tests and static analysis
- Open a PR with a clear description & screenshots (if UI)
Code style: vendor/bin/pint · Static analysis: vendor/bin/phpstan analyse







