Laravel Jetstream is a beautifully designed application starter kit for Laravel and provides the perfect starting point for your next Laravel application. Jetstream provides the implementation for your application's login, registration, email verification, two-factor authentication, session management, API via Laravel Sanctum, and optional team management features.
- Zerops PostgreSQL service 16 as database
- Zerops KeyDB (Redis) service for session and cache
- Zerops Object Storage (S3 compatible) service as file system
- Mailpit as SMTP mock server
- Adminer as database management
Locate the "Import project" button on your Zerops dashboard and put in the following YAML structure.
#yamlPreprocessor=on
project:
name: laravel-jetstream
tags:
- laravel
services:
- hostname: db
type: postgresql@16
mode: NON_HA
priority: 10
- hostname: redis
type: keydb@6
mode: NON_HA
priority: 10
- hostname: storage
type: object-storage
objectStorageSize: 2
objectStoragePolicy: public-read
priority: 10
- hostname: mailpit
type: go@1
buildFromGit: https://github.com/zeropsio/recipe-mailpit
enableSubdomainAccess: true
ports:
- port: 8025
httpSupport: true
- port: 1025
minContainers: 1
- hostname: adminer
type: [email protected]+2.4
buildFromGit: https://github.com/zeropsio/recipe-adminer@main
enableSubdomainAccess: true
minContainers: 1
maxContainers: 1
- hostname: app
type: [email protected]+1.22
buildFromGit: https://github.com/zeropsio/recipe-laravel-jetstream
enableSubdomainAccess: true
envSecrets:
APP_NAME: ZeropsLaravel
APP_DEBUG: true
APP_ENV: production
APP_FAKER_LOCALE: en_US
APP_FALLBACK_LOCALE: en
APP_KEY: <@generateRandomString(<32>)>
APP_LOCALE: en
APP_MAINTENANCE_DRIVER: file
APP_MAINTENANCE_STORE: database
APP_TIMEZONE: UTC
APP_URL: ${zeropsSubdomain}
ASSET_URL: ${APP_URL}
VITE_APP_NAME: ${APP_NAME}
DB_CONNECTION: pgsql
DB_DATABASE: db
DB_HOST: db
DB_PASSWORD: ${db_password}
DB_PORT: 5432
DB_USERNAME: ${db_user}
AWS_ACCESS_KEY_ID: ${storage_accessKeyId}
AWS_REGION: us-east-1
AWS_BUCKET: ${storage_bucketName}
AWS_ENDPOINT: ${storage_apiUrl}
AWS_SECRET_ACCESS_KEY: ${storage_secretAccessKey}
AWS_URL: ${storage_apiUrl}/${storage_bucketName}
AWS_USE_PATH_STYLE_ENDPOINT: true
LOG_CHANNEL: syslog
LOG_LEVEL: debug
LOG_STACK: single
MAIL_FROM_ADDRESS: [email protected]
MAIL_FROM_NAME: ZeropsLaravel
MAIL_HOST: mailpit
MAIL_MAILER: smtp
MAIL_PORT: 1025
BROADCAST_CONNECTION: redis
CACHE_PREFIX: cache
CACHE_STORE: redis
QUEUE_CONNECTION: redis
REDIS_CLIENT: phpredis
REDIS_HOST: redis
REDIS_PORT: 6379
SESSION_DRIVER: redis
SESSION_ENCRYPT: false
SESSION_LIFETIME: 120
SESSION_PATH: /
BCRYPT_ROUNDS: 12
TRUSTED_PROXIES: "*"
FILESYSTEM_DISK: s3
nginxConfig: |-
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \\.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\\.(?!well-known).* {
deny all;
}
access_log syslog:server=unix:/dev/log,facility=local1 default_short;
error_log syslog:server=unix:/dev/log,facility=local1;
}
minContainers: 1