Skip to content
PN Scripts

Developer tools

Berthwell

A production stack for one Laravel app: automatic HTTPS, hardened nginx and PHP, a queue worker and scheduler, MySQL, Redis and encrypted backups in Docker Compose, plus an Ansible playbook for a fresh server.

  • Docker Compose
  • Ansible
  • Caddy
  • nginx
  • PHP 8.4
  • Coming soon

Coming soon

Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.

Diagram of the Berthwell services and networks, read from docker compose config

What it solves

The gap

Moving a Laravel app from a laptop to a server means getting HTTPS, workers, the scheduler, database, Redis, security settings and backups right at once, and most guides stop before backups and restores.

What it is

Berthwell gives one tested set of Compose, container and server files that covers HTTPS, workers, data stores, hardening and encrypted backups with restore, for a single server.

How you use it

A secure, backed-up Laravel server in an afternoon, with the restore already tested.

For Laravel developers and small agencies who host their own apps, Berthwell is a production stack they can read, change and trust, without a hosting control panel or a platform subscription.

Who it is for

Use it when

  • Moving a Laravel app from shared hosting to its own server
  • Standardising client deployments for a small agency
  • Adding tested, encrypted backups to a self-hosted app

Built for

  • Laravel developers who host their own applications
  • Small agencies and freelancers who deploy for clients

What is inside

The stack

Caddy, nginx, php-fpm, queue worker, scheduler, MySQL 8.4, Redis and a backup service in one compose.yml. Services start in order once each is healthy, restart on failure and rotate their logs. The app image is built in stages without dev packages and runs as www-data under tini.

Locked down

Only Caddy publishes ports; MySQL and Redis are on a network with no internet access. Containers are read-only where possible and drop all capabilities. nginx hides dotfiles and stray PHP and rate-limits login routes; PHP never shows errors; Redis requires a password and never evicts queued jobs.

Backups that restore

Every night the database and uploads are dumped, encrypted with AES-256, read back and checksummed, then kept as daily, weekly and monthly copies and optionally mirrored off-site with rclone. The restore script lists, checks and loads a backup into a new database, and the container reports unhealthy if backups stop.

A fresh server in one run

The Ansible playbook allows SSH keys only, sets up UFW, fail2ban, automatic security updates, kernel hardening and swap, installs Docker CE from Docker's repository, checks out your app, writes the settings and starts the stack as a systemd service.

Specs

Availability
Coming soon
Vendor
PN Scripts
Type
Starter kit
Platforms
Laravel, PHP
Pricing
One-time purchase Price to be announced.
License
Proprietary
Deployment
Download (ZIP with compose.yml, Dockerfiles, configuration files, backup scripts and an Ansible playbook)
Maturity
v1.0.0

Compatibility

Platform or runtime Supported versions Tested up to
Laravel 11 or newer 13 (local run)
Docker Compose 5.6 or newer 5.6 (config validation only)
ansible-core 2.21 or newer 2.21.5 (syntax and role rendering)

Stack

  • Docker Compose
  • Ansible
  • Caddy
  • nginx
  • PHP 8.4
  • MySQL 8.4
  • Redis

Berthwell is coming soon

It is finished and tested. It is not on sale yet; this page will say where to get it when it is.

Coming soon

Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.

Questions

A set of Docker Compose, container, configuration and Ansible files that runs one Laravel application in production on one server, with HTTPS, workers, MySQL, Redis, hardening and encrypted backups.

A Laravel 11 or newer project with composer.lock, a server written for Ubuntu 22.04/24.04 or Debian 12 with 2 GB of memory or more, a domain, and Docker with the Compose plugin, which the playbook can install.

Hosting, PostgreSQL, multi-server or zero-downtime deployments, and Laravel Horizon set-up. The images were not built with Docker and the playbook was not run against a server during testing.

PN Scripts wrote the files and tested them with the same tools and server programs the stack uses. Created with AI assistance; every file was checked by PN Scripts with 44 automated tests, including Compose validation, hadolint, Caddy and nginx checks, and a local run with MySQL 8.4, Redis and Laravel 13; the images were not built with Docker during testing.

It is not on sale yet. When it is, this page will link to the store; PN Scripts does not take payment on this site.