Configuração
Guia completo de todas as variáveis de ambiente e opções de configuração do Filament Core Starter Kit.
Arquivo .env
Configurações Gerais da Aplicação
bash
# Nome da aplicação (aparece no painel admin)
APP_NAME="Minha Aplicação"
# Ambiente: local, staging, production
APP_ENV=local
# Debug: true apenas em desenvolvimento
APP_DEBUG=true
# URL base da aplicação
APP_URL=http://localhost:8000
# Timezone (padrão Brasil)
APP_TIMEZONE='America/Sao_Paulo'
# Locale (idioma)
APP_LOCALE=pt_BR
APP_FALLBACK_LOCALE=pt_BR
APP_FAKER_LOCALE=pt_BR
# Chave de criptografia (gerada por php artisan key:generate)
APP_KEY=base64:...Valores comuns para APP_TIMEZONE:
America/Sao_Paulo- BrasíliaAmerica/Fortaleza- Nordeste (sem horário de verão)America/Manaus- AmazonasAmerica/Recife- Pernambuco
Configurações de Banco de Dados
MySQL (Padrão)
bash
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=filament_core
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha
# Charset (recomendado para suporte completo Unicode)
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ciPostgreSQL
bash
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=filament_core
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha
# Schema (opcional)
DB_SCHEMA=publicSQLite (Desenvolvimento)
bash
DB_CONNECTION=sqlite
# DB_DATABASE será: database/database.sqliteConfigurações de Cache
Redis (Recomendado para Produção)
bash
CACHE_DRIVER=redis
CACHE_PREFIX=filament_
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_DB=0File (Desenvolvimento)
bash
CACHE_DRIVER=fileMemcached
bash
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
MEMCACHED_PORT=11211Configurações de Sessão
bash
# Driver: file, cookie, database, redis
SESSION_DRIVER=file
# Tempo de vida em minutos (padrão: 2 horas)
SESSION_LIFETIME=120
# Criptografar sessão
SESSION_ENCRYPT=false
# Path da sessão
SESSION_PATH=/
SESSION_DOMAIN=null
SESSION_SECURE_COOKIE=false
SESSION_SAME_SITE=laxPara produção com Redis:
bash
SESSION_DRIVER=redis
SESSION_LIFETIME=120
SESSION_SECURE_COOKIE=true
SESSION_SAME_SITE=strictConfigurações de Queue (Filas)
Sync (Desenvolvimento)
bash
# Executar jobs imediatamente (síncrono)
QUEUE_CONNECTION=syncRedis (Produção)
bash
QUEUE_CONNECTION=redis
QUEUE_FAILED_DRIVER=database
# Número de tentativas para jobs falhados
QUEUE_RETRY_AFTER=90Database
bash
QUEUE_CONNECTION=database
QUEUE_FAILED_DRIVER=databaseIniciar worker em produção:
bash
# Processar jobs continuamente
php artisan queue:work --tries=3 --timeout=90
# Com Supervisor (recomendado)
sudo supervisorctl start laravel-worker:*Configurações de Email
Log (Desenvolvimento)
bash
MAIL_MAILER=logEmails salvos em storage/logs/laravel.log.
SMTP
bash
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=seu_username
MAIL_PASSWORD=sua_senha
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@seudominio.com
MAIL_FROM_NAME="${APP_NAME}"Mailgun
bash
MAIL_MAILER=mailgun
MAILGUN_DOMAIN=mg.seudominio.com
MAILGUN_SECRET=sua_chave_api
MAILGUN_ENDPOINT=api.mailgun.netAWS SES
bash
MAIL_MAILER=ses
AWS_ACCESS_KEY_ID=sua_key
AWS_SECRET_ACCESS_KEY=sua_secret
AWS_DEFAULT_REGION=us-east-1
AWS_SES_REGION=us-east-1SendGrid
bash
MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=sua_api_key_sendgrid
MAIL_ENCRYPTION=tlsConfigurações de Comunicações
SMS (Twilio)
bash
# Habilitar módulo de comunicações
FILAMENT_MODULE_COMMUNICATIONS=true
# Configurações Twilio
TWILIO_SID=seu_account_sid
TWILIO_TOKEN=seu_auth_token
TWILIO_FROM=+5511999999999WhatsApp (Twilio)
bash
WHATSAPP_PROVIDER=twilio
WHATSAPP_FROM=whatsapp:+14155238886
TWILIO_WHATSAPP_SID=seu_sidAlternativas SMS
bash
# Zenvia
SMS_PROVIDER=zenvia
ZENVIA_API_TOKEN=seu_token
# Total Voice
SMS_PROVIDER=totalvoice
TOTALVOICE_ACCESS_TOKEN=seu_tokenConfigurações dos Módulos Filament Core
bash
# Habilitar/Desabilitar módulos
FILAMENT_MODULE_INVOICES=true
FILAMENT_MODULE_PEOPLE=true
FILAMENT_MODULE_COMMUNICATIONS=true
# Features opcionais
FILAMENT_MULTI_TENANT=false
FILAMENT_API_ACCESS=true
FILAMENT_ENABLE_LOGS=trueConfigurações de Storage
bash
# Driver padrão: local, s3, ftp
FILESYSTEM_DISK=local
# AWS S3
AWS_ACCESS_KEY_ID=sua_key
AWS_SECRET_ACCESS_KEY=sua_secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=seu_bucket
AWS_USE_PATH_STYLE_ENDPOINT=false
# DigitalOcean Spaces
AWS_ACCESS_KEY_ID=sua_key
AWS_SECRET_ACCESS_KEY=sua_secret
AWS_DEFAULT_REGION=nyc3
AWS_BUCKET=seu_space
AWS_ENDPOINT=https://nyc3.digitaloceanspaces.com
AWS_USE_PATH_STYLE_ENDPOINT=falseConfigurações de Logging
bash
# Canal: stack, single, daily, slack, syslog, errorlog
LOG_CHANNEL=stack
# Nível: debug, info, notice, warning, error, critical, alert, emergency
LOG_LEVEL=debug
# Deprecations log
LOG_DEPRECATIONS_CHANNEL=null
# Slack webhook (opcional)
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...Para produção:
bash
LOG_CHANNEL=daily
LOG_LEVEL=warning
LOG_DEPRECATIONS_CHANNEL=nullConfigurações de Segurança
bash
# Hashing (recomendado: bcrypt)
HASH_DRIVER=bcrypt
BCRYPT_ROUNDS=12
# Rate limiting (tentativas por minuto)
THROTTLE_LIMIT=60
THROTTLE_DECAY=1
# Verificação de email obrigatória
VERIFY_EMAIL=true
# Autenticação de dois fatores
TWO_FACTOR_ENABLED=falseConfigurações de API Externa
Pagamentos (Stripe)
bash
STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...Recaptcha
bash
RECAPTCHA_SITE_KEY=sua_site_key
RECAPTCHA_SECRET_KEY=sua_secret_keyGoogle Analytics
bash
GOOGLE_ANALYTICS_ID=G-XXXXXXXXXXConfigurações de Performance
bash
# Otimização de assets
VITE_DEV_SERVER_HOST=0.0.0.0
VITE_DEV_SERVER_PORT=5173
# Compressão de responses
RESPONSE_COMPRESSION=true
# Cache de queries
QUERY_CACHE_ENABLED=true
QUERY_CACHE_TTL=3600Arquivo config/filament-core.php
Configuração de Módulos
php
return [
/*
|--------------------------------------------------------------------------
| Módulos Habilitados
|--------------------------------------------------------------------------
*/
'modules' => [
'invoices' => env('FILAMENT_MODULE_INVOICES', true),
'people' => env('FILAMENT_MODULE_PEOPLE', true),
'communications' => env('FILAMENT_MODULE_COMMUNICATIONS', true),
],
/*
|--------------------------------------------------------------------------
| Features Opcionais
|--------------------------------------------------------------------------
*/
'features' => [
// Multi-tenancy (isolamento por organização)
'multi_tenant' => env('FILAMENT_MULTI_TENANT', false),
// API REST habilitada
'api_access' => env('FILAMENT_API_ACCESS', true),
// Logs de atividades
'activity_logs' => env('FILAMENT_ENABLE_LOGS', true),
// Exportação de dados
'data_export' => env('FILAMENT_ENABLE_EXPORT', true),
],
/*
|--------------------------------------------------------------------------
| Configurações de Invoice
|--------------------------------------------------------------------------
*/
'invoices' => [
// Prefixo de numeração
'prefix' => 'INV',
// Impostos padrão
'default_taxes' => [
'icms' => 18.00,
'pis' => 1.65,
'cofins' => 7.60,
],
// Moeda
'currency' => 'BRL',
],
/*
|--------------------------------------------------------------------------
| Configurações de People
|--------------------------------------------------------------------------
*/
'people' => [
// Tipos de pessoa
'types' => ['individual', 'company'],
// Validação de documentos
'validate_documents' => true,
// Documentos aceitos
'document_types' => ['cpf', 'cnpj', 'passport', 'other'],
],
/*
|--------------------------------------------------------------------------
| Configurações de Communications
|--------------------------------------------------------------------------
*/
'communications' => [
// Canais habilitados
'channels' => [
'email' => true,
'sms' => env('SMS_ENABLED', false),
'whatsapp' => env('WHATSAPP_ENABLED', false),
],
// Provider de SMS
'sms_provider' => env('SMS_PROVIDER', 'twilio'),
// Templates de mensagens
'templates_enabled' => true,
],
];Arquivo config/filament.php
Personalização do Painel
php
return [
/*
|--------------------------------------------------------------------------
| Branding
|--------------------------------------------------------------------------
*/
'brand' => env('APP_NAME', 'Filament Core'),
/*
|--------------------------------------------------------------------------
| Logo
|--------------------------------------------------------------------------
*/
'logo' => asset('images/logo.svg'),
'dark_mode_logo' => asset('images/logo-dark.svg'),
'favicon' => asset('images/favicon.ico'),
/*
|--------------------------------------------------------------------------
| Cores do Tema
|--------------------------------------------------------------------------
*/
'colors' => [
'primary' => '#4c1d95', // Roxo
'success' => '#10b981', // Verde
'warning' => '#f59e0b', // Laranja
'danger' => '#ef4444', // Vermelho
'info' => '#3b82f6', // Azul
'gray' => '#6b7280', // Cinza
],
/*
|--------------------------------------------------------------------------
| Path do Painel Admin
|--------------------------------------------------------------------------
*/
'path' => env('FILAMENT_PATH', 'admin'),
/*
|--------------------------------------------------------------------------
| Autenticação
|--------------------------------------------------------------------------
*/
'auth' => [
'guard' => env('FILAMENT_AUTH_GUARD', 'web'),
'pages' => [
'login' => \Filament\Pages\Auth\Login::class,
],
],
/*
|--------------------------------------------------------------------------
| Navigation
|--------------------------------------------------------------------------
*/
'navigation' => [
'groups' => [
'enabled' => true,
'collapsible' => true,
],
],
/*
|--------------------------------------------------------------------------
| Widgets
|--------------------------------------------------------------------------
*/
'widgets' => [
'enabled' => true,
'register' => [
// Widgets globais
],
],
];Exemplos de Configuração por Ambiente
Desenvolvimento Local
bash
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync
MAIL_MAILER=log
FILAMENT_MODULE_INVOICES=true
FILAMENT_MODULE_PEOPLE=true
FILAMENT_MODULE_COMMUNICATIONS=falseStaging
bash
APP_ENV=staging
APP_DEBUG=false
APP_URL=https://staging.seudominio.com
DB_CONNECTION=mysql
DB_HOST=10.0.0.5
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
FILAMENT_MODULE_INVOICES=true
FILAMENT_MODULE_PEOPLE=true
FILAMENT_MODULE_COMMUNICATIONS=trueProdução
bash
APP_ENV=production
APP_DEBUG=false
APP_URL=https://seudominio.com
DB_CONNECTION=mysql
DB_HOST=db.seudominio.com
DB_PORT=3306
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
MAIL_MAILER=ses
AWS_SES_REGION=us-east-1
FILAMENT_MODULE_INVOICES=true
FILAMENT_MODULE_PEOPLE=true
FILAMENT_MODULE_COMMUNICATIONS=true
LOG_LEVEL=errorComandos de Otimização
Desenvolvimento
bash
# Limpar todos os caches
php artisan optimize:clearProdução
bash
# Cachear configurações
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
# Otimizar autoload
composer dump-autoload --optimize --classmap-authoritative
# Compilar assets
npm run buildVariáveis Customizadas
Você pode adicionar suas próprias variáveis:
bash
# Minhas configurações customizadas
MY_API_KEY=abc123
MY_FEATURE_ENABLED=trueAcessar no código:
php
$apiKey = env('MY_API_KEY');
$featureEnabled = env('MY_FEATURE_ENABLED', false);Ou criar um arquivo de config:
php
// config/myapp.php
return [
'api_key' => env('MY_API_KEY'),
'feature_enabled' => env('MY_FEATURE_ENABLED', false),
];php
// Usar no código
$apiKey = config('myapp.api_key');Próximos Passos
- 🚀 Explore Funcionalidades Principais
- 🔧 Aprenda a Estender o Sistema
- 🏗️ Entenda a Estrutura do Projeto
- 🚢 Prepare o Deploy em Produção