Zum Hauptinhalt springe

⚙️ doQumentation Settings

Configure the Jupyter server used for executing Python code in tutorials.

Current Environment: Not detected

Server Backend

Choose which backend to use for code execution:


Execution Mode

Choose what happens when you click Run on tutorial pages. This applies to embedded code execution on this site only — opening a notebook in JupyterLab uses the standard Qiskit runtime.

Changes take effect on the next kernel session. If code is running, click Back then Run to apply.

IBM Quantum Account

Setup instructions & security notes
Security note: Credentials are stored in your browser's localStorage in plain text. They are not encrypted and can be read by browser extensions or anyone with access to this device. Use the expiry setting below to limit exposure, and delete credentials when you're done. For shared or public computers, prefer the manual save_account() method described below instead.

Enter your IBM Quantum credentials once here. They will be auto-injected via save_account() when the kernel starts, so you don't need to enter them in every notebook. This applies to embedded code execution on this site only — opening a notebook in JupyterLab requires calling save_account() manually.

  1. Register at quantum.cloud.ibm.com/registration — no credit card required for the first 30 days
  2. Sign in at Instances
  3. Instance — Create a free Open Plan instance at home page if you don't have one yet
  4. API Token — Click your profile icon (top right), then "API token". Copy the key.

For detailed steps, see IBM's Set up authentication guide (step 2).

Alternative: Run save_account() manually in a notebook cell

If you prefer not to store credentials in this browser, paste this into any code cell and run it. Credentials are saved in the Binder kernel's temporary storage and lost when the session ends.

from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
    token="YOUR_API_TOKEN",
    instance="YOUR_CRN",
    overwrite=True
)

Display Preferences

Code Font Size

14px
from qiskit import QuantumCircuit

Pre-computed Outputs

Each notebook page shows pre-computed outputs (images, tables, text) from IBM's original runs. When you click Run to execute code live, both the original outputs and your new live results are shown side by side. Enable this toggle to hide the original outputs during live execution, keeping only your results visible.

Python Warnings

By default, Python warnings (deprecation notices, runtime hints) are suppressed for cleaner notebook output. Disable this to see all warnings — useful for debugging or learning about API changes.


Manage Your Data

All data is stored locally in your browser (localStorage). Nothing is sent to our servers. Clearing your browser data or using a different browser/device starts fresh.

Learning Progress

Your reading and execution progress is tracked locally in your browser. Visited pages show a in the sidebar; executed notebooks show a .

No progress tracked yet. Visit tutorials and guides to start tracking.

Bookmarks

No bookmarks yet. Use the bookmark button on any page to save it here.

Display & UI

Sessions & Credentials

Reset Everything

Remove all saved data including progress, bookmarks, display preferences, and credentials.


Advanced Settings

IBM Cloud Code Engine

IBM Cloud Code Engine provides a fast, serverless Jupyter kernel powered by your own IBM Cloud account. Startup takes seconds instead of minutes. Free tier covers ~14 hours/month.

Setup Instructions
  1. Create an IBM Cloud account at cloud.ibm.com (free tier available)
  2. Go to the IBM Cloud Code Engine console and create a new project in your preferred region
  3. Create a new application with image ghcr.io/janlahmann/doqumentation-codeengine:latest, listening port 8080
    Sizing: 1 vCPU / 2 GB for single user, 8 vCPU / 16 GB for workshops (up to 80 users)
  4. Set environment variables: JUPYTER_TOKEN to a secure token (min 32 characters) and CORS_ORIGIN to your domain (e.g. https://doqumentation.org)

For workshop sizing details, see the workshop setup documentation.

Binder Packages

When running on GitHub Pages, code executes via MyBinder. The Binder environment includes core Qiskit packages pre-installed:

qiskit[visualization], qiskit-aer,
qiskit-ibm-runtime, pylatexenc,
qiskit-ibm-catalog, qiskit-addon-utils, pyscf

Some notebooks require additional packages. You can install them on demand by running this in a code cell:

!pip install -q <package>

Or install all optional packages at once:

!pip install -q scipy scikit-learn qiskit-ibm-transpiler \
  qiskit-experiments plotly sympy qiskit-serverless \
  qiskit-addon-sqd qiskit-addon-mpf \
  qiskit-addon-aqc-tensor[aer,quimb-jax] \
  qiskit-addon-obp qiskit-addon-cutting ffsim \
  gem-suite python-sat

Setup Help

RasQberry Setup

If you're running on a RasQberry Pi, the Jupyter server should be automatically detected. If not, ensure the jupyter-tutorials service is running:

sudo systemctl status jupyter-tutorials

Local Jupyter Setup

Start a Jupyter server with CORS enabled:

jupyter server --ServerApp.token='rasqberry' \
  --ServerApp.allow_origin='*' \
  --ServerApp.disable_check_xsrf=True

Docker Setup

The Docker container generates a random Jupyter token at startup. Code execution through the website (port 8080) works automatically — no token needed. The token is only required for direct JupyterLab access on port 8888.

To retrieve the token from container logs:

docker compose --profile jupyter logs | grep "Jupyter token"

To set a fixed token:

JUPYTER_TOKEN=mytoken docker compose --profile jupyter up

Remote Server

For remote servers, ensure CORS is configured to allow connections from this site. Add the following to your jupyter_server_config.py:

c.ServerApp.allow_origin = '*'
c.ServerApp.allow_credentials = True