|
|
|
|
# Pixelfed Docker Environment Configuration
|
|
|
|
|
# Copy this file to .env.docker and update the values
|
|
|
|
|
|
|
|
|
|
# Application Configuration
|
|
|
|
|
APP_NAME="Pixelfed"
|
|
|
|
|
APP_ENV="production"
|
|
|
|
|
APP_KEY=
|
|
|
|
|
APP_DEBUG="false"
|
|
|
|
|
|
|
|
|
|
# Instance Configuration
|
|
|
|
|
OPEN_REGISTRATION="false"
|
|
|
|
|
ENFORCE_EMAIL_VERIFICATION="true"
|
|
|
|
|
PF_MAX_USERS="1000"
|
|
|
|
|
OAUTH_ENABLED="true"
|
|
|
|
|
OAUTH_PAT_ENABLED="false"
|
|
|
|
|
ENABLE_CONFIG_CACHE="true"
|
|
|
|
|
INSTANCE_DISCOVER_PUBLIC="true"
|
|
|
|
|
|
|
|
|
|
# Media Configuration
|
|
|
|
|
IMAGE_DRIVER=gd # vips, gd, imagick
|
|
|
|
|
PF_OPTIMIZE_IMAGES="true"
|
|
|
|
|
IMAGE_QUALITY="80"
|
|
|
|
|
MAX_PHOTO_SIZE="15000"
|
|
|
|
|
MAX_CAPTION_LENGTH="500"
|
|
|
|
|
MAX_ALBUM_LENGTH="4"
|
|
|
|
|
|
|
|
|
|
# Instance URL Configuration
|
|
|
|
|
# IMPORTANT: Update these with your actual domain
|
|
|
|
|
APP_URL="https://yourdomain.com"
|
|
|
|
|
APP_DOMAIN="yourdomain.com"
|
|
|
|
|
ADMIN_DOMAIN="yourdomain.com"
|
|
|
|
|
SESSION_DOMAIN="yourdomain.com"
|
|
|
|
|
TRUST_PROXIES="*"
|
|
|
|
|
|
|
|
|
|
# Database Configuration
|
|
|
|
|
DB_CONNECTION="mysql"
|
|
|
|
|
DB_HOST="db"
|
|
|
|
|
DB_PORT="3306"
|
|
|
|
|
DB_DATABASE="pixelfed"
|
|
|
|
|
DB_USERNAME="pixelfed"
|
|
|
|
|
DB_PASSWORD="change_this_secure_password"
|
|
|
|
|
DB_ROOT_PASSWORD="change_this_root_password"
|
|
|
|
|
|
|
|
|
|
# Redis Configuration
|
|
|
|
|
REDIS_CLIENT="phpredis"
|
|
|
|
|
REDIS_SCHEME="tcp"
|
|
|
|
|
REDIS_HOST="redis"
|
|
|
|
|
REDIS_PASSWORD="null"
|
|
|
|
|
REDIS_PORT="6379"
|
|
|
|
|
|
|
|
|
|
# Laravel Configuration
|
|
|
|
|
SESSION_DRIVER="database"
|
feat: add critical path test suite and fix auth/config issues
Test Infrastructure:
- Modernize phpunit.xml (bootstrap, source block, Laravel 12 env vars)
- Configure tests/Pest.php with pest()->extend(TestCase::class)->in('Feature')
- Add docker-compose.test.yml (Redis for test suite)
- Add composer test/test:quick scripts
- Rename CACHE_DRIVER to CACHE_STORE across config (backwards compatible)
- Update .env.testing for in-memory SQLite + Docker Redis
Test Coverage (190 tests):
- CriticalRoutes: public routes, auth routes, API endpoints, middleware, schedule
- Auth/LoginTest: login, logout, rate limiting, redirect behavior
- Auth/RegisterTest: registration flow, validation, disabled registration
- Auth/PasswordResetTest: reset request, token validation, password update
- Auth/TwoFactorTest: 2FA checkpoint, setup behind password confirmation
- Auth/PasswordConfirmationTest: sudo mode flow via Laravel password.confirm
- Api/ScopeTest: scope enforcement, public endpoints, admin access
Bugs Fixed:
- Fix unauthenticated API returning 500 instead of 401 (AuthenticationException
not handled in custom exception renderer in bootstrap/app.php)
- Replace custom DangerZone middleware with Laravel password.confirm
- Add HasFactory trait to Profile model for test factories
Bugs Documented (known-bugs group):
- Registration crashes with str_ends_with TypeError (RegisterController:82)
- OAuth routes use legacy array syntax causing ReflectionFunction TypeError
4 weeks ago
|
|
|
CACHE_STORE="redis"
|
|
|
|
|
QUEUE_DRIVER="redis"
|
|
|
|
|
BROADCAST_DRIVER="log"
|
|
|
|
|
LOG_CHANNEL="stack"
|
|
|
|
|
HORIZON_PREFIX="horizon-"
|
|
|
|
|
|
|
|
|
|
# ActivityPub Configuration
|
|
|
|
|
ACTIVITY_PUB="true"
|
|
|
|
|
AP_REMOTE_FOLLOW="true"
|
|
|
|
|
AP_INBOX="true"
|
|
|
|
|
AP_OUTBOX="true"
|
|
|
|
|
AP_SHAREDINBOX="true"
|
|
|
|
|
|
|
|
|
|
# Experimental Configuration
|
|
|
|
|
EXP_EMC="true"
|
|
|
|
|
|
|
|
|
|
# Mail Configuration
|
|
|
|
|
# Configure after initial setup
|
|
|
|
|
MAIL_DRIVER="smtp"
|
|
|
|
|
MAIL_HOST="smtp.mailtrap.io"
|
|
|
|
|
MAIL_PORT="2525"
|
|
|
|
|
MAIL_USERNAME="null"
|
|
|
|
|
MAIL_PASSWORD="null"
|
|
|
|
|
MAIL_ENCRYPTION="tls"
|
|
|
|
|
MAIL_FROM_ADDRESS="pixelfed@yourdomain.com"
|
|
|
|
|
MAIL_FROM_NAME="Pixelfed"
|
|
|
|
|
MAIL_AUTO_TLS=true # STARTTLS (false to bypass)
|
|
|
|
|
|
|
|
|
|
# S3 Configuration (Optional)
|
|
|
|
|
PF_ENABLE_CLOUD="false"
|
|
|
|
|
FILESYSTEM_CLOUD="s3"
|
|
|
|
|
#AWS_ACCESS_KEY_ID=
|
|
|
|
|
#AWS_SECRET_ACCESS_KEY=
|
|
|
|
|
#AWS_DEFAULT_REGION=
|
|
|
|
|
#AWS_BUCKET=
|
|
|
|
|
#AWS_URL=
|
|
|
|
|
#AWS_ENDPOINT=
|
|
|
|
|
#AWS_USE_PATH_STYLE_ENDPOINT=false
|
|
|
|
|
## Optional (WHEN_SUPPORTED (default) / WHEN_REQUIRED) https://docs.aws.amazon.com/sdkref/latest/guide/feature-dataintegrity.html
|
|
|
|
|
# AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_SUPPORTED
|
|
|
|
|
# AWS_RESPONSE_CHECKSUM_VALIDATION=WHEN_SUPPORTED
|