Development Installation

Support Respond! You can support the development of Respond 6 by using our Digital Ocean referral Code. This helps us pay for hosting.

Are you ready to get started developing with Respond? Learn how to install Respond on a traditional LAMP deployment and setup UI development using the Angular CLI. 

Quick Note: This installation process is built to enable fast development for Respond, and as such, assumes you have basic understanding of Laravel, PHP, and the Angular CLI.  If these are new concepts, spend some time reading up on them before moving forward.

1. Create the directory structure for Respond

You create your directory structure by navigating to your web root and creating folders for Respond. You can also do this using a graphical tool (such as sFTP). Below we are creating the following structure: var/www/html/respond/app. We are also adding a var/www/html/respond/app/public/sites folder that will hold the sites and a var/www/html/respond/app/resources/sites folder that will hold private data about your sites.

// go to your HTML root
cd var/www/html

// create the respond directory
mkdir respond

// switch directories
cd respond

// create a directory to hold the app and sites
mkdir app

// change to the app directory
cd app

2. Pull the repository and add dependencies

Pull the repository into the app folder.

git clone https://github.com/madoublet/respond .

// install front-end dependencies (angular, hashedit, etc)
npm install

// install composer (see https://getcomposer.org/download/)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

// run composer to install PHP dependencies
php composer.phar install --prefer-dist --no-dev

// run gulp (this copies all the dependencies into their appropriate places) gulp

3. Make the sites directories

Make the folders that store the sites public and private data. This is typically done by making Apache the owner of the directory. You can also set read-write permissions (e.g. 755) on the folder. Contact your hosting provider about the correct permissions for writeable directories.

// make sites directory in app (app/public/sites)
mkdir public/sites

// make sites directory in app (app/resources/sites)
mkdir resources/sites

// make the directories writeable
chown -R www-data public/sites
chown -R www-data resources/sites

4. Setup env

Copy the env file. You can set this up later to specify email and other settings.

// switch to app directory
cp .env.example .env

5. Map domains

We recommend you setup a domain for your application and a sub-domain (or domain) for each of your sites. This allows you to secure your application using https and provide nice URLs for sites created using the CMS. Domains are typically setup using DNS and your htdocs file. Refer to your hosting provider's documentation on setting up domains. For installs that will host multiple sites, we have created a guide for installing wildcard DNS based on our Digital Ocean setup.

.../respond
.../respond/app/public   ->  https://app.myrespond.com
.../respond/app/public/sites/mysite  ->  https://mysite.myrespond.com or https://app.myrespond.com/sites/my-site

6. Test installation

Navigate to https://app.myrespond.com/install (where app.myrespond.com is your installation URL) to test your installation.

7. Setup Respond UI

Setup front-end development for Respond using the Angular CLI. Get started here.