Download the PHP package asamoahboateng/frankenphp-deploy without Composer

On this page you can find all versions of the php package asamoahboateng/frankenphp-deploy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package frankenphp-deploy

FrankenPHP Deploy

FrankenPHP + Traefik Docker deployment scaffolding for Laravel Octane projects.

Requirements

Installation

Quick Start

This will create:

SSL Certificates

Local Development

This uses mkcert to generate trusted local SSL certificates into certs/local/.

Production / Multi-Domain

When using Traefik, each project manages its own SSL certificate. Place your cert files in the project's frankenphp_server/certs/ directory:

Set APP_ENV=local or APP_ENV=production in your .env to control which certs are loaded.

When ./pha start runs, a cert_loader service copies each project's certs into shared Docker volumes (traefik_certs, traefik_dynamic). Traefik watches these volumes and automatically picks up certificates for all projects — so each domain gets its own SSL without any Traefik restart.

Starting Your Application

Pha CLI Commands

Lifecycle

Command Description
./pha start Start with Traefik reverse proxy
./pha standalone Start without Traefik (FrankenPHP handles SSL)
./pha stop Stop all containers
./pha reboot Restart all services
./pha reload Reload Octane workers (zero downtime)
./pha fresh Wipe and rebuild (local only)
./pha delete Remove all containers, images, volumes

Scaling

Command Description
./pha scale [n] Scale to n replicas (e.g., ./pha scale 4)

Development

Command Description
./pha art [cmd] Run artisan command
./pha composer Run composer command
./pha npm Run npm command
./pha tinker Open Laravel tinker
./pha ssh Shell into container

Monitoring

Command Description
./pha ls List running containers
./pha logs Tail FrankenPHP logs
./pha status Show detailed status

Configuration

After installation, edit frankenphp_server/.env to customize:

Architecture

Standalone vs Traefik

Standalone (./pha standalone) Traefik (./pha start)
SSL FrankenPHP/Caddy handles SSL directly Traefik terminates SSL, proxies to FrankenPHP
Ports Exposes 80, 443, 443/udp (HTTP/3) No ports exposed — Traefik routes traffic
Multi-project One app per server Multiple apps on the same server
Scaling Single container Horizontal scaling via replicas
Cert management Caddy auto-manages or uses local certs cert_loader copies certs to shared Traefik volumes
Adminer Exposed on port 8080 Routed via adminer.yourdomain.com

Use standalone for a single app on a server (simpler, fewer moving parts). Use Traefik when you need multiple apps sharing ports 80/443 or horizontal scaling.

With Traefik (Multi-Project Setup)

Standalone (Single Project)

Services Included

Init Service

The init service is a one-shot container that runs before the main FrankenPHP application starts. It ensures your environment is ready by performing:

  1. Composer install - installs/updates PHP dependencies (composer install --optimize-autoloader)
  2. Database migrations - runs php artisan migrate --force
  3. Storage link - creates the public storage symlink

The startup order is: db/redis → init → frankenphp → worker

The init container uses the same Docker image as the app, exits after completing its tasks, and will not restart. If it fails (e.g., a migration error), the main app will not start — allowing you to fix the issue before the app serves traffic.

To customize what the init service runs, edit frankenphp_server/init.sh.

Database Backups

The db_backup service runs alongside your app and performs a weekly pg_dump of the PostgreSQL database. Each time it runs, it deletes the previous backup and creates a fresh compressed dump.

Backups are stored in frankenphp_server/db-backups/ on the host:

To restore from a backup:

pgvector (Vector Search)

To enable vector similarity search, use the --pgvector flag during installation:

This switches the database image from postgres:16-alpine to pgvector/pgvector:pg16. After starting the containers, enable the extension in your database:

This is useful for AI/ML applications that need to store and query vector embeddings (e.g., with Laravel Scout or custom similarity search).

Optional Services

Typesense (Search Engine)

Typesense is included by default but is optional. It's useful for Laravel Scout integration.

To use Typesense:

  1. Set your API key in frankenphp_server/.env:

  2. Add to your Laravel .env:

  3. Install Laravel Scout with Typesense:

To remove Typesense:

If you don't need search functionality, comment out or delete the Typesense service in your docker-compose files:

In frankenphp_server/docker-compose-traefik.yml and docker-compose-standalone.yml:

Also remove the Typesense environment variables from the frankenphp service:

Publishing Config

To customize the package configuration:

This publishes config/frankenphp.php where you can set default values for Traefik network names and other settings.

Force Overwrite

To reinstall and overwrite existing files:

License

MIT


All versions of frankenphp-deploy with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/console Version ^11.0|^12.0
illuminate/contracts Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package asamoahboateng/frankenphp-deploy contains the following files

Loading the files please wait ...