Our SetupCase solution will enable you to create online software and custom websites using proven open-source frameworks paired with Docker, and LaunchPad which offer you a full-stack developement process ensuring you stay ahead of the endless change-requests which are required to create competitive business solutions.

Docker offers you a local development platform which can be scripted to adapt to your projects niche requirements

LaunchPad is our streamlined secure method using openSSH to upload your source files directly into our PaaS (Platform-as-a-Service) or other 3rd party linux servers

PaaS (Platform-as-a-Service) is our cost-effective online solution that enables your audience to securely connect to your online software or custom website with ultrafast quality LAMP hosting, unlimited email accounts, free domain name, visual control panel and much more.

Our solution is the space command to your code (the rocket ship) helping you to batten down the hatches (write all the code), blast-off into orbit (launch your project LIVE) and navigate to the space station (which is our PaaS - Platform-as-a-service) so your project stays online, glimmering in the night sky for the world to see !

"Houston, we do NOT have a problem here... carrying on..."


For peace of mind

Help is available for any hosting questions 24 hours a day and 7 days a week with a 15 minute response guarantee.


Without any delay

Our systems feature quality control panels, so you, the technical-minded client can complete changes yourself.


For guided setup

We are constantly creating new training videos and FAQs (Frequenty asked questions) to guide you step by step how to accomplish tasks yourself.

Our Cost-Effective PaaS: UpdateCase.com

Quality LAMP Hosting
Our Launch system will allow you to deploy your code directly to our LAMP servers without issue. We offer 24/7 support on our hosting to ensure you get the help you need anytime of the day.
Our PaaS (Platform-as-a-service) offers unlimited e-mail accounts with 24/7 support.
Manage multiple domains with free SSL certificates using our control panel.
Easy Configuration
Easily configure your server with our visual control panel.
Download detailed reports for all the traffic from your server.

Create Custom Websites & Software Yourself

Straight Forward Development Practices

Our SetupCase solution will enable you to create your own custom websites & software using proven open-source frameworks paired with our proven programming techniques all containerized with Docker to assure you can replicate your system instantly accross different systems without complex configurations.

Watch our video guide showing the entire process of downloading the CakePHP framework, integrating into our solution, adding a professional layout to create a custom website right before you eyes.

Watch our Quick-Start Video

Our solution focuses on CUSTOM, because in our experience NO CLIENT has ever said I want that and was done. Customizations is what allows to excel in business.

Build Software with our Coding Blocks

Efficiently stack modules to create your prototype

Build software with our Coding Block method to efficiently stack different modules and microservices together for a prototype, then customize in line with your unique requirements before finalizing per your project scope and specs.

We offer the most required features so you don't have to re-create the wheel and instead you can tailor these per your projects unique specs:

Authentication, Secure prefix / role based access, Drag-and-drop file upload, lanugage urls & links, object storage, export to CSV, render PDF, JSON API headers, Responsive tables, and much more !

Integrates with Open-Source Frameworks

CakePHP gets you online securely with ease

Our solution will integrate into the CakePHP open-source frameworks (We are planning to launch other languages and platforms in the future) giving the best of both worlds. Use the power of frameworks used by millions of people and integrate into our proven methodology to ensure you create software efficiently and securely using known techniques.

Don’t waste time reading endlessly on online forums of possible ways that might work, instead use our solution that DOES work to get the initial system online. And because our system is Dockerized you can setup environments efficiently to test out and test a direction to ensure it works within your project scope.

Upload Software Updates Efficiently

Easily update your LIVE, testing & staging servers

Our world moves so fast that you MUST launch your software early and continuously to stay ahead of the competition. Our Launch solution allows to quickly test your local code and publish LIVE with a simple command. Don’t waste time managing servers when you can be a Full-Stack developer.

Read technical info about our Launch system here

Instantly Deploy To Our Cost-Effective PaaS

Or deploy to other 3rd party services as well !

Our solution enables you to efficiently publish your local project to our PaaS (Platform-as-a-service) enabling you to launch your project sooner and more confidently.
You are not locked in as our solution is built using open standards so you can also deploy to other 3rd party servers.

Read more about our PaaS: UpdateCase.com


Optional Docker Development Platform

Free Method to Manage Local and LIVE environments

As an optional advanced configuration you can enable Docker to create a development platform that can be replicated to other team members and/or public servers using scripts. Use our ready to go Docker script that will get your website started with a database that can then be customized per your project requirements. The scripting method of Docker allows to save the exact solution you need locally and live without forgetting what customizations were made to a server. This is powerful when you have any issue you can simply recreate the entire environment yourself and get back online efficiently without stress.

View detailed technical details here

#1 Initial Setup / Preparation

Logon to your SetupCase control panel (click here to sign-up for your account)

  • Enable SSH (Control panel -> SSH Access -> SSH access is disabled -> Click Enable)
  • Activate Wget/Curl (Control panel -> SSH Access -> Network tools -> Enable)
  • Create sub-domains (Control panel -> Sub Domains -> Create 'test' & 'repos')
  • Activate Git Repo (Control panel -> Git -> fill in form)
    • Domain: choose your main domain
    • Sub-domain choose 'repos'
    • Leave 'web access path' blank'
    • Name: use your project name
    • Desc: A short desc about your project

NOTE: Copy down the Web Address, username and password after the Git repo is created for step 4

Each project create a new subdomain (Control panel -> Sub Domains -> Create 'projectName')

#2 Build the Source files using SSH

Connect to your new server over SSH

  • Use powershell / termianl to access the ssh server
ssh user@domain.com
  • Fill-in the password that was sent with your welcome package 
  • Navigate to the 'productName' sub-domain which you created in step one (eg projectName.domain.com)
cd ~/www/projectName
#optionally clear this directory to be empty
rm -rf *
wget https://raw.githubusercontent.com/undoLogic/setupCase-boilerplate/main/build/install_setupCase.sh
chmod +x install_setupCase.sh
# Accept the permissions with Y
  • This script will install CakePHP 4 with authentication and integrate the SetupCase library.

You can now test and view the working site: http://test.domain.com/sourceFiles

IMPORTANT: If you get permission issues follow the instructions on the screen to allow the mixed permission directories and then manually commit / push the git files

git add . && git commit -m "Creating new project"
git push -u origin master



#4 Git clone sourcefiles to your computer

We will now prepare our IDE so we can program locally on our computer but all our files will be auto-uploaded to our server to view the changes
-> Open powershell / terminal

cd ~/PhpstormProjects
# replace with the webAddress from step 2
git clone http://repos.domain.com/project.git projectName

The files which you prepared on the server are now on your local computer

#5 Prepare your IDE

Setup sFTP on your IDE

Using PHPstorm:
- Tools -> Development -> Browser Remote Host -> click '...'
- Name: test (type: sFTP - ssh over FTP)
- SSH configuration - click '...'
- Create new config with "+"
HOST: test.domain.com (replace domain with your server domainname)
USER: server username (included in your welcome package)
PRIVATE KEY FILE: click folder to navigate to private key 
- Click 'Test Connection' to ensure you can connect to the test server

#6 Prepare IDE - Assign remote server

-> Click OK to return to the previous screen

ROOT PATH: click 'Autodetect'
- LOCAL PATH: Navigate to your 'sourceFiles' directory
- DEVELOPMENT PATH: click to navigate to 'www' - 'test' - 'sourceFiles'

Auto-upload changes

PHPstorm - Tools - Developement - Options



#1 Download Layout Source Files

Before we start any programming, we first must create our Visual Layout Clickthrough.

Download a layout from your favourite Bootstrap layout supplier. GrayGrids is a great company which you can download beautiful professional layouts to create your visual clickthroughs. 

This is a crutial step as it allows you to link together all the visual pages with finalized visuals and add mock-features which outline what programming needs to be completed. You and your team can revise the visuals as much as needed until everything is thought through and approved.

Now you can move on to the programming stage confidently knowing all the programming that will be developed has been throughly brainstormed and this ensures the programming scope won't change after it is started.

#3 View in browser

Because they have been added to webroot, this means you can view the entire layout in your browser


#4 Integrate Layout into cakePHP

Create a new layout file


Copy all the files from one of the pages from your new layout for example


COPY contents into


#5 Create baseLayout variable

All the source files we added to our layout reference files which are located in our modules directory
-> So we are going to simply create a variable the allows us to reference the corrrect location.

In your PagesController.php (or AppController.php) file

function beforeFilter() {
$this->set('baseLayout', Router::url('/').'modules'.DS.'layout'.DS);

Now in the layout file (/src/templates/newLayout.php)

Find and replace the following:

FIND src=" REPLACEWITH src="<?= $baseLayout; ?>
FIND href=" REPLACEWITH href="<?= $baseLayout; ?>

#6 Separate Layout content from each page content

We currently have a SINGLE layout file, but we need to create separate pages, so you need to separate the content (on the layout) which is common to all pages apart from the content that is different on each page.

Using inspector find the correct div and cut this content and add to a page

#7 Create each page

Create all the visual pages by doing the following

Create a new function in the controller AND create a new view page

#2 Migrate to GitHub

The included GIT is great to get up and running, but when you start programming and want to work with others we are going to migrate our git sourceFiles into GitHub

- Create a new repository

PHP Storm:
- Open the project which was already connected to your GIT repo you created above
- Click 'GIT' on the toolbar and choose 'manage remotes'
- EDIT the origin and REPLACE with your new gitHub repo (eg https://github.com/undoLogic/PROJECTNAME.git)
- Click OK
- Now we are pushing to origin: Click 'GIT' from the toolbar and choose 'Push...' then push buton

- Refresh your repo page and you will now see all the files you pushed in
-> Next your team now can clone from your Github address

#3 Connect MySQL database

Now we are ready to connect a database to our software application, which will enable us to save data and interact with previously saved data. 

Copy the file "sourceFiles/config/app_local.php"
- Save it as app_LOCATION.php (name is to indicate where it will be used eg app_LIVE or app_TEST or app_CLIENTLOCATION)
-> You now have a newly created file app_LOCATION.php
-> We will now modify this file: Find 'datasources' and modify the url array value
-> You are adding on get_cfg.... which will allow to get the credentials from your server

'Datasources' => [
  'default' => [
    'url' => get_cfg_var('PROJECTNAME.Datasources.default.url'),


Now we need to configure our software to swtich to the correct file in the 'bootstrap.php' file (sourceFiles/config/bootstrap.php)

Find " * Load an environment local configuration file to provide overrides to your configuration." and connect that function name
-> Replace with this instead

$setupCase = new \App\Util\SetupCase;
$activeIs = $setupCase->env_getActive();
if ($activeIs == 'UNDOWEB') {
  Configure::load('app_LOCATION', 'default');
} elseif ($activeIs == 'LIVE') {
  dd('not setup yet');
} else {
  dd('unknown env to setup ?');

Open SourceFiles/src/Util/SetupCase.php -> var $liveDomains
-> Add your domain of your location with a name

    var $liveDomains = [
      //domain => //NAME
    'test.server.com' => 'TEST',
      'live.com' => 'LIVE',

Create a new database with phpMyAdmin on your server
-> name it with prefix_PROJECTNAME_testing
-> testing is important so you will always know it's not a live db when working on it

On your server in the PHP.ini (GLOBAL) file you need to add the following:

PROJECTNAME.Datasources.default.url = mysql://USER:PASS@localhost/DB_NAME

#4 Migrate to GitHub

The included GIT is great to get up and running, but when you start programming and want to work with others we are going to migrate our git sourceFiles into GitHub

- Create a new repository

PHP Storm:
- Open the project which was already connected to your GIT repo you created above
- Click 'GIT' on the toolbar and choose 'manage remotes'
- EDIT the origin and REPLACE with your new gitHub repo (eg https://github.com/undoLogic/PROJECTNAME.git)
- Click OK
- Now we are pushing to origin: Click 'GIT' from the toolbar and choose 'Push...' then push buton

- Refresh your repo page and you will now see all the files you pushed in
-> Next your team now can clone from your Github address

#1 Configure LaunchPad

First we must configure out settings.json file to connect with our target server.

Follow the detailed instructions on our source code page

Navigate to the 'launchPad' directly.

cd /launchPad

#2 Upload to TESTING (optional)

The test environment is optional and is meant to allow each developer to upload their files to an online server.

This is great to share their progress online and between colleagues.


#3 Upload to STAGING

After all the changes have been completed it is time to post our changes to the LIVE server
-> We first upload our changes to our STAGING server
-> This ensures our project is fully functional, connects properly with any database, etc.
-> This link can be shared with a client who can verify the new version before going LIVE



#4 post LIVE

At this point all the changes have been approved on the staging and we can now confidently push our changes to the LIVE server

Rinse and Repeat ! Do it and do it again !