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/CDash
Only 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/CDash
Perform 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 install
If 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:generate
Next, if you haven't already done so, create the file app/cdash/config/config.local.php
and populate it with any non-default settings you require. The most important values
to set here are:
- The
$CDASH_DB_*
variables. These indicate how to connect to the database. $CDASH_BASE_URL
should be set to the root URL of CDash (iehttps://localhost/CDash
)$CDASH_EMAIL*
variables. These indicate how email should be sent.$CDASH_USE_HTTPS
should be set to1
if you want to use https instead of http.
In most other cases, reasonable default values apply if the variables are not explicitly set.
Once you're happy with the contents of config.local.php
, run the following command to migrate
your config settings into the .env
file used by Laravel.
cd /path/to/CDash
php artisan config:migrate
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 dev
Open 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.