Deploy App

PHP, Laravel and WordPress

Deploy a PHP site, a Laravel app or a WordPress blog to your server — HTTPS, uploads and databases handled.

PHP

Choose PHP as the project type. Your code runs on Apache with PHP (8.4, 8.3 or 8.2), with the extensions most sites need (MySQL / MariaDB, PostgreSQL, GD, intl, zip, Redis, OPcache).

  • Composer: if your project has a composer.json, its packages are installed at each deploy (commit your composer.lock).
  • Web root folder: leave empty when index.php is at the top; set public or web if your site lives in a sub-folder.
  • .htaccess files work.
  • Persistent folders: anything users upload is lost on the next deploy unless its folder is listed here (for example uploads). Those folders are kept on the server across deploys.
  • Uploads up to 64 MB.

Laravel

Choose Laravel. On top of PHP:

  • composer install, and your Vite assets are built (npm run build).
  • APP_KEY is generated for you if your .env doesn't have one, with sensible production defaults (APP_ENV=production, logs to the app's Logs tab). Paste your own .env to override any of them.
  • storage/app (uploaded files) is kept across deploys.
  • Config, routes and views are cached each time the app starts.
  • Run database migrations on every deploy: when on, php artisan migrate --force runs before the new version goes live. If a migration fails, the deploy stops and the previous version keeps running.
  • To use a database from the Databases page, set DB_HOST to its container name (for example dcp-mysql-shop) — they share a private network.

Queue workers and the scheduler aren't run yet: use a custom container from the same image if you need them.

WordPress

Choose WordPress. There's no code to give: we run the official WordPress image, with its files on a volume so plugins, themes and uploads survive every update.

  • Database: by default WordPress gets its own MariaDB, created and kept with the site. Or choose Use my own database and set WORDPRESS_DB_HOST, WORDPRESS_DB_USER, WORDPRESS_DB_PASSWORD and WORDPRESS_DB_NAME.
  • After the first deploy, open your domain and finish WordPress's 5-minute install. Then Apply SSL on the Domains tab.
  • Uploads up to 64 MB; HTTPS works behind the panel without redirect loops.
  • Don't change WORDPRESS_DB_PASSWORD after the first deploy: the database keeps the password it was created with.
  • Deploy pulls the WordPress image again; WordPress itself and plugins update from its admin screen as usual.