βοΈ doQumentation Settings
Configure the Jupyter server used for executing Python code in tutorials.
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.
IBM Quantum Account
Setup instructions & security notes
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.
- Register at quantum.cloud.ibm.com/registration β no credit card required for the first 30 days
- Sign in at Instances
- Instance β Create a free Open Plan instance at home page if you don't have one yet
- 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
from qiskit import QuantumCircuitPre-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
- Create an IBM Cloud account at cloud.ibm.com (free tier available)
- Go to the IBM Cloud Code Engine console and create a new project in your preferred region
- 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) - Set environment variables:
JUPYTER_TOKENto a secure token (min 32 characters) andCORS_ORIGINto 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, pyscfSome 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-satSetup 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-tutorialsLocal Jupyter Setup
Start a Jupyter server with CORS enabled:
jupyter server --ServerApp.token='rasqberry' \
--ServerApp.allow_origin='*' \
--ServerApp.disable_check_xsrf=TrueDocker 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 upRemote 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