If you'd like to install CDash in a Docker container, please see our Docker installation guide.
Before installing CDash, you will need:
- A web server: Apache or NGINX
- A database: MySQL v5.x+ or PostgreSQL v9.2+
- PHP 7.3+
- Composer v2.x (to install PHP dependencies)
- npm v6 (to install Javascript dependencies)
CDash needs the following PHP modules installed and enabled.
- bcmath
- bz2
- curl
- gd
- json
- ldap
- mbstring
- pdo_mysql or pdo_pgsql
- xsl
- posix
- simplexml
- tokenizer
- fileinfo
- session
- zlib
CDash is built on top of the Laravel framework.
Laravel's routing system requires your web server to have the mod_rewrite module enabled.
It also requires your web server to honor .htaccess files (AllowOverride All).
See Laravel documentation for more information.
If you haven't already done so, download CDash from GitHub or clone it using git.
git clone https://github.com/Kitware/CDashOnly CDash's public subdirectory should be served to the web.
The easiest way to achieve this is to create a symbolic link in your DocumentRoot
(typically /var/www) that points to /path/to/CDash/public.
The user that your web server is running under will need write access to the CDash directory.
In the following example, we assume your web server is run by the www-data user.
# Modify CDash directory to belong to the www-data group
chgrp -R www-data /path/to/CDash
# Make the CDash directory writeable by group.
chmod -R g+rw /path/to/CDashPerform the follow steps when you initially install CDash and upon each subsequent upgrade.
# Install PHP and JavaScript dependencies
cd /path/to/CDash
composer install --no-dev --prefer-dist
npm installIf you don't already have a .env file in the root of your CDash tree, start with
one based on the default configuration, and set your application key.
cd /path/to/CDash
cp .env.example .env
php artisan key:generateNext, open .env in an editor and configure your instance of CDash.
Important values to specify here are:
APP_URLshould be set to the root URL of CDash (iehttps://localhost/CDash)- The
DB_*variables instruct CDash how to connect to its database. - The
MAIL_*variables dictate how email should be sent by CDash.
In most other cases, reasonable default values apply if the variables are not explicitly set.
For a full list of config options, see .env.example.
At this point, make sure your .env file has a APP_URL entry, and that the following line
appears somewhere further down in the file:
MIX_APP_URL="${APP_URL}"
Once you're happy with your config settings, run npm to generate CDash's frontend.
# Generate build files
npm run devIf you're upgrading from CDash v3.0 or earlier you can use the following command to migrate
your settings from config.local.php into the .env file used by Laravel.
cd /path/to/CDash
php artisan config:migrateOpen up your new CDash instance in a web browser. You should be automatically
redirected to install.php. Fill out the installation form to create the
database tables and the initial admin user.
Once that is complete you can create a project and start submitting builds to it.
Run the following command whenever you upgrade an existing CDash installation to a new version.
cd /path/to/CDash
php artisan migrateThis will ensure that your database schema is up-to-date.