These are the instructions to follow when you want to create a new Laravel 12 with PHP 8.3 using Github Actions CI/CD to automatically build the new webiste in the ISPCONFIG Digital Ocean VM with ISPCONFIG3. You can develope your app under a branch in any folder in your PC and any branch in your PC. Then fill out the form in G:\xampp8\htdocs\laravel\deploy-from-central-prod-template\setup-laravel-pipeline.php - Fill out the form and submit. then the powershell script will push the branch to github and to the server for deployment.

Example here:

Site: app6.websor.com

App Name: app6
* The app name also will be use in various other functions, be sure to keep it consisten

  • ISPCONFIG

  • Go to ISPCONFIG admin:
    1. Server: Default
    2. Client: Webune Client
    3. Domain: example: app6.websor.com
    4. Auto-Subdomain: None
    5. PHP: Fast-CGI
    6. PHP Version: 8.3
    7. Active: Yes
    8. (all others unchecked)
    9. Save
  • Update Hosts File

  • Add the new site to your PC hosts file:
  • $ code C:\Windows\System32\drivers\etc\hosts
  • Test Website

  • Test the site with your browser:http://app6.websor.com/ - You should see the Welcome to your website! page.
  • Apache directives

  • We need to get the SSHUSER from putty. Use the SSH user from web32 site. You can look in putty: DigitalOccean_todowebsor > Connection> Data, Be sure to write it down for the next step.
  • [SSHUSER]= ___________________
  • Notice the full path below, all laravel apps are to be used under the web32 underthe app/ directory
  •  In ISPCONFIG, go to options tab for the new website and copy/past these apache directives:
  • DocumentRoot /var/www/clients/client1/web32/home/[SSHUSER]/apps/[app6]/web
    <Directory /var/www/clients/client1/web32/home/[SSHUSER]/apps/[app6]/web>
        AllowOverride All
        Require all granted
    </Directory>
  • Github Repository

  • Follow these steps if you dont have a Github Repository:
    1. Using Herd: 
    2. Open Herd
    3. Add new website From new laravel project using React

    4. Once completed, open in browser: http://app6.test/
    5. Using Command Line: https://laravel.com/docs/12.x/installation
    6. Create a new PRIVATE repository in G:\xampp8\htdocs\laravel\ create a new laravel12 project.
    7. cd G:\xampp8\htdocs\laravel
    8. To Force the Laravel 12 skeleton structure follow these commands:
      composer create-project laravel/laravel:^12.0 app6
    9. Navigate inside the project root directory
      cd app6
      npm install;npm run build
      composer run dev
    10. I ran into a problem with error: Failed to listen on 127.0.0.1:8001 (reason: ?) - This might be because I have Herd installed. If so, start HERD and see the website in herd: 
  • Start Xampp8 (G:\xampp8) server only is OK
  • Go to: https://localhost:4433/laravel/deploy-from-central-prod-template/setup-laravel-pipeline.php
  • This form is used to automate the CI/CD process. There are previsouly used forms if you need to copy one but you dont have to. Fill out the fields:
    1. Title: Give it a good title, this will be use for various functions including the history file name and more importantly, the commit description
    2. Select Yest to the defaults. If its a new repository. you may have to add new Secrets or variables
    3. Laravel project path: G:\xampp8\htdocs\laravel\test-app6 (this is the local laravel path where the laravel project is located)
    4. Laravel GitHub repo: [mygithub_account(first and lastname)]/test-app
    5. GitHub branch for workflow actions: This is the branch which will be pushed to the server. if main ok, but you can create other branches if you want to.
    6. Workflow mode: Reusable
    7. Click Submit
  • To test. it might be a good idea to add the domain to your hosts file: C:\Windows\System32\drivers\etc\hosts