These instructions will get you a copy of the Quarkus.io website up and running on your local machine for development and testing purposes.
-
Install Docker Desktop.
-
Fork the project repository, then clone your fork:
git clone [email protected]:YOUR_USER_NAME/quarkusio.github.io.git
-
Change into the project directory:
cd quarkusio.github.io
-
Run Docker Compose:
docker compose up
Note: The startup process may take several minutes, depending on your system. During this time, you might see logs with warnings or configuration messages (e.g., AutoPages and asciidoctor warnings). This is normal behavior as Jekyll builds the site. Once the server is running, you will see output like this:
jekyll-1 | Server address: http://0.0.0.0:4000/ jekyll-1 | Server running... press ctrl-c to stop.
If any error occurs mentioning a name conflict, try:
docker compose up --force-recreate
-
Now browse to http://localhost:4000.
Jekyll static site generator docs.
-
Install a full Ruby development environment. If you use
rvm
, run:rvm use 3.2.3
. -
gem install bundler
-
Fork the project repository, then clone your fork.
git clone [email protected]:YOUR_USER_NAME/quarkusio.github.io.git
-
Change into the project directory:
cd quarkusio.github.io
-
Use bundler to fetch all required gems in their respective versions
bundle install
-
Build the site and make it available on a local server
./serve.sh
Or if you want it faster and okay to not have guides included use the following:
./serve-noguides.sh
-
Now browse to http://localhost:4000
If you encounter any unexpected errors during the above, please refer to the troubleshooting page or the requirements page, as you might be missing development headers or other prerequisites.
For more regarding the use of Jekyll, please refer to the Jekyll Step by Step Tutorial.
The website deployment is automatically performed by GitHub Actions (when commits are pushed to the main
branch).
If for some reason you need to deploy from your local machine, follow these instructions:
- Install the act executable to run GitHub Actions locally
- Run
act -s GITHUB_TOKEN=<GITHUB_TOKEN>
, where <GITHUB_TOKEN> needs to be replaced with a token that allows you to push to the https://github.com/quarkusio/quarkusio.github.io repository.
NOTE: Using generative AI in assisting writing is fine, but please don't use it to write entire posts. Used badly, generative AI has a tendency to use complex words and phrasing. This makes the content hard to read and understand. Always review your blog with a human reader in mind, make sure it's factually correct and especially keep the human touch and opinions in the content.
To write a blog:
-
create an author entry in _data/authors.yaml
emailhash
you can get by runningecho -n [email protected] | md5sum
on Linux orecho -n [email protected] | md5
on macOS using an email you have registered from the Gravatar service,
-
create an blog entry under _posts
- the file name is
yyyy-mm-dd-slug.adoc
Set the date to the same value in the asciidoc preamble.
- the file name is
-
tags
should be used with some care as an archive page is created for of them. Below are some basic rules to try follow:quarkus-release
used for Quarkus release blogsannouncement
used for general announcement with some impact.extension
used for blogs related to a specific extension.user-story
used for stories from users/companies adopting Quarkus.development-tips
used for blogs with tips to develop using Quarkus or Quarkus itself.- add a tech specific, like
kafka
, if your post has a significant mention/relevance to that technology. - tags is space separated list
tags:extension grpc
- tags must be in lowercase
-
it's in asciidoc format, there is an example as shown with 2019-06-05-quarkus-and-web-ui-development-mode.adoc
- Be aware that the
date
attribute in the asciidoc preamble defines when the article will be published. Add a--future
flag when testing locally to ensure the article is included in the generated site.
- Be aware that the
-
send a pull request against the main branch and voilà
The primary site (quarkus.io) is written in English.
There are separate repositories for community driven localized versions of quarkus.io:
- ja.quarkus.io for Japanese
- cn.quarkus.io for Chinese (simplified)
- es.quarkus.io for Spanish
- pt.quarkus.io for Brazilian Portuguese
If you want to contribute to those efforts read the README in those projects. If you would like to start another translation, please open an issue in this main repo.
Once a localized site has enough of its content translated, DNS needs to be enabled. To do that get one of the Red Hat admins to submit a ticket to IT asking for XX domain:
We need a CNAME record set up for XX.quarkus.io to have it serve out GitHub pages.
The CNAME record for XX.quarkus.io should point to "quarkusio.github.io.".
See Step 5 on https://docs.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site for more information.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Important: the guides are maintained in the main Quarkus repository and pull requests should be submitted there: https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc.
This website is licensed under the Creative Commons Attribution 3.0.