Skip to content

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ília
  • America/Fortaleza - Nordeste (sem horário de verão)
  • America/Manaus - Amazonas
  • America/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_ci

PostgreSQL

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=public

SQLite (Desenvolvimento)

bash
DB_CONNECTION=sqlite
# DB_DATABASE será: database/database.sqlite

Configuraçõ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=0

File (Desenvolvimento)

bash
CACHE_DRIVER=file

Memcached

bash
CACHE_DRIVER=memcached

MEMCACHED_HOST=127.0.0.1
MEMCACHED_PORT=11211

Configuraçõ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=lax

Para produção com Redis:

bash
SESSION_DRIVER=redis
SESSION_LIFETIME=120
SESSION_SECURE_COOKIE=true
SESSION_SAME_SITE=strict

Configurações de Queue (Filas)

Sync (Desenvolvimento)

bash
# Executar jobs imediatamente (síncrono)
QUEUE_CONNECTION=sync

Redis (Produção)

bash
QUEUE_CONNECTION=redis
QUEUE_FAILED_DRIVER=database

# Número de tentativas para jobs falhados
QUEUE_RETRY_AFTER=90

Database

bash
QUEUE_CONNECTION=database
QUEUE_FAILED_DRIVER=database

Iniciar 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=log

Emails 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.net

AWS 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-1

SendGrid

bash
MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=sua_api_key_sendgrid
MAIL_ENCRYPTION=tls

Configuraçõ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=+5511999999999

WhatsApp (Twilio)

bash
WHATSAPP_PROVIDER=twilio
WHATSAPP_FROM=whatsapp:+14155238886
TWILIO_WHATSAPP_SID=seu_sid

Alternativas SMS

bash
# Zenvia
SMS_PROVIDER=zenvia
ZENVIA_API_TOKEN=seu_token

# Total Voice
SMS_PROVIDER=totalvoice
TOTALVOICE_ACCESS_TOKEN=seu_token

Configuraçõ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=true

Configuraçõ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=false

Configuraçõ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=null

Configuraçõ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=false

Configuraçõ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_key

Google Analytics

bash
GOOGLE_ANALYTICS_ID=G-XXXXXXXXXX

Configuraçõ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=3600

Arquivo 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=false

Staging

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=true

Produçã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=error

Comandos de Otimização

Desenvolvimento

bash
# Limpar todos os caches
php artisan optimize:clear

Produçã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 build

Variáveis Customizadas

Você pode adicionar suas próprias variáveis:

bash
# Minhas configurações customizadas
MY_API_KEY=abc123
MY_FEATURE_ENABLED=true

Acessar 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

  1. 🚀 Explore Funcionalidades Principais
  2. 🔧 Aprenda a Estender o Sistema
  3. 🏗️ Entenda a Estrutura do Projeto
  4. 🚢 Prepare o Deploy em Produção

Recursos Úteis

Documentação privada do ecossistema Filament Core.