Fetching contributors…
Cannot retrieve contributors at this time
213 lines (159 sloc) 13.7 KB

Build Status

Qubes OS Official Website

Canonical URL:

This is the main repository for the Qubes OS Project website. Qubes is a security-oriented, open-source operating system for personal computers. It uses virtualization to implement security by compartmentalization and supports both Linux and Windows virtual environments.


Support us with a monthly donation and help us continue our activities. [Become a backer]


Is your organization using Qubes? Ask your manager to support us. Your organization's logo will show up on our Partners page. [Become a supporter]


This repository consists of a Jekyll site and several Git submodules for content:

  • qubes-doc (official documentation)
  • qubes-attachment (binary files such as images)
  • qubes-hcl (Hardware Compatibility List (HCL) reports generated by a YAML version of qubes-hcl-report)
  • qubes-posts (news and blog posts)


Docker Compose

  1. Install the Docker Engine and Docker Compose.

  2. Start the Docker daemon, e.g.:

     $ sudo systemctl start docker
  3. Clone this repo, including all submodules, and enter it:

     $ git clone --recursive
     $ cd
  4. Start and run the website:

     $ sudo make
  5. Open your browser and navigate to:

Jekyll on Fedora

  1. Install dependencies:

     $ sudo dnf install redhat-rpm-config ruby ruby-devel zlib-devel nodejs
  2. Clone this repo, including all submodules, and enter it:

     $ git clone --recursive
     $ cd
  3. Update RubyGems:

     $ sudo gem update --system
  4. Install required Gems:

     $ gem install jekyll bundler github-pages
  5. Serve the website:

     $ bundle exec jekyll serve
  6. Open your browser and navigate to:


  • To update the submodules, use git submodule foreach git pull --tags.

  • For troubleshooting with RubyGems, see:

  • For troubleshooting with Jekyll, see:

  • For troubleshooting with GitHub pages and Jekyll, see:

  • To run on a Git post-receive hook, use:

     if [ ! -d "$GIT_CLONE" ]; then
         git clone --recursive $GIT_REPO $GIT_CLONE
         git --work-tree=$GIT_CLONE --git-dir=$GIT_CLONE/.git pull
     cd $GIT_CLONE && jekyll build -s $GIT_CLONE -d $PUBLIC_WWW
     find $PUBLIC_WWW -type f -print0 | xargs -0 chmod 666
     find $PUBLIC_WWW -type d -print0 | xargs -0 chmod 777

Documentation Guidelines

Our Documentation Guidelines include:

  • How to Report Issues
  • How to Contribute
  • Contribution Suggestions
  • Style Guidelines
  • Markdown Conventions
  • Git Conventions

Please carefully read these guidelines before submitting a pull request.

Dependencies & Third Party Docs