Website profiles · Technology insights · Alternatives

bodywork.readthedocs.io

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
Bodywork Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
Unknown
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Bodywork?

Bodywork is a command-line tool for deploying machine learning pipelines to Kubernetes. It handles containers and orchestration for you, so you don't have to build and manage a container image for each pipeline stage. It is aimed at teams that want to run ML pipelines and deploy models on Kubernetes, and it positions itself as a lighter, simpler alternative to running Kubeflow or assembling a platform around a workflow orchestrator such as Apache Airflow, Argo Workflows or Dagster.

How it models a pipeline

Every stage in a Bodywork pipeline does one of two things:

  • A batch job — prepare features, train a model, compute batch predictions, and similar finite tasks.
  • A long-running service — for example, a Flask app that serves predictions over HTTP.

Combining jobs and services covers common cases such as serving a pre-trained model or running continuous training on a schedule.

What you actually write

Stages are ordinary executable Python modules or Jupyter notebooks committed to your project's Git repository. There is no new API to learn and no required codebase structure. Stages are then assembled into a DAG that defines the workflow, with key settings held in a single bodywork.yaml file. At runtime, each stage pulls the needed files from Git, installs the required dependencies, and runs the designated Python module.

Where the trade-off sits

The main convenience is skipping container builds and much of the surrounding DevOps work. The cost is that your stages run inside Bodywork's custom container image and follow its Git-plus-config conventions, so you have less control over the exact runtime environment than you would with hand-built images. If your team already has strong container and orchestration practices, that control may matter more than the saved effort; if you mainly want ML pipelines running on Kubernetes without becoming a platform team, this is the gap Bodywork targets.

A reasonable first step is to take one existing batch job — feature preparation is usually the simplest — express it as a Python module or notebook, and define it in a bodywork.yaml to see how the workflow fits your project before migrating anything larger.

How do I install Bodywork on my Kubernetes cluster?

Bodywork is installed as a command-line tool on your local machine, then connected to a Kubernetes cluster where it deploys your pipelines. The installation itself is a Python package install; the cluster is prepared separately by pointing Bodywork at an existing kubeconfig context.

Typical setup path

  1. Install the CLI locally — install the bodywork Python package with pip into a virtual environment on the machine you will deploy from (your laptop or a CI runner).
  2. Have a Kubernetes cluster and a working kubeconfig — Bodywork targets a cluster you already have, whether that is a managed service or a local cluster. Your kubectl context must be able to reach it.
  3. Configure Bodywork for that cluster — run the setup step that installs Bodywork's own components into the cluster's namespace, so it can create the jobs and services your pipeline needs.
  4. Deploy a project — point the CLI at a Git repository containing a bodywork.yaml and your stage code, and it builds the run from there.

The official documentation covers the exact commands under its Install and Setup Kubernetes sections at Bodywork.

What to check before you start

  • Cluster access and permissions: you need credentials that can create namespaces, jobs and deployments. If your team uses role-based access control, confirm your account has the required rights before installing.
  • A reachable Git remote: Bodywork stages pull project files from your Git repository at runtime, so the cluster must be able to clone it. Private repositories need credentials configured for the cluster, not just your laptop.
  • Python version and environment isolation: install the CLI in a virtual environment so it does not conflict with other tooling on your machine.

A concrete first run

For a first test, use a small public repository with a single batch job stage, deploy it to a development namespace, and watch the resulting Kubernetes job. That confirms the CLI, cluster access and Git pull all work before you add services or scheduled training.

If your team already runs Kubeflow, Airflow, Argo Workflows or Dagster, the decision is less about installation effort and more about whether you want a lighter tool that handles containers and orchestration for you, versus extending a platform you already operate.

What is the difference between a Bodywork job and a service in a pipeline?

In Bodywork, every pipeline stage is one of two types: a job or a service. The distinction is about runtime behaviour, not about what the code is written in.

  • A job runs a batch task to completion and then stops — for example preparing features, training a model, or computing batch predictions.
  • A service starts a long-running process that keeps running, such as a Flask app serving model predictions over HTTP.

Because both types are just executable Python modules or notebooks pulled from your Git repository, you can mix them freely in one DAG: a job can train a model, and a service can then expose it. The choice comes down to whether the stage has a natural end or must stay alive to answer requests.

How to decide

Question Job Service
Does the stage finish on its own? Yes No — it runs until stopped
Typical use Feature prep, training, batch scoring Model serving over HTTP
Resource pattern Short-lived, repeatable Persistent, always available

A practical example: a nightly pipeline uses a job to retrain and a service to serve the current model. If you are unsure, ask whether anything needs to connect to the stage after it starts — if yes, it is a service; if it just produces an output and exits, it is a job.

For the full set of stage configuration options, see the Bodywork documentation at Bodywork.

How do I configure a Bodywork pipeline with bodywork.yaml?

A Bodywork pipeline is defined in a single bodywork.yaml file at the root of your project's Git repository. In that file you declare the pipeline's workflow stages and their dependencies, and Bodywork turns that declaration into a DAG that runs on Kubernetes. Because Bodywork pulls your project files from Git and installs dependencies at stage start, the YAML is the main place where you describe what each stage does and how it should run, rather than writing container or orchestration code.

What typically goes in the file

  • Project/workflow metadata: the pipeline name, the Git repository details Bodywork should use, and the Python version or dependencies relevant to your stages.
  • Stages: each stage names its executable entry point — a Python module or Jupyter notebook committed to your repo — and the type of work it performs.
  • Stage type: a stage either runs a batch job (feature preparation, training, batch prediction) or starts a long-running service (for example, a Flask app serving predictions over HTTP).
  • Dependencies: the relationships between stages that define the DAG's order, so Bodywork knows which stages must finish before others begin.
  • Runtime settings: per-stage configuration such as resource requirements, environment variables, secrets, and any schedule for continuous training.

A practical example

A common shape is three stages: a batch job that prepares features, a batch job that trains a model and depends on the feature stage, and a service stage that serves the trained model and depends on training. The batch stages run and exit; the service stage stays up. That single file then expresses the whole pipeline, and Bodywork handles the containers and orchestration.

How to get the exact keys

The precise field names, nesting, and allowed values are version-specific, so use the official documentation for the schema and a working example:

  • Bodywork documentation — the user guide and key concepts cover bodywork.yaml structure and stage definitions.
  • Kubernetes — useful background for the cluster Bodywork deploys to, including namespaces, resources, and secrets.

A sensible next step is to copy the quickstart's bodywork.yaml and adapt it stage by stage, validating with the CLI before deploying. If a stage fails, check the entry-point path, the dependency ordering, and whether the required dependencies are declared — those are the most common configuration mistakes.

Can Bodywork replace Kubeflow or Airflow for my ML workflows?

Bodywork can replace them for a specific kind of team: one that wants ML batch jobs and model-serving processes running on Kubernetes without building a platform around a general-purpose orchestrator. It is not a drop-in substitute for Kubeflow or Airflow in every situation, because the scope is deliberately narrower.

What Bodywork actually gives you

According to its own overview, Bodywork is a command line tool that deploys ML pipelines to Kubernetes and handles containers and orchestration for you. Each pipeline stage is either a batch job (feature preparation, training, batch prediction) or a long-running process (for example, an HTTP model-serving app). Stages are assembled into DAGs described in a single bodywork.yaml. You write ordinary Python modules or notebooks, commit them to Git, and Bodywork's container image pulls the files, installs dependencies, and runs the stage — so you don't build or manage per-stage container images.

How it compares

Consideration Bodywork Kubeflow Airflow
Primary focus ML pipelines and model deployment on Kubernetes End-to-end ML platform on Kubernetes General workflow orchestration
Where code runs Kubernetes Kubernetes Anywhere, including VMs and Kubernetes
Learning curve Low: Python plus one YAML file High: many components and concepts Moderate to high: DAGs, operators, scheduling
Container management Handled by Bodywork You own much of it You own it
Best fit Small teams wanting simple ML DevOps Larger platform teams Data engineering and diverse workflows

When to choose which

Pick Bodywork if your workflows are recognisably ML-shaped (train, retrain, serve), your team already runs Kubernetes, and you would rather not operate a platform. Pick Kubeflow if you need a broad, multi-tenant ML platform with notebooks, experiment tracking and pipelines as first-class services. Pick Airflow if your pipelines reach well beyond ML into data engineering, or if you need to orchestrate systems outside Kubernetes.

A concrete test: if you can express your workflow as a handful of Python stages plus a serving process, and nobody on the team wants to maintain orchestration infrastructure, Bodywork is a reasonable fit. If you need complex scheduling, many non-ML tasks, or a shared platform for multiple teams, a general orchestrator will serve you better.

For related tooling, see Apache Airflow, Kubeflow and Argo Workflows.

How does Bodywork handle container images and dependencies for ML stages?

Bodywork avoids per-stage container builds. Instead of packaging each ML stage into its own image, it runs every stage inside one custom Bodywork container image. At the start of a stage, that container pulls the required files from your project's Git repository, installs the stage's Python dependencies with pip, and then runs the designated Python module or notebook.

That model has two practical consequences:

  • You manage code and dependencies, not Dockerfiles. A stage is defined by committing an executable Python module or Jupyter notebook to your Git repository. There are no new APIs to learn and no image build step to maintain for each stage.
  • Dependencies are resolved at stage runtime. Because pip-installing happens when the stage starts, dependency declarations need to be available in the repository and consistent with the environment the Bodywork image provides. This is convenient, but it also means stage startup includes installation time, and reproducibility depends on pinning versions carefully.

Jobs and services

Any pipeline stage does one of two things: run a batch job (feature preparation, training, batch prediction) or start a long-running process (such as a Flask app serving predictions over HTTP). Both run in the same Bodywork container image, so serving and batch work follow the same dependency mechanism. Stages are assembled into DAGs and configured in a single bodywork.yaml file, which is where workflow and stage settings live.

How to decide if this fits

If your team already uses Kubernetes and wants to run ML pipelines without building and maintaining an image per stage, Bodywork's approach removes a meaningful amount of DevOps work. If you need strict, pre-baked image reproducibility, per-stage isolation, or dependencies that cannot be installed at runtime, a platform built around custom images may suit you better.

A useful next step is to take one existing training script, commit it with a pinned requirements.txt, and define it as a single batch stage in bodywork.yaml. That small test shows you how installation time and dependency resolution behave in your environment before you commit to a full pipeline.

For teams comparing orchestration options, Bodywork positions itself as a lighter alternative to Kubeflow or to assembling a platform around a general workflow tool such as Apache Airflow, Argo Workflows or Dagster. The trade-off is that those tools give you more control over execution and packaging, while Bodywork gives you less to build and operate.

Related questions

More questions →
How does a Bodywork pipeline work?

A Bodywork pipeline is a directed acyclic graph (DAG) of stages, where every stage is either a Job or a Service. Jobs run batch work to completion — feature preparation, model training, batch prediction — while Services start long-running processes, such as a Flask app that serves predictions over HTTP. You define the stages and their dependencies in a single bodywork.yaml file, and Bodywork deploys the whole thing to Kubernetes.

The two stage types

Every stage in a pipeline does exactly one of two things:

Stage type What it does Typical use
Job Runs a batch task and finishes Prepare features, train a model, compute batch predictions
Service Starts a long-running process Serve model predictions via HTTP with a Flask app

Because you can chain these freely, the same building blocks cover a wide range of ML use cases — from serving a pre-trained model to running continuous training on a schedule.

How stages become a pipeline

Stages are assembled into a DAG that defines the workflow. The DAG and other key configuration live in one bodywork.yaml file, so the pipeline's structure is declared in a single place rather than spread across orchestration code.

A stage itself is just an executable Python module or Jupyter notebook that performs the required tasks, committed to your project's Git repository. There are no new APIs to learn, and you can structure your codebase however you like.

What Bodywork handles for you

Bodywork removes the need to build and manage container images for any stage. It runs all stages using Bodywork's own custom container image. Each stage starts by:

  1. Pulling the required files directly from your project's Git repository (for example, GitHub).
  2. pip-installing any required dependencies.
  3. Running the stage's designated Python module.

This is the mechanism behind the "no boilerplate" claim: you supply code and configuration, and Bodywork takes care of containers and orchestration.

Where it fits

Bodywork is aimed at teams that want to run ML pipelines and deploy models to Kubernetes. It positions itself as a lightweight, simpler alternative to Kubeflow, or to building your own platform around a workflow orchestrator like Apache Airflow, Argo Workflows, or Dagster.

If your goal is to run batch ML stages and long-running model services on Kubernetes without writing container or orchestration plumbing yourself, the Job + Service + DAG model is the core of how Bodywork works.

How is a Bodywork Pipeline Configured?

A Bodywork pipeline is configured with a single bodywork.yaml file. That file defines the stages of your pipeline and how they connect into a DAG (directed acyclic graph), while the actual work inside each stage lives in ordinary Python modules or Jupyter notebooks committed to your project's Git repository. There are no new APIs to learn and no boilerplate code to write.

The Configuration Model

Bodywork separates what runs from how it is wired together:

Concern Where it lives
Stage logic (feature prep, training, serving, etc.) Python modules or notebooks in your Git repo
Pipeline structure and key settings bodywork.yaml
Runtime environment Bodywork's custom container image

Because the stage code is just normal Python, you can structure your codebase however you like. The bodywork.yaml file is the only place where pipeline-level configuration is expressed.

Pipeline = Jobs + Services

Every stage in a Bodywork pipeline does one of two things:

  • Run a batch job — prepare features, train models, compute batch predictions, and similar finite tasks.
  • Start a long-running process — for example, a Flask app that serves model predictions over HTTP.

These two building blocks are enough to compose pipelines for common ML use cases, from serving a pre-trained model to running continuous training on a schedule. The stages are assembled into a DAG that defines the workflow, and that DAG is declared in bodywork.yaml.

What You Do Not Have to Configure

Bodywork handles containers and orchestration for you. In practice this means:

  • You do not build or manage container images for any stage.
  • All stages run using Bodywork's custom container image.
  • Each stage pulls the required files directly from your project's Git repository (for example, GitHub), pip-installs its dependencies, and then runs the stage's designated Python module.

So the configuration surface stays small: your code, your Git repo, and one YAML file describing the pipeline.

Who This Configuration Style Suits

Bodywork is aimed at teams that want to run ML pipelines and deploy models to Kubernetes. It is positioned as a lightweight, simpler alternative to Kubeflow, or to building your own platform around a workflow orchestrator such as Apache Airflow, Argo Workflows, or Dagster.

If your team already writes Python and keeps code in Git, the configuration overhead is close to zero — you add a bodywork.yaml and let Bodywork handle containers and orchestration. If you need fine-grained control over container images or a large existing orchestration platform, that trade-off is worth weighing against the simplicity described above.

Does Bodywork require boilerplate code or new APIs?

No. Bodywork does not require boilerplate code or new APIs. According to the Bodywork documentation, defining a pipeline stage is as simple as developing an executable Python module or Jupyter notebook that performs the required tasks, and then committing it to your project's Git repository. You are free to structure your codebase as you wish, and there are no new APIs to learn.

What you actually write

A stage in Bodywork is just ordinary code you would already write for the task:

  • An executable Python module, or
  • A Jupyter notebook

That code does the work of the stage — for example, preparing features, training a model, computing batch predictions, or starting a long-running process like a Flask app that serves predictions over HTTP.

How stages become a pipeline

Stages are assembled into DAGs that define your pipeline's workflow. This and other key configuration live in a single bodywork.yaml file. So the configuration surface is one file, not a framework you code against.

What Bodywork handles for you

Bodywork is a command line tool that deploys machine learning pipelines to Kubernetes and takes care of everything to do with containers and orchestration. Specifically, it removes the need to build and manage container images for any stage:

  • All stages run using Bodywork's custom container image.
  • Each stage starts by pulling the required files directly from your project's Git repository (for example, GitHub).
  • It then pip-installs any required dependencies.
  • Finally, it runs the stage's designated Python module or notebook.

Who this fits

This approach suits teams who want to run ML pipelines and deploy models to Kubernetes, and who prefer a lightweight, simpler alternative to Kubeflow or to building a platform around a workflow orchestrator such as Apache Airflow, Argo Workflows, or Dagster. If your team already writes Python and keeps code in Git, there is no new API layer to adopt — the main new artifact is the bodywork.yaml configuration file that ties stages together.

What is Bodywork?

Bodywork is a command-line tool that deploys machine learning pipelines to Kubernetes. It handles container builds and orchestration for you, so you define pipeline stages as ordinary Python modules or notebooks and let Bodywork run them. It fits teams that want to run ML pipelines and deploy models on Kubernetes without adopting a heavier platform or building their own orchestration stack.

Who it is for

Bodywork targets teams that want a solution for running ML pipelines and deploying models to Kubernetes. It positions itself as a lightweight and simpler alternative to Kubeflow, or to building your own platform around a workflow orchestration tool such as Apache Airflow, Argo Workflows, or Dagster.

If your team already runs Kubernetes and wants ML workloads on it without assembling a platform from scratch, Bodywork is aimed at that situation. If you need a broad ML platform with many integrated components, the alternatives above are the comparison points Bodywork itself names.

Pipeline = Jobs + Services

Any stage in a Bodywork pipeline does one of two things:

  • Run a batch job — prepare features, train models, compute batch predictions, and similar finite tasks.
  • Start a long-running process — for example, a Flask app that serves model predictions over HTTP.

Combining these two stage types covers many common ML use cases, from serving pre-trained models to running continuous training on a schedule.

How it works

No boilerplate code

Defining a stage means developing an executable Python module or Jupyter notebook that performs the required tasks, then committing it to your project's Git repository. You structure your codebase however you like, and there are no new APIs to learn.

Configuration in one file

Stages are assembled into DAGs that define your pipeline's workflow. This and other key configuration live in a single bodywork.yaml file.

DevOps handled for you

Bodywork removes the need to build and manage container images for any pipeline stage. It runs all stages using Bodywork's custom container image. Each stage starts by pulling the required files directly from your project's Git repository (for example, GitHub), pip-installing any required dependencies, and then running the stage's designated Python module.

What to check before adopting it

  • Kubernetes is a prerequisite. Bodywork deploys to Kubernetes, and the documentation includes a dedicated setup step for it. Confirm you have a cluster available.
  • Your code stays in Git. Stages pull files from your project's Git repository at runtime, so your pipeline code needs to live there.
  • Dependencies are installed at stage start. Because each stage pip-installs its dependencies when it runs, dependency setup is part of every stage execution rather than a prebuilt image.
  • Compare against your current stack. If you already run Airflow, Argo Workflows, or Dagster, the relevant question is whether Bodywork's simpler model covers your pipeline needs better than extending what you have.

The documentation's own entry points for going further are the Quickstart Tutorials (batch workloads, model deployment, continuous training, pipeline release) and the Key Concepts, User Guide, and CLI Reference sections.

How Bodywork Simplifies DevOps for Machine Learning

Bodywork is a command-line tool that deploys machine learning pipelines to Kubernetes, and it simplifies ML DevOps by removing container image management from the workflow entirely. Instead of building and maintaining a separate container image for every pipeline stage, Bodywork runs all stages using its own custom container image. Each stage pulls the required files directly from your project's Git repository, pip-installs dependencies, and then executes the stage's designated Python module. This approach suits teams that want to run ML pipelines and deploy models on Kubernetes without building a platform around a general-purpose orchestrator.

The Core Mechanism: One Image, Many Stages

The key design decision is that you never build a container image for your pipeline. Bodywork supplies a custom container image, and every stage runs inside it. At runtime, each stage:

  1. Pulls the required files from your project's Git repository (for example, GitHub).
  2. Pip-installs any dependencies the stage needs.
  3. Runs the stage's designated Python module.

Because the image is shared, the operational surface you manage shrinks to your Git repository and your bodywork.yaml configuration. There are no Dockerfiles per stage, no image registries to maintain for each pipeline component, and no image rebuild cycle tied to code changes.

What a Pipeline Is Made Of

Bodywork treats a pipeline as a combination of two stage types:

Stage type What it does Example use
Batch job Runs a task to completion Prepare features, train models, compute batch predictions
Long-running process Starts a persistent process Serve model predictions via HTTP with a Flask app

These two building blocks compose into common ML use cases, from serving pre-trained models to running continuous training on a schedule.

Configuration and Code Requirements

Stages are assembled into DAGs that define the pipeline's workflow. This and other key configuration live in a single bodywork.yaml file.

Defining a stage requires no new APIs. You develop an executable Python module or Jupyter notebook that performs the required tasks, then commit it to your project's Git repository. You can structure your codebase however you wish.

Where the DevOps Savings Come From

The reduction in operational burden comes from three places:

  • No per-stage container images. You skip building and managing images for each pipeline stage.
  • No orchestration plumbing. Bodywork handles containers and orchestration, so you don't build that layer yourself.
  • Configuration in one file. Pipeline structure and key settings are centralized in bodywork.yaml rather than spread across infrastructure code.

How It Compares to Alternatives

Bodywork positions itself as a lightweight, simpler alternative to Kubeflow, or to building your own platform around a workflow orchestration tool such as Apache Airflow, Argo Workflows, or Dagster. The relevant choice condition: if your team wants to run ML pipelines and deploy models on Kubernetes and would rather not manage container images or assemble an orchestration stack, Bodywork's shared-image, Git-driven model removes that work. If you need deep customization of the orchestration layer itself, a general-purpose orchestrator may fit better.

Getting Started

The documented path is: install Bodywork, set up Kubernetes, then work through the key concepts, user guide, CLI reference, and quickstart tutorials. Deployment templates and CI/CD for ML are also covered in the documentation.

Website Overview

Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms. An active inbound-mail setup with incomplete authentication may leave the domain more open to impersonation. Provider hosting alone does not close that gap.

Domain and Registration

Unknown

DNS and Email

MX records exist, but SPF, DKIM and DMARC were not detected. Protection against domain impersonation may be incomplete. Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Google Workspace email service. CAA records restrict which certificate authorities are authorized to issue certificates. No CNAME was found; the observed records resolve directly to addresses.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Permissions-Policy, clickjacking protection. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies mkdocs-1.3.0, mkdocs-material-8.2.11, Cloudflare without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage meta description was detected, leaving snippet selection more dependent on page text. The Generator tag identifies mkdocs-1.3.0, mkdocs-material-8.2.11, making the publishing system easier to fingerprint. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference. The title has 8 characters, within a common display range.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 2606:4700::6810:fd78

Registration details

RDAP / WHOIS

Unknown

DNS records

DNS

TypeNameValueTTLPriority
Abodywork.readthedocs.io104.16.253.120300—
Abodywork.readthedocs.io104.16.254.120300—
AAAAbodywork.readthedocs.io2606:4700::6810:fd78300—
AAAAbodywork.readthedocs.io2606:4700::6810:fe78300—
MXreadthedocs.ioaspmx.l.google.com3001
MXreadthedocs.ioalt1.aspmx.l.google.com3005
MXreadthedocs.ioalt2.aspmx.l.google.com3005
MXreadthedocs.ioaspmx2.googlemail.com30010
MXreadthedocs.ioaspmx3.googlemail.com30010
NSreadthedocs.ioivan.ns.cloudflare.com86400—
NSreadthedocs.iotegan.ns.cloudflare.com86400—
CAAreadthedocs.io0 issue " amazontrust.com"300—
CAAreadthedocs.io0 issue "comodoca.com"300—
CAAreadthedocs.io0 issue "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "letsencrypt.org"300—
CAAreadthedocs.io0 issue "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issue "ssl.com"300—
CAAreadthedocs.io0 issuewild "amazonaws.com"300—
CAAreadthedocs.io0 issuewild "comodoca.com"300—
CAAreadthedocs.io0 issuewild "digicert.com; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "letsencrypt.org"300—
CAAreadthedocs.io0 issuewild "pki.goog; cansignhttpexchanges=yes"300—
CAAreadthedocs.io0 issuewild "ssl.com"300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectreadthedocs.io
IssuerGoogle Trust Services
Valid until2026-12-23T14:03 · Remaining when checked: 71 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html
cache-controlmax-age=1800, stale-if-error=86400, public
servercloudflare
strict-transport-securitymax-age=31536000; includeSubDomains; preload
x-content-type-optionsnosniff
referrer-policyno-referrer-when-downgrade
access-control-allow-origin*

Identified technologies

mkdocs-1.3.0, mkdocs-material-8.2.11Cloudflare

Pages, Search and Sharing

Meta descriptionNot detected
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

All bots 0 allowed · 0 disallowed

User reviews (0)

  • No reviews yet.