Skip to content

kernelci/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KernelCI Dashboard

Our Web Dashboard to evaluate test results from the common results database(KCIDB). Available at dashboard.kernelci.org.

The new KernelCI Web Dashboard is a web application created to provide access to static checks, build logs, boot logs and test results related for the Linux kernel CI/test ecosystem. All that data will be provided by KCIDB system from the KernelCI Foundation.

Repository

What we have as a repository is a monorepo containing the dashboard (the web application) and a backend.

Dashboard

A web app built with React + Typescript, to see more information check the dashboard README.

Backend

A Python http server built with Django + DRF, to see more information check the backend README.

Build

Create a .env file in /dashboard (Do not forget to check and set the variables and their values)

 cp ./dashboard/.env.example ./dashboard/.env

Create a secret key for Django:

export DJANGO_SECRET_KEY=$(openssl rand -base64 22)

We are not using sessions or anything like that right now, so changing the secret key won't be a big deal.

Add a application_default_credentials.json file with your ADC in the root of the project.

gcloud auth application-default login
cp ~/.config/gcloud/application_default_credentials.json .

After setting up your connection with Google Cloud with the following commands:

cloud-sql-proxy kernelci-production:us-central1:postgresql2 &
gcloud auth application-default login

If it doesn't work, check the Configure ADC with your Google Account documentation.

Create a secret file with the database password:

mkdir -p backend/runtime/secrets
echo <password> > backend/runtime/secrets/postgres_password_secret

If you are going to use a database user other than kernelci, set it to DB_DEFAULT_USER:

export DB_DEFAULT_USER=<user>

Startup the services:

docker compose up --build -d

Deploying to production

To deploy to prod you need to push a tag in the release/YYYYMMDD.N format like: release/20240910.0

Contributing

There is an onboarding guide to help get acquainted with the project.