Skip to content
ricochet

Quarto

This page covers what you need to deploy Quarto content to ricochet and how ricochet runs it.

Quarto content items need the same dependency files as the language they run on. See the page for that language for details:

LanguageRequired filesReference
Rrenv.lockR deployment
JuliaManifest.tomlJulia deployment
Python.python-version, uv.lockPython deployment
[content]
name = "My Quarto Site"
entrypoint = "_quarto.yml"
access_type = "external"
content_type = "quarto-r"
[language]
name = "r"
packages = "renv.lock"
[static]
index = "index.html"
output_dir = "_docs"

You can deploy Quarto content items as apps or tasks.

Content TypeLanguageDescription
quarto-r-shinyRA Quarto document using a Shiny runtime.
Content TypeLanguageDescription
quarto-rRA Quarto document rendered using an R runtime.
quarto-jlJuliaA Quarto document rendered using a Julia runtime.
quarto-pyPythonA Quarto document rendered using a Python runtime.

Quarto content items do not serve their rendered output by default. To serve the rendered HTML, add a [static] section to your _ricochet.toml:

[static]
index = "index.html"
output_dir = "_docs"

The site is then available at /static/{item-id}. See the Static Sites page for all settings.

Ricochet looks for the Quarto binary on the host in this order:

  1. PATH: if quarto is on the system PATH, ricochet uses it.
  2. /opt/quarto: the standard install location.
  3. /opt/quarto-{version}: a wider search under /opt/ for Quarto installs with a version in the name.

When the entrypoint is _quarto.yml, ricochet renders the parent directory instead of the file itself. This lets you deploy Quarto projects such as websites and books.

Ricochet runs:

Terminal window
quarto render <entrypoint>

Ricochet sets the QUARTO_R environment variable to the R binary it finds through R version discovery.

Ricochet runs:

Terminal window
quarto serve <entrypoint>

Ricochet sets the QUARTO_R environment variable to the R binary it finds through R version discovery.

Ricochet runs:

Terminal window
quarto render <entrypoint>

Ricochet sets the QUARTO_JULIA environment variable to the Julia binary it finds through Julia version discovery.

Ricochet runs:

Terminal window
quarto render <entrypoint>

Ricochet picks the Python version the same way as for other Python content. It uses .python-version and the environment that uv sync restores. See Python deployment for how ricochet finds Python and restores the environment.

Ricochet points Quarto at the restored virtual environment with these environment variables:

VariableValue
QUARTO_PYTHONPath to the virtual env Python binary (<bundle>/.venv/bin/python)
VIRTUAL_ENVPath to the virtual environment directory
UV_PYTHONPath to the matched system Python binary
PYTHONUNBUFFERED1

Ricochet also adds the virtual environment’s bin/ directory to the start of PATH.