<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Kubernetes on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/kubernetes/</link>
        <description>Recent content in Kubernetes on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 31 Oct 2025 15:27:26 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/kubernetes/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>helm</title>
        <link>https://producthunt.programnotes.cn/en/p/helm/</link>
        <pubDate>Fri, 31 Oct 2025 15:27:26 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/helm/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1542758554-f3aab709b0da?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NjE4OTU2MzZ8&amp;ixlib=rb-4.1.0" alt="Featured image of post helm" /&gt;&lt;h1 id=&#34;helmhelm&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/helm/helm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;helm/helm&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;helm&#34;&gt;Helm
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/helm/helm/actions?workflow=release&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/helm/helm/workflows/release/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://goreportcard.com/report/helm.sh/helm/v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://goreportcard.com/badge/helm.sh/helm/v4&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Go Report Card&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/helm.sh/helm/v4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/static/v1?label=godoc&amp;amp;message=reference&amp;amp;color=blue&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GoDoc&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://bestpractices.coreinfrastructure.org/projects/3131&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://bestpractices.coreinfrastructure.org/projects/3131/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;CII Best Practices&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://scorecard.dev/viewer/?uri=github.com/helm/helm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://api.scorecard.dev/projects/github.com/helm/helm/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;OpenSSF Scorecard&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://insights.linuxfoundation.org/project/helm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://insights.production.lfx.dev/api/badge/health-score?project=helm&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;LFX Health Score&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Helm is a tool for managing Charts. Charts are packages of pre-configured Kubernetes resources.&lt;/p&gt;
&lt;p&gt;Use Helm to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find and use &lt;a class=&#34;link&#34; href=&#34;https://artifacthub.io/packages/search?kind=0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;popular software packaged as Helm Charts&lt;/a&gt; to run in Kubernetes&lt;/li&gt;
&lt;li&gt;Share your own applications as Helm Charts&lt;/li&gt;
&lt;li&gt;Create reproducible builds of your Kubernetes applications&lt;/li&gt;
&lt;li&gt;Intelligently manage your Kubernetes manifest files&lt;/li&gt;
&lt;li&gt;Manage releases of Helm packages&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;helm-in-a-handbasket&#34;&gt;Helm in a Handbasket
&lt;/h2&gt;&lt;p&gt;Helm is a tool that streamlines installing and managing Kubernetes applications.
Think of it like apt/yum/homebrew for Kubernetes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helm renders your templates and communicates with the Kubernetes API&lt;/li&gt;
&lt;li&gt;Helm runs on your laptop, CI/CD, or wherever you want it to run.&lt;/li&gt;
&lt;li&gt;Charts are Helm packages that contain at least two things:
&lt;ul&gt;
&lt;li&gt;A description of the package (&lt;code&gt;Chart.yaml&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;One or more templates, which contain Kubernetes manifest files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Charts can be stored on disk, or fetched from remote chart repositories
(like Debian or RedHat packages)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;helm-development-and-stable-versions&#34;&gt;Helm Development and Stable Versions
&lt;/h2&gt;&lt;p&gt;Helm v4 is currently under development on the &lt;code&gt;main&lt;/code&gt; branch. This is unstable and the APIs within the Go SDK and at the command line are changing.
Helm v3 (current stable) is maintained on the &lt;code&gt;dev-v3&lt;/code&gt; branch. APIs there follow semantic versioning.&lt;/p&gt;
&lt;h2 id=&#34;install&#34;&gt;Install
&lt;/h2&gt;&lt;p&gt;Binary downloads of the Helm client can be found on &lt;a class=&#34;link&#34; href=&#34;https://github.com/helm/helm/releases/latest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;the Releases page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unpack the &lt;code&gt;helm&lt;/code&gt; binary and add it to your PATH and you are good to go!&lt;/p&gt;
&lt;p&gt;If you want to use a package manager:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://brew.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Homebrew&lt;/a&gt; users can use &lt;code&gt;brew install helm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://chocolatey.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Chocolatey&lt;/a&gt; users can use &lt;code&gt;choco install kubernetes-helm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/package-manager/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Winget&lt;/a&gt; users can use &lt;code&gt;winget install Helm.Helm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://scoop.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Scoop&lt;/a&gt; users can use &lt;code&gt;scoop install helm&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://snapcraft.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Snapcraft&lt;/a&gt; users can use &lt;code&gt;snap install helm --classic&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://flox.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Flox&lt;/a&gt; users can use &lt;code&gt;flox install kubernetes-helm&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To rapidly get Helm up and running, start with the &lt;a class=&#34;link&#34; href=&#34;https://helm.sh/docs/intro/quickstart/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quick Start Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See the &lt;a class=&#34;link&#34; href=&#34;https://helm.sh/docs/intro/install/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;installation guide&lt;/a&gt; for more options,
including installing pre-releases.&lt;/p&gt;
&lt;h2 id=&#34;docs&#34;&gt;Docs
&lt;/h2&gt;&lt;p&gt;Get started with the &lt;a class=&#34;link&#34; href=&#34;https://helm.sh/docs/intro/quickstart/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quick Start guide&lt;/a&gt; or plunge into the &lt;a class=&#34;link&#34; href=&#34;https://helm.sh/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;complete documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;roadmap&#34;&gt;Roadmap
&lt;/h2&gt;&lt;p&gt;The &lt;a class=&#34;link&#34; href=&#34;https://github.com/helm/helm/milestones&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Helm roadmap uses GitHub milestones&lt;/a&gt; to track the progress of the project.&lt;/p&gt;
&lt;p&gt;The development of Helm v4 is currently happening on the &lt;code&gt;main&lt;/code&gt; branch while the development of Helm v3, the stable branch, is happening on the &lt;code&gt;dev-v3&lt;/code&gt; branch. Changes should be made to the &lt;code&gt;main&lt;/code&gt; branch prior to being added to the &lt;code&gt;dev-v3&lt;/code&gt; branch so that all changes are carried along to Helm v4.&lt;/p&gt;
&lt;h2 id=&#34;community-discussion-contribution-and-support&#34;&gt;Community, discussion, contribution, and support
&lt;/h2&gt;&lt;p&gt;You can reach the Helm community and developers via the following channels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.slack.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes Slack&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.slack.com/messages/helm-users&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#helm-users&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.slack.com/messages/helm-dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#helm-dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.slack.com/messages/charts&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#charts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Mailing List:
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://lists.cncf.io/g/cncf-helm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Helm Mailing List&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Developer Call: Thursdays at 9:30-10:00 Pacific (&lt;a class=&#34;link&#34; href=&#34;https://github.com/helm/community/blob/master/communication.md#meetings&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;meeting details&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;contribution&#34;&gt;Contribution
&lt;/h3&gt;&lt;p&gt;If you&amp;rsquo;re interested in contributing, please refer to the &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;Contributing Guide&lt;/a&gt; &lt;strong&gt;before submitting a pull request&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;code-of-conduct&#34;&gt;Code of conduct
&lt;/h3&gt;&lt;p&gt;Participation in the Helm community is governed by the &lt;a class=&#34;link&#34; href=&#34;code-of-conduct.md&#34; &gt;Code of Conduct&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>istio</title>
        <link>https://producthunt.programnotes.cn/en/p/istio/</link>
        <pubDate>Thu, 25 Sep 2025 15:28:48 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/istio/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1590083948592-a5a1f0310d0e?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTg3ODUyNzd8&amp;ixlib=rb-4.1.0" alt="Featured image of post istio" /&gt;&lt;h1 id=&#34;istioistio&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/istio&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;istio&#34;&gt;Istio
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://bestpractices.coreinfrastructure.org/projects/1395&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://bestpractices.coreinfrastructure.org/projects/1395/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;CII Best Practices&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://goreportcard.com/report/github.com/istio/istio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://goreportcard.com/badge/github.com/istio/istio&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Go Report Card&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://godoc.org/istio.io/istio&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://godoc.org/istio.io/istio?status.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GoDoc&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href=&#34;https://istio.io/&#34;&gt;
    &lt;picture&gt;
      &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/istio/icon/color/istio-icon-color.svg&#34;&gt;
      &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://github.com/istio/istio/raw/master/logo/istio-bluelogo-whitebackground-unframed.svg&#34;&gt;
      &lt;img title=&#34;Istio&#34; height=&#34;100&#34; width=&#34;100&#34; alt=&#34;Istio logo&#34; src=&#34;https://github.com/istio/istio/raw/master/logo/istio-bluelogo-whitebackground-unframed.svg&#34;&gt;
    &lt;/picture&gt;
&lt;/a&gt;
&lt;hr&gt;
&lt;p&gt;Istio is an open source service mesh that layers transparently onto existing distributed applications. Istio’s powerful features provide a uniform and more efficient way to secure, connect, and monitor services. Istio is the path to load balancing, service-to-service authentication, and monitoring – with few or no service code changes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For in-depth information about how to use Istio, visit &lt;a class=&#34;link&#34; href=&#34;https://istio.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;To ask questions and get assistance from our community, visit &lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio/discussions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Github Discussions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;To learn how to participate in our overall community, visit &lt;a class=&#34;link&#34; href=&#34;https://istio.io/about/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;our community page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this README:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#introduction&#34; &gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#repositories&#34; &gt;Repositories&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#issue-management&#34; &gt;Issue management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, here are some other documents you may wish to read:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/community#istio-community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Istio Community&lt;/a&gt; - describes how to get involved and contribute to the Istio project&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio/wiki/Preparing-for-Development&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Istio Developer&amp;rsquo;s Guide&lt;/a&gt; - explains how to set up and use an Istio development environment&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio/wiki/Development-Conventions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Project Conventions&lt;/a&gt; - describes the conventions we use within the code base&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio/wiki/Writing-Fast-and-Lean-Code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Creating Fast and Lean Code&lt;/a&gt; - performance-oriented advice and guidelines for the code base&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You&amp;rsquo;ll find many other useful documents on our &lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/istio/wiki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/concepts/what-is-istio/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Istio&lt;/a&gt; is an open platform for providing a uniform way to &lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/examples/microservices-istio/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;integrate
microservices&lt;/a&gt;, manage &lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/concepts/traffic-management/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;traffic flow&lt;/a&gt; across microservices, enforce policies
and aggregate telemetry data. Istio&amp;rsquo;s control plane provides an abstraction
layer over the underlying cluster management platform, such as Kubernetes.&lt;/p&gt;
&lt;p&gt;Istio is composed of these components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Envoy&lt;/strong&gt; - Sidecar proxies per microservice to handle ingress/egress traffic
between services in the cluster and from a service to external
services. The proxies form a &lt;em&gt;secure microservice mesh&lt;/em&gt; providing a rich
set of functions like discovery, rich layer-7 routing, circuit breakers,
policy enforcement and telemetry recording/reporting
functions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: The service mesh is not an overlay network. It
simplifies and enhances how microservices in an application talk to each
other over the network provided by the underlying platform.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Istiod&lt;/strong&gt; - The Istio control plane. It provides service discovery, configuration and certificate management. It consists of the following sub-components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pilot&lt;/strong&gt; - Responsible for configuring the proxies at runtime.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Citadel&lt;/strong&gt; - Responsible for certificate issuance and rotation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Galley&lt;/strong&gt; - Responsible for validating, ingesting, aggregating, transforming and distributing config within Istio.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Operator&lt;/strong&gt; - The component provides user friendly options to operate the Istio service mesh.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;repositories&#34;&gt;Repositories
&lt;/h2&gt;&lt;p&gt;The Istio project is divided across a few GitHub repositories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/api&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/api&lt;/a&gt;. This repository defines
component-level APIs and common configuration formats for the Istio platform.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/community&lt;/a&gt;. This repository contains
information on the Istio community, including the various documents that govern
the Istio open source project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;README.md&#34; &gt;istio/istio&lt;/a&gt;. This is the main code repository. It hosts Istio&amp;rsquo;s
core components, install artifacts, and sample programs. It includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;istioctl/&#34; &gt;istioctl&lt;/a&gt;. This directory contains code for the
&lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/reference/commands/istioctl/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;em&gt;istioctl&lt;/em&gt;&lt;/a&gt; command line utility.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;pilot/&#34; &gt;pilot&lt;/a&gt;. This directory
contains platform-specific code to populate the
&lt;a class=&#34;link&#34; href=&#34;https://istio.io/docs/concepts/traffic-management/#pilot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;abstract service model&lt;/a&gt;, dynamically reconfigure the proxies
when the application topology changes, as well as translate
&lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/reference/config/networking/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;routing rules&lt;/a&gt; into proxy specific configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;security/&#34; &gt;security&lt;/a&gt;. This directory contains &lt;a class=&#34;link&#34; href=&#34;https://istio.io/latest/docs/concepts/security/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;security&lt;/a&gt; related code,
including Citadel (acting as Certificate Authority), citadel agent, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/proxy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/proxy&lt;/a&gt;. The Istio proxy contains
extensions to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/envoyproxy/envoy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Envoy proxy&lt;/a&gt; (in the form of
Envoy filters) that support authentication, authorization, and telemetry collection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/ztunnel&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/ztunnel&lt;/a&gt;. The repository contains the Rust implementation of the ztunnel
component of Ambient mesh.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/istio/client-go&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;istio/client-go&lt;/a&gt;. This repository defines
auto-generated Kubernetes clients for interacting with Istio resources programmatically.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
Only the &lt;code&gt;istio/api&lt;/code&gt; and &lt;code&gt;istio/client-go&lt;/code&gt; repositories expose stable interfaces intended for direct usage as libraries.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;issue-management&#34;&gt;Issue management
&lt;/h2&gt;&lt;p&gt;We use GitHub to track all of our bugs and feature requests. Each issue we track has a variety of metadata:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Epic&lt;/strong&gt;. An epic represents a feature area for Istio as a whole. Epics are fairly broad in scope and are basically product-level things.
Each issue is ultimately part of an epic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Milestone&lt;/strong&gt;. Each issue is assigned a milestone. This is 0.1, 0.2, &amp;hellip;, or &amp;lsquo;Nebulous Future&amp;rsquo;. The milestone indicates when we
think the issue should get addressed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Priority&lt;/strong&gt;. Each issue has a priority which is represented by the column in the &lt;a class=&#34;link&#34; href=&#34;https://github.com/orgs/istio/projects/6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Prioritization&lt;/a&gt; project. Priority can be one of
P0, P1, P2, or &amp;gt;P2. The priority indicates how important it is to address the issue within the milestone. P0 says that the
milestone cannot be considered achieved if the issue isn&amp;rsquo;t resolved.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;div align=&#34;center&#34;&gt;
    &lt;picture&gt;
      &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/other/cncf/horizontal/color-whitetext/cncf-color-whitetext.svg&#34;&gt;
      &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://raw.githubusercontent.com/cncf/artwork/master/other/cncf/horizontal/color/cncf-color.svg&#34;&gt;
      &lt;img width=&#34;300&#34; alt=&#34;Cloud Native Computing Foundation logo&#34; src=&#34;https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/other/cncf/horizontal/color-whitetext/cncf-color-whitetext.svg&#34;&gt;
    &lt;/picture&gt;
    &lt;p&gt;Istio is a &lt;a href=&#34;https://cncf.io&#34;&gt;Cloud Native Computing Foundation&lt;/a&gt; project.&lt;/p&gt;
&lt;/div&gt;
</description>
        </item>
        <item>
        <title>loki</title>
        <link>https://producthunt.programnotes.cn/en/p/loki/</link>
        <pubDate>Sun, 21 Sep 2025 15:24:27 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/loki/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1675021278785-adc2f7d92173?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTg0MzkzOTB8&amp;ixlib=rb-4.1.0" alt="Featured image of post loki" /&gt;&lt;h1 id=&#34;grafanaloki&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/loki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;grafana/loki&lt;/a&gt;
&lt;/h1&gt;&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;docs/sources/logo_and_name.png&#34; alt=&#34;Loki Logo&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/grafana/loki/actions/workflows/check.yml&#34;&gt;&lt;img src=&#34;https://github.com/grafana/loki/actions/workflows/check.yml/badge.svg&#34; alt=&#34;Check&#34; /&gt;&lt;/a&gt;
&lt;a href=&#34;https://goreportcard.com/report/github.com/grafana/loki&#34;&gt;&lt;img src=&#34;https://goreportcard.com/badge/github.com/grafana/loki&#34; alt=&#34;Go Report Card&#34; /&gt;&lt;/a&gt;
&lt;a href=&#34;https://slack.grafana.com/&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/join%20slack-%23loki-brightgreen.svg&#34; alt=&#34;Slack&#34; /&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&amp;amp;can=1&amp;amp;q=proj:loki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://oss-fuzz-build-logs.storage.googleapis.com/badges/loki.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Fuzzing Status&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;loki-like-prometheus-but-for-logs&#34;&gt;Loki: like Prometheus, but for logs.
&lt;/h1&gt;&lt;p&gt;Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by &lt;a class=&#34;link&#34; href=&#34;https://prometheus.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Prometheus&lt;/a&gt;.
It is designed to be very cost effective and easy to operate.
It does not index the contents of the logs, but rather a set of labels for each log stream.&lt;/p&gt;
&lt;p&gt;Compared to other log aggregation systems, Loki:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;does not do full text indexing on logs. By storing compressed, unstructured logs and only indexing metadata, Loki is simpler to operate and cheaper to run.&lt;/li&gt;
&lt;li&gt;indexes and groups log streams using the same labels you’re already using with Prometheus, enabling you to seamlessly switch between metrics and logs using the same labels that you’re already using with Prometheus.&lt;/li&gt;
&lt;li&gt;is an especially good fit for storing &lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes&lt;/a&gt; Pod logs. Metadata such as Pod labels is automatically scraped and indexed.&lt;/li&gt;
&lt;li&gt;has native support in Grafana (needs Grafana v6.0).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A Loki-based logging stack consists of 3 components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/alloy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alloy&lt;/a&gt; is agent, responsible for gathering logs and sending them to Loki.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/loki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Loki&lt;/a&gt; is the main service, responsible for storing logs and processing queries.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/grafana&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana&lt;/a&gt; for querying and displaying the logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note that Alloy replaced Promtail in the stack, because Promtail is considered to be feature complete, and future development for logs collection will be in &lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/alloy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana Alloy&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Loki is like Prometheus, but for logs: we prefer a multidimensional label-based approach to indexing, and want a single-binary, easy to operate system with no dependencies.
Loki differs from Prometheus by focusing on logs instead of metrics, and delivering logs via push, instead of pull.&lt;/p&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting started
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/installation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Installing Loki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/send-data/alloy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Installing Alloy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/get-started/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;upgrading&#34;&gt;Upgrading
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/upgrading/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Upgrading Loki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;documentation&#34;&gt;Documentation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Latest release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/next/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Upcoming release&lt;/a&gt;, at the tip of the main branch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Commonly used sections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/api/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;API documentation&lt;/a&gt; for getting logs into Loki.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/getting-started/labels/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Labels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/operations/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Operations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/clients/promtail/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Promtail&lt;/a&gt; is an agent which tails log files and pushes them to Loki.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/clients/promtail/pipelines/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pipelines&lt;/a&gt; details the log processing pipeline.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/clients/docker-driver/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Docker Driver Client&lt;/a&gt; is a Docker plugin to send logs directly to Loki from Docker containers.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/query/logcli/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LogCLI&lt;/a&gt; provides a command-line interface for querying logs.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/operations/loki-canary/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Loki Canary&lt;/a&gt; monitors your Loki installation for missing logs.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/operations/troubleshooting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Troubleshooting&lt;/a&gt; presents help dealing with error messages.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/docs/loki/latest/operations/grafana/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Loki in Grafana&lt;/a&gt; describes how to set up a Loki datasource in Grafana.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;getting-help&#34;&gt;Getting Help
&lt;/h2&gt;&lt;p&gt;If you have any questions or feedback regarding Loki:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Search existing thread in the Grafana Labs community forum for Loki: &lt;a class=&#34;link&#34; href=&#34;https://community.grafana.com/c/grafana-loki/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://community.grafana.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ask a question on the Loki Slack channel. To invite yourself to the Grafana Slack, visit &lt;a class=&#34;link&#34; href=&#34;https://slack.grafana.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://slack.grafana.com/&lt;/a&gt; and join the #loki channel.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/loki/issues/new&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;File an issue&lt;/a&gt; for bugs, issues and feature suggestions.&lt;/li&gt;
&lt;li&gt;Send an email to &lt;a class=&#34;link&#34; href=&#34;mailto:lokiproject@googlegroups.com&#34; &gt;lokiproject@googlegroups.com&lt;/a&gt;, or use the &lt;a class=&#34;link&#34; href=&#34;https://groups.google.com/forum/#!forum/lokiproject&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;web interface&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;UI issues should be filed directly in &lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/grafana/issues/new&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your feedback is always welcome.&lt;/p&gt;
&lt;h2 id=&#34;further-reading&#34;&gt;Further Reading
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;The original &lt;a class=&#34;link&#34; href=&#34;https://docs.google.com/document/d/11tjK_lvp1-SVsFZjgOTr1vV3-q6vBAsZYIQ5ZeYBkyM/view&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;design doc&lt;/a&gt; for Loki is a good source for discussion of the motivation and design decisions.&lt;/li&gt;
&lt;li&gt;Callum Styan&amp;rsquo;s March 2019 DevOpsDays Vancouver talk &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/blog/2019/05/06/how-loki-correlates-metrics-and-logs--and-saves-you-money/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana Loki: Log Aggregation for Incident Investigations&lt;/a&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Grafana Labs blog post &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/blog/2019/04/15/how-we-designed-loki-to-work-easily-both-as-microservices-and-as-monoliths/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;How We Designed Loki to Work Easily Both as Microservices and as Monoliths&lt;/a&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Tom Wilkie&amp;rsquo;s early-2019 CNCF Paris/FOSDEM talk &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://fosdem.org/2019/schedule/event/loki_prometheus_for_logs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Grafana Loki: like Prometheus, but for logs&lt;/a&gt;&amp;rdquo; (&lt;a class=&#34;link&#34; href=&#34;https://speakerdeck.com/grafana/grafana-loki-like-prometheus-but-for-logs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;slides&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://mirror.as35701.net/video.fosdem.org/2019/UB2.252A/loki_prometheus_for_logs.mp4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;video&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;David Kaltschmidt&amp;rsquo;s KubeCon 2018 talk &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://kccna18.sched.com/event/GrXC/on-the-oss-path-to-full-observability-with-grafana-david-kaltschmidt-grafana-labs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;On the OSS Path to Full Observability with Grafana&lt;/a&gt;&amp;rdquo; (&lt;a class=&#34;link&#34; href=&#34;https://speakerdeck.com/davkal/on-the-path-to-full-observability-with-oss-and-launch-of-loki&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;slides&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/watch?v=U7C5SpRtK74&amp;amp;list=PLj6h78yzYM2PZf9eA7bhWnIh_mK1vyOfU&amp;amp;index=346&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;video&lt;/a&gt;) on how Loki fits into a cloud-native environment.&lt;/li&gt;
&lt;li&gt;Goutham Veeramachaneni&amp;rsquo;s blog post &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/blog/2018/12/12/loki-prometheus-inspired-open-source-logging-for-cloud-natives/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Loki: Prometheus-inspired, open source logging for cloud natives&lt;/a&gt;&amp;rdquo; on details of the Loki architecture.&lt;/li&gt;
&lt;li&gt;David Kaltschmidt&amp;rsquo;s blog post &amp;ldquo;&lt;a class=&#34;link&#34; href=&#34;https://grafana.com/blog/2019/01/02/closer-look-at-grafanas-user-interface-for-loki/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Closer look at Grafana&amp;rsquo;s user interface for Loki&lt;/a&gt;&amp;rdquo; on the ideas that went into the logging user interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;Refer to &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;building-from-source&#34;&gt;Building from source
&lt;/h3&gt;&lt;p&gt;Loki can be run in a single host, no-dependencies mode using the following commands.&lt;/p&gt;
&lt;p&gt;You need an up-to-date version of &lt;a class=&#34;link&#34; href=&#34;https://go.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Go&lt;/a&gt;, we recommend using the version found in our &lt;a class=&#34;link&#34; href=&#34;https://github.com/grafana/loki/blob/main/Makefile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Makefile&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Checkout source code&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git clone https://github.com/grafana/loki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; loki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Build binary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go build ./cmd/loki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Run executable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./loki -config.file&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;./cmd/loki/loki-local-config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Alternatively, on Unix systems you can use &lt;code&gt;make&lt;/code&gt; to build the binary, which adds additional arguments to the &lt;code&gt;go build&lt;/code&gt; command.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Build binary&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make loki
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Run executable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./cmd/loki/loki -config.file&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;./cmd/loki/loki-local-config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To build Promtail on non-Linux platforms, use the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go build ./clients/cmd/promtail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;On Linux, Promtail requires the systemd headers to be installed if
Journal support is enabled.
To enable Journal support the go build tag flag &lt;code&gt;promtail_journal_enabled&lt;/code&gt; should be passed&lt;/p&gt;
&lt;p&gt;With Journal support on Ubuntu, run with the following commands:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install -y libsystemd-dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go build --tags&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;promtail_journal_enabled ./clients/cmd/promtail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;With Journal support on CentOS, run with the following commands:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo yum install -y systemd-devel
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go build --tags&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;promtail_journal_enabled ./clients/cmd/promtail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Otherwise, to build Promtail without Journal support, run &lt;code&gt;go build&lt;/code&gt;
with CGO disabled:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nv&#34;&gt;CGO_ENABLED&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; go build ./clients/cmd/promtail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;adopters&#34;&gt;Adopters
&lt;/h2&gt;&lt;p&gt;Please see &lt;a class=&#34;link&#34; href=&#34;ADOPTERS.md&#34; &gt;ADOPTERS.md&lt;/a&gt; for some of the organizations using Loki today.
If you would like to add your organization to the list, please open a PR to add it to the list.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;Grafana Loki is distributed under &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;AGPL-3.0-only&lt;/a&gt;. For Apache-2.0 exceptions, see &lt;a class=&#34;link&#34; href=&#34;LICENSING.md&#34; &gt;LICENSING.md&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>airflow</title>
        <link>https://producthunt.programnotes.cn/en/p/airflow/</link>
        <pubDate>Sun, 07 Sep 2025 15:25:12 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/airflow/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1659720212900-702e1765621d?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTcyMjk4MjZ8&amp;ixlib=rb-4.1.0" alt="Featured image of post airflow" /&gt;&lt;h1 id=&#34;apacheairflow&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;apache/airflow&lt;/a&gt;
&lt;/h1&gt;&lt;!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 &#34;License&#34;); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 &#34;AS IS&#34; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
--&gt;
&lt;!-- START Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h1 id=&#34;apache-airflow&#34;&gt;Apache Airflow
&lt;/h1&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Badges&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;License&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/licenses/LICENSE-2.0.txt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/:license-Apache%202-blue.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;License&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PyPI&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://badge.fury.io/py/apache-airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://badge.fury.io/py/apache-airflow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PyPI version&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/apache-airflow/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/pypi/pyversions/apache-airflow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PyPI - Python Version&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/apache-airflow/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/pypi/dm/apache-airflow&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PyPI - Downloads&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Containers&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/apache/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/docker/pulls/apache/airflow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Docker Pulls&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/apache/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/docker/stars/apache/airflow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Docker Stars&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://artifacthub.io/packages/search?repo=apache-airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/apache-airflow&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Artifact HUB&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Community&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/graphs/contributors&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/contributors/apache/airflow&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Contributors&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://s.apache.org/airflow-slack&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;amp;style=social&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Slack Status&#34;
	
	
&gt;&lt;/a&gt; &lt;img src=&#34;https://img.shields.io/github/commit-activity/m/apache/airflow&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Commit Activity&#34;
	
	
&gt; &lt;a class=&#34;link&#34; href=&#34;https://ossrank.com/p/6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://shields.io/endpoint?url=https://ossrank.com/shield/6&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;OSSRank&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version&lt;/th&gt;
          &lt;th&gt;Build Status&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Main&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub Build main&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub Build main&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3.x&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg?branch=v3-0-test&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub Build 3.0&#34;
	
	
&gt;&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg?branch=v3-0-test&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub Build 3.0&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2.x&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/apache/airflow/actions/workflows/ci.yml/badge.svg?branch=v2-11-test&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub Build 2.11&#34;
	
	
&gt;&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;picture width=&#34;500&#34;&gt;
  &lt;img
    src=&#34;https://github.com/apache/airflow/blob/19ebcac2395ef9a6b6ded3a2faa29dc960c1e635/docs/apache-airflow/img/logos/wordmark_1.png?raw=true&#34;
    alt=&#34;Apache Airflow logo&#34;
  /&gt;
&lt;/picture&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache Airflow&lt;/a&gt; (or simply Airflow) is a platform to programmatically author, schedule, and monitor workflows.&lt;/p&gt;
&lt;p&gt;When workflows are defined as code, they become more maintainable, versionable, testable, and collaborative.&lt;/p&gt;
&lt;p&gt;Use Airflow to author workflows (Dags) that orchestrate tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed.&lt;/p&gt;
&lt;!-- END Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;!-- START doctoc generated TOC please keep comment here to allow auto update --&gt;
&lt;!-- DON&#39;T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --&gt;
&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#project-focus&#34; &gt;Project Focus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#principles&#34; &gt;Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#requirements&#34; &gt;Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#getting-started&#34; &gt;Getting started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#installing-from-pypi&#34; &gt;Installing from PyPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#installation&#34; &gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#official-source-code&#34; &gt;Official source code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#convenience-packages&#34; &gt;Convenience packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#user-interface&#34; &gt;User Interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#semantic-versioning&#34; &gt;Semantic versioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#version-life-cycle&#34; &gt;Version Life Cycle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#support-for-python-and-kubernetes-versions&#34; &gt;Support for Python and Kubernetes versions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#base-os-support-for-reference-airflow-images&#34; &gt;Base OS support for reference Airflow images&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#approach-to-dependencies-of-airflow&#34; &gt;Approach to dependencies of Airflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#contributing&#34; &gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#voting-policy&#34; &gt;Voting Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#who-uses-apache-airflow&#34; &gt;Who uses Apache Airflow?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#who-maintains-apache-airflow&#34; &gt;Who maintains Apache Airflow?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#what-goes-into-the-next-release&#34; &gt;What goes into the next release?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#can-i-use-the-apache-airflow-logo-in-my-presentation&#34; &gt;Can I use the Apache Airflow logo in my presentation?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#links&#34; &gt;Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#sponsors&#34; &gt;Sponsors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- END doctoc generated TOC please keep comment here to allow auto update --&gt;
&lt;h2 id=&#34;project-focus&#34;&gt;Project Focus
&lt;/h2&gt;&lt;p&gt;Airflow works best with workflows that are mostly static and slowly changing. When the DAG structure is similar from one run to the next, it clarifies the unit of work and continuity. Other similar projects include &lt;a class=&#34;link&#34; href=&#34;https://github.com/spotify/luigi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Luigi&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://oozie.apache.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Oozie&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://azkaban.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Azkaban&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Airflow is commonly used to process data, but has the opinion that tasks should ideally be idempotent (i.e., results of the task will be the same, and will not create duplicated data in a destination system), and should not pass large quantities of data from one task to the next (though tasks can pass metadata using Airflow&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/concepts/xcoms.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;XCom feature&lt;/a&gt;). For high-volume, data-intensive tasks, a best practice is to delegate to external services specializing in that type of work.&lt;/p&gt;
&lt;p&gt;Airflow is not a streaming solution, but it is often used to process real-time data, pulling data off streams in batches.&lt;/p&gt;
&lt;h2 id=&#34;principles&#34;&gt;Principles
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dynamic&lt;/strong&gt;: Pipelines are defined in code, enabling dynamic dag generation and parameterization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extensible&lt;/strong&gt;: The Airflow framework includes a wide range of built-in operators and can be extended to fit your needs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible&lt;/strong&gt;: Airflow leverages the &lt;a class=&#34;link&#34; href=&#34;https://jinja.palletsprojects.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Jinja&lt;/strong&gt;&lt;/a&gt; templating engine, allowing rich customizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- START Requirements, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;requirements&#34;&gt;Requirements
&lt;/h2&gt;&lt;p&gt;Apache Airflow is tested with:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;Main version (dev)&lt;/th&gt;
          &lt;th&gt;Stable version (3.0.6)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Python&lt;/td&gt;
          &lt;td&gt;3.10, 3.11, 3.12, 3.13&lt;/td&gt;
          &lt;td&gt;3.9, 3.10, 3.11, 3.12&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Platform&lt;/td&gt;
          &lt;td&gt;AMD64/ARM64(*)&lt;/td&gt;
          &lt;td&gt;AMD64/ARM64(*)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Kubernetes&lt;/td&gt;
          &lt;td&gt;1.30, 1.31, 1.32, 1.33&lt;/td&gt;
          &lt;td&gt;1.30, 1.31, 1.32, 1.33&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;PostgreSQL&lt;/td&gt;
          &lt;td&gt;13, 14, 15, 16, 17&lt;/td&gt;
          &lt;td&gt;13, 14, 15, 16, 17&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MySQL&lt;/td&gt;
          &lt;td&gt;8.0, 8.4, Innovation&lt;/td&gt;
          &lt;td&gt;8.0, 8.4, Innovation&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SQLite&lt;/td&gt;
          &lt;td&gt;3.15.0+&lt;/td&gt;
          &lt;td&gt;3.15.0+&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* Experimental&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: MariaDB is not tested/recommended.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: SQLite is used in Airflow tests. Do not use it in production. We recommend
using the latest stable version of SQLite for local development.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Airflow currently can be run on POSIX-compliant Operating Systems. For development, it is regularly
tested on fairly modern Linux Distros and recent versions of macOS.
On Windows you can run it via WSL2 (Windows Subsystem for Linux 2) or via Linux Containers.
The work to add Windows support is tracked via &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/issues/10388&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#10388&lt;/a&gt;, but
it is not a high priority. You should only use Linux-based distros as &amp;ldquo;Production&amp;rdquo; execution environment
as this is the only environment that is supported. The only distro that is used in our CI tests and that
is used in the &lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/p/apache/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Community managed DockerHub image&lt;/a&gt; is
&lt;code&gt;Debian Bookworm&lt;/code&gt;.&lt;/p&gt;
&lt;!-- END Requirements, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;!-- START Getting started, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting started
&lt;/h2&gt;&lt;p&gt;Visit the official Airflow website documentation (latest &lt;strong&gt;stable&lt;/strong&gt; release) for help with
&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/installation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;installing Airflow&lt;/a&gt;,
&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/start.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;getting started&lt;/a&gt;, or walking
through a more complete &lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/tutorial/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: If you&amp;rsquo;re looking for documentation for the main branch (latest development branch): you can find it on &lt;a class=&#34;link&#34; href=&#34;https://s.apache.org/airflow-docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;s.apache.org/airflow-docs&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For more information on Airflow Improvement Proposals (AIPs), visit
the &lt;a class=&#34;link&#34; href=&#34;https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow&amp;#43;Improvement&amp;#43;Proposals&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Airflow Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Documentation for dependent projects like provider distributions, Docker image, Helm Chart, you&amp;rsquo;ll find it in &lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;the documentation index&lt;/a&gt;.&lt;/p&gt;
&lt;!-- END Getting started, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;!-- START Installing from PyPI, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;installing-from-pypi&#34;&gt;Installing from PyPI
&lt;/h2&gt;&lt;p&gt;We publish Apache Airflow as &lt;code&gt;apache-airflow&lt;/code&gt; package in PyPI. Installing it however might be sometimes tricky
because Airflow is a bit of both a library and application. Libraries usually keep their dependencies open, and
applications usually pin them, but we should do neither and both simultaneously. We decided to keep
our dependencies as open as possible (in &lt;code&gt;pyproject.toml&lt;/code&gt;) so users can install different versions of libraries
if needed. This means that &lt;code&gt;pip install apache-airflow&lt;/code&gt; will not work from time to time or will
produce unusable Airflow installation.&lt;/p&gt;
&lt;p&gt;To have repeatable installation, however, we keep a set of &amp;ldquo;known-to-be-working&amp;rdquo; constraint
files in the orphan &lt;code&gt;constraints-main&lt;/code&gt; and &lt;code&gt;constraints-2-0&lt;/code&gt; branches. We keep those &amp;ldquo;known-to-be-working&amp;rdquo;
constraints files separately per major/minor Python version.
You can use them as constraint files when installing Airflow from PyPI. Note that you have to specify
correct Airflow tag/version/branch and Python versions in the URL.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installing just Airflow:&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: Only &lt;code&gt;pip&lt;/code&gt; installation is currently officially supported.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While it is possible to install Airflow with tools like &lt;a class=&#34;link&#34; href=&#34;https://python-poetry.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Poetry&lt;/a&gt; or
&lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/pip-tools&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;pip-tools&lt;/a&gt;, they do not share the same workflow as
&lt;code&gt;pip&lt;/code&gt; - especially when it comes to constraint vs. requirements management.
Installing via &lt;code&gt;Poetry&lt;/code&gt; or &lt;code&gt;pip-tools&lt;/code&gt; is not currently supported.&lt;/p&gt;
&lt;p&gt;There are known issues with &lt;code&gt;bazel&lt;/code&gt; that might lead to circular dependencies when using it to install
Airflow. Please switch to &lt;code&gt;pip&lt;/code&gt; if you encounter such problems. &lt;code&gt;Bazel&lt;/code&gt; community works on fixing
the problem in &lt;code&gt;this PR &amp;lt;https://github.com/bazelbuild/rules_python/pull/1166&amp;gt;&lt;/code&gt;_ so it might be that
newer versions of &lt;code&gt;bazel&lt;/code&gt; will handle it.&lt;/p&gt;
&lt;p&gt;If you wish to install Airflow using those tools, you should use the constraint files and convert
them to the appropriate format and workflow that your tool requires.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;apache-airflow==3.0.6&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; --constraint &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://raw.githubusercontent.com/apache/airflow/constraints-3.0.6/constraints-3.10.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Installing with extras (i.e., postgres, google)&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s1&#34;&gt;&amp;#39;apache-airflow[postgres,google]==3.0.6&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; --constraint &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://raw.githubusercontent.com/apache/airflow/constraints-3.0.6/constraints-3.10.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For information on installing provider distributions, check
&lt;a class=&#34;link&#34; href=&#34;http://airflow.apache.org/docs/apache-airflow-providers/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;providers&lt;/a&gt;.&lt;/p&gt;
&lt;!-- END Installing from PyPI, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;For comprehensive instructions on setting up your local development environment and installing Apache Airflow, please refer to the &lt;a class=&#34;link&#34; href=&#34;INSTALLING.md&#34; &gt;INSTALLING.md&lt;/a&gt; file.&lt;/p&gt;
&lt;!-- START Official source code, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;official-source-code&#34;&gt;Official source code
&lt;/h2&gt;&lt;p&gt;Apache Airflow is an &lt;a class=&#34;link&#34; href=&#34;https://www.apache.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Apache Software Foundation&lt;/a&gt; (ASF) project,
and our official source code releases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow the &lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/legal/release-policy.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ASF Release Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Can be downloaded from &lt;a class=&#34;link&#34; href=&#34;https://downloads.apache.org/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;the ASF Distribution Directory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Are cryptographically signed by the release manager&lt;/li&gt;
&lt;li&gt;Are officially voted on by the PMC members during the
&lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/legal/release-policy.html#release-approval&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Release Approval Process&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Following the ASF rules, the source packages released must be sufficient for a user to build and test the
release provided they have access to the appropriate platform and tools.&lt;/p&gt;
&lt;!-- END Official source code, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;convenience-packages&#34;&gt;Convenience packages
&lt;/h2&gt;&lt;p&gt;There are other ways of installing and using Airflow. Those are &amp;ldquo;convenience&amp;rdquo; methods - they are
not &amp;ldquo;official releases&amp;rdquo; as stated by the &lt;code&gt;ASF Release Policy&lt;/code&gt;, but they can be used by the users
who do not want to build the software themselves.&lt;/p&gt;
&lt;p&gt;Those are - in the order of most common ways people install Airflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/apache-airflow/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PyPI releases&lt;/a&gt; to install Airflow using standard &lt;code&gt;pip&lt;/code&gt; tool&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/apache/airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Docker Images&lt;/a&gt; to install airflow via
&lt;code&gt;docker&lt;/code&gt; tool, use them in Kubernetes, Helm Charts, &lt;code&gt;docker-compose&lt;/code&gt;, &lt;code&gt;docker swarm&lt;/code&gt;, etc. You can
read more about using, customizing, and extending the images in the
&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/docker-stack/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Latest docs&lt;/a&gt;, and
learn details on the internals in the &lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/docker-stack/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;images&lt;/a&gt; document.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/tags&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tags in GitHub&lt;/a&gt; to retrieve the git project sources that
were used to generate official source packages via git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All those artifacts are not official releases, but they are prepared using officially released sources.
Some of those artifacts are &amp;ldquo;development&amp;rdquo; or &amp;ldquo;pre-release&amp;rdquo; ones, and they are clearly marked as such
following the ASF Policy.&lt;/p&gt;
&lt;h2 id=&#34;user-interface&#34;&gt;User Interface
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DAGs&lt;/strong&gt;: Overview of all DAGs in your environment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/dags.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;DAGs&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Assets&lt;/strong&gt;: Overview of Assets with dependencies.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/assets_graph.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Asset Dependencies&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Grid&lt;/strong&gt;: Grid representation of a DAG that spans across time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/grid.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Grid&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Graph&lt;/strong&gt;: Visualization of a DAG&amp;rsquo;s dependencies and their current status for a specific run.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/graph.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Graph&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Home&lt;/strong&gt;: Summary statistics of your Airflow environment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/home.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Home&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Backfill&lt;/strong&gt;: Backfilling a DAG for a specific date range.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/backfill.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Backfill&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;: Quick way to view source code of a DAG.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/apache/airflow/main/airflow-core/docs/img/ui-dark/code.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Code&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;semantic-versioning&#34;&gt;Semantic versioning
&lt;/h2&gt;&lt;p&gt;As of Airflow 2.0.0, we support a strict &lt;a class=&#34;link&#34; href=&#34;https://semver.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SemVer&lt;/a&gt; approach for all packages released.&lt;/p&gt;
&lt;p&gt;There are few specific rules that we agreed to that define details of versioning of the different
packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Airflow&lt;/strong&gt;: SemVer rules apply to core airflow only (excludes any changes to providers).
Changing limits for versions of Airflow dependencies is not a breaking change on its own.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Airflow Providers&lt;/strong&gt;: SemVer rules apply to changes in the particular provider&amp;rsquo;s code only.
SemVer MAJOR and MINOR versions for the packages are independent of the Airflow version.
For example, &lt;code&gt;google 4.1.0&lt;/code&gt; and &lt;code&gt;amazon 3.0.6&lt;/code&gt; providers can happily be installed
with &lt;code&gt;Airflow 2.1.2&lt;/code&gt;. If there are limits of cross-dependencies between providers and Airflow packages,
they are present in providers as &lt;code&gt;install_requires&lt;/code&gt; limitations. We aim to keep backwards
compatibility of providers with all previously released Airflow 2 versions but
there will sometimes be breaking changes that might make some, or all
providers, have minimum Airflow version specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Airflow Helm Chart&lt;/strong&gt;: SemVer rules apply to changes in the chart only. SemVer MAJOR and MINOR
versions for the chart are independent of the Airflow version. We aim to keep backwards
compatibility of the Helm Chart with all released Airflow 2 versions, but some new features might
only work starting from specific Airflow releases. We might however limit the Helm
Chart to depend on minimal Airflow version.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Airflow API clients&lt;/strong&gt;: Their versioning is independent from Airflow versions. They follow their own
SemVer rules for breaking changes and new features - which for example allows to change the way we generate
the clients.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;version-life-cycle&#34;&gt;Version Life Cycle
&lt;/h2&gt;&lt;p&gt;Apache Airflow version life cycle:&lt;/p&gt;
&lt;!-- This table is automatically updated by prek scripts/ci/prek/supported_versions.py --&gt;
&lt;!-- Beginning of auto-generated table --&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Version&lt;/th&gt;
          &lt;th&gt;Current Patch/Minor&lt;/th&gt;
          &lt;th&gt;State&lt;/th&gt;
          &lt;th&gt;First Release&lt;/th&gt;
          &lt;th&gt;Limited Maintenance&lt;/th&gt;
          &lt;th&gt;EOL/Terminated&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;3.0.6&lt;/td&gt;
          &lt;td&gt;Supported&lt;/td&gt;
          &lt;td&gt;Apr 22, 2025&lt;/td&gt;
          &lt;td&gt;TBD&lt;/td&gt;
          &lt;td&gt;TBD&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;2.11.0&lt;/td&gt;
          &lt;td&gt;Supported&lt;/td&gt;
          &lt;td&gt;Dec 17, 2020&lt;/td&gt;
          &lt;td&gt;Oct 22, 2025&lt;/td&gt;
          &lt;td&gt;Apr 22, 2026&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1.10&lt;/td&gt;
          &lt;td&gt;1.10.15&lt;/td&gt;
          &lt;td&gt;EOL&lt;/td&gt;
          &lt;td&gt;Aug 27, 2018&lt;/td&gt;
          &lt;td&gt;Dec 17, 2020&lt;/td&gt;
          &lt;td&gt;June 17, 2021&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1.9&lt;/td&gt;
          &lt;td&gt;1.9.0&lt;/td&gt;
          &lt;td&gt;EOL&lt;/td&gt;
          &lt;td&gt;Jan 03, 2018&lt;/td&gt;
          &lt;td&gt;Aug 27, 2018&lt;/td&gt;
          &lt;td&gt;Aug 27, 2018&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1.8&lt;/td&gt;
          &lt;td&gt;1.8.2&lt;/td&gt;
          &lt;td&gt;EOL&lt;/td&gt;
          &lt;td&gt;Mar 19, 2017&lt;/td&gt;
          &lt;td&gt;Jan 03, 2018&lt;/td&gt;
          &lt;td&gt;Jan 03, 2018&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;1.7&lt;/td&gt;
          &lt;td&gt;1.7.1.2&lt;/td&gt;
          &lt;td&gt;EOL&lt;/td&gt;
          &lt;td&gt;Mar 28, 2016&lt;/td&gt;
          &lt;td&gt;Mar 19, 2017&lt;/td&gt;
          &lt;td&gt;Mar 19, 2017&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- End of auto-generated table --&gt;
&lt;p&gt;Limited support versions will be supported with security and critical bug fix only.
EOL versions will not get any fixes nor support.
We always recommend that all users run the latest available minor release for whatever major version is in use.
We &lt;strong&gt;highly&lt;/strong&gt; recommend upgrading to the latest Airflow major release at the earliest convenient time and before the EOL date.&lt;/p&gt;
&lt;h2 id=&#34;support-for-python-and-kubernetes-versions&#34;&gt;Support for Python and Kubernetes versions
&lt;/h2&gt;&lt;p&gt;As of Airflow 2.0, we agreed to certain rules we follow for Python and Kubernetes support.
They are based on the official release schedule of Python and Kubernetes, nicely summarized in the
&lt;a class=&#34;link&#34; href=&#34;https://devguide.python.org/#status-of-python-branches&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Python Developer&amp;rsquo;s Guide&lt;/a&gt; and
&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/docs/setup/release/version-skew-policy/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes version skew policy&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;We drop support for Python and Kubernetes versions when they reach EOL. Except for Kubernetes, a
version stays supported by Airflow if two major cloud providers still provide support for it. We drop
support for those EOL versions in main right after EOL date, and it is effectively removed when we release
the first new MINOR (Or MAJOR if there is no new MINOR version) of Airflow. For example, for Python 3.10 it
means that we will drop support in main right after 27.06.2023, and the first MAJOR or MINOR version of
Airflow released after will not have it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We support a new version of Python/Kubernetes in main after they are officially released, as soon as we
make them work in our CI pipeline (which might not be immediate due to dependencies catching up with
new versions of Python mostly) we release new images/support in Airflow based on the working CI setup.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This policy is best-effort which means there may be situations where we might terminate support earlier
if circumstances require it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;base-os-support-for-reference-airflow-images&#34;&gt;Base OS support for reference Airflow images
&lt;/h2&gt;&lt;p&gt;The Airflow Community provides conveniently packaged container images that are published whenever
we publish an Apache Airflow release. Those images contain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base OS with necessary packages to install Airflow (stable Debian OS)&lt;/li&gt;
&lt;li&gt;Base Python installation in versions supported at the time of release for the MINOR version of
Airflow released (so there could be different versions for 2.3 and 2.2 line for example)&lt;/li&gt;
&lt;li&gt;Libraries required to connect to supported Databases (again the set of databases supported depends
on the MINOR version of Airflow)&lt;/li&gt;
&lt;li&gt;Predefined set of popular providers (for details see the &lt;a class=&#34;link&#34; href=&#34;https://raw.githubusercontent.com/apache/airflow/main/Dockerfile&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Dockerfile&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Possibility of building your own, custom image where the user can choose their own set of providers
and libraries (see &lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/docker-stack/build.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Building the image&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;In the future Airflow might also support a &amp;ldquo;slim&amp;rdquo; version without providers nor database clients installed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The version of the base OS image is the stable version of Debian. Airflow supports using all currently active
stable versions - as soon as all Airflow dependencies support building, and we set up the CI pipeline for
building and testing the OS version. Approximately 6 months before the end-of-regular support of a
previous stable version of the OS, Airflow switches the images released to use the latest supported
version of the OS.&lt;/p&gt;
&lt;p&gt;For example switch from &lt;code&gt;Debian Bullseye&lt;/code&gt; to &lt;code&gt;Debian Bookworm&lt;/code&gt; has been implemented
before 2.8.0 release in October 2023 and &lt;code&gt;Debian Bookworm&lt;/code&gt; will be the only option supported as of
Airflow 2.10.0.&lt;/p&gt;
&lt;p&gt;Users will continue to be able to build their images using stable Debian releases until the end of regular
support and building and verifying of the images happens in our CI but no unit tests were executed using
this image in the &lt;code&gt;main&lt;/code&gt; branch.&lt;/p&gt;
&lt;h2 id=&#34;approach-to-dependencies-of-airflow&#34;&gt;Approach to dependencies of Airflow
&lt;/h2&gt;&lt;p&gt;Airflow has a lot of dependencies - direct and transitive, also Airflow is both - library and application,
therefore our policies to dependencies has to include both - stability of installation of application,
but also ability to install newer version of dependencies for those users who develop DAGs. We developed
the approach where &lt;code&gt;constraints&lt;/code&gt; are used to make sure airflow can be installed in a repeatable way, while
we do not limit our users to upgrade most of the dependencies. As a result we decided not to upper-bound
version of Airflow dependencies by default, unless we have good reasons to believe upper-bounding them is
needed because of importance of the dependency as well as risk it involves to upgrade specific dependency.
We also upper-bound the dependencies that we know cause problems.&lt;/p&gt;
&lt;p&gt;The constraint mechanism of ours takes care about finding and upgrading all the non-upper bound dependencies
automatically (providing that all the tests pass). Our &lt;code&gt;main&lt;/code&gt; build failures will indicate in case there
are versions of dependencies that break our tests - indicating that we should either upper-bind them or
that we should fix our code/tests to account for the upstream changes from those dependencies.&lt;/p&gt;
&lt;p&gt;Whenever we upper-bound such a dependency, we should always comment why we are doing it - i.e. we should have
a good reason why dependency is upper-bound. And we should also mention what is the condition to remove the
binding.&lt;/p&gt;
&lt;h3 id=&#34;approach-for-dependencies-for-airflow-core&#34;&gt;Approach for dependencies for Airflow Core
&lt;/h3&gt;&lt;p&gt;Those dependencies are maintained in &lt;code&gt;pyproject.toml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There are few dependencies that we decided are important enough to upper-bound them by default, as they are
known to follow predictable versioning scheme, and we know that new versions of those are very likely to
bring breaking changes. We commit to regularly review and attempt to upgrade to the newer versions of
the dependencies as they are released, but this is manual process.&lt;/p&gt;
&lt;p&gt;The important dependencies are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SQLAlchemy&lt;/code&gt;: upper-bound to specific MINOR version (SQLAlchemy is known to remove deprecations and
introduce breaking changes especially that support for different Databases varies and changes at
various speed)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alembic&lt;/code&gt;: it is important to handle our migrations in predictable and performant way. It is developed
together with SQLAlchemy. Our experience with Alembic is that it very stable in MINOR version&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Flask&lt;/code&gt;: We are using Flask as the back-bone of our web UI and API. We know major version of Flask
are very likely to introduce breaking changes across those so limiting it to MAJOR version makes sense&lt;/li&gt;
&lt;li&gt;&lt;code&gt;werkzeug&lt;/code&gt;: the library is known to cause problems in new versions. It is tightly coupled with Flask
libraries, and we should update them together&lt;/li&gt;
&lt;li&gt;&lt;code&gt;celery&lt;/code&gt;: Celery is a crucial component of Airflow as it used for CeleryExecutor (and similar). Celery
&lt;a class=&#34;link&#34; href=&#34;https://docs.celeryq.dev/en/stable/contributing.html?highlight=semver#versions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;follows SemVer&lt;/a&gt;, so
we should upper-bound it to the next MAJOR version. Also, when we bump the upper version of the library,
we should make sure Celery Provider minimum Airflow version is updated.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kubernetes&lt;/code&gt;: Kubernetes is a crucial component of Airflow as it is used for the KubernetesExecutor
(and similar). Kubernetes Python library &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-client/python#compatibility&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;follows SemVer&lt;/a&gt;,
so we should upper-bound it to the next MAJOR version. Also, when we bump the upper version of the library,
we should make sure Kubernetes Provider minimum Airflow version is updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;approach-for-dependencies-in-airflow-providers-and-extras&#34;&gt;Approach for dependencies in Airflow Providers and extras
&lt;/h3&gt;&lt;p&gt;The main part of the Airflow is the Airflow Core, but the power of Airflow also comes from a number of
providers that extend the core functionality and are released separately, even if we keep them (for now)
in the same monorepo for convenience. You can read more about the providers in the
&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow-providers/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Providers documentation&lt;/a&gt;. We also
have set of policies implemented for maintaining and releasing community-managed providers as well
as the approach for community vs. 3rd party providers in the &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/PROVIDERS.rst&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;providers&lt;/a&gt; document.&lt;/p&gt;
&lt;p&gt;Those &lt;code&gt;extras&lt;/code&gt; and &lt;code&gt;providers&lt;/code&gt; dependencies are maintained in &lt;code&gt;provider.yaml&lt;/code&gt; of each provider.&lt;/p&gt;
&lt;p&gt;By default, we should not upper-bound dependencies for providers, however each provider&amp;rsquo;s maintainer
might decide to add additional limits (and justify them with comment).&lt;/p&gt;
&lt;!-- START Contributing, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;Want to help build Apache Airflow? Check out our &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/contributing-docs/README.rst&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;contributors&amp;rsquo; guide&lt;/a&gt; for a comprehensive overview of how to contribute, including setup instructions, coding standards, and pull request guidelines.&lt;/p&gt;
&lt;p&gt;If you can&amp;rsquo;t wait to contribute, and want to get started asap, check out the &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/contributing-docs/03_contributors_quick_start.rst&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;contribution quickstart&lt;/a&gt; here!&lt;/p&gt;
&lt;p&gt;Official Docker (container) images for Apache Airflow are described in &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/dev/breeze/doc/ci/02_images.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;images&lt;/a&gt;.&lt;/p&gt;
&lt;!-- END Contributing, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;!-- START Who uses Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;voting-policy&#34;&gt;Voting Policy
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Commits need a +1 vote from a committer who is not the author&lt;/li&gt;
&lt;li&gt;When we do AIP voting, both PMC member&amp;rsquo;s and committer&amp;rsquo;s &lt;code&gt;+1s&lt;/code&gt; are considered a binding vote.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;who-uses-apache-airflow&#34;&gt;Who uses Apache Airflow?
&lt;/h2&gt;&lt;p&gt;We know about around 500 organizations that are using Apache Airflow (but there are likely many more)
&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/INTHEWILD.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;in the wild&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you use Airflow - feel free to make a PR to add your organisation to the list.&lt;/p&gt;
&lt;!-- END Who uses Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;!-- START Who maintains Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;who-maintains-apache-airflow&#34;&gt;Who maintains Apache Airflow?
&lt;/h2&gt;&lt;p&gt;Airflow is the work of the &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/graphs/contributors&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;community&lt;/a&gt;,
but the &lt;a class=&#34;link&#34; href=&#34;https://people.apache.org/committers-by-project.html#airflow&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;core committers/maintainers&lt;/a&gt;
are responsible for reviewing and merging PRs as well as steering conversations around new feature requests.
If you would like to become a maintainer, please review the Apache Airflow
&lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/blob/main/COMMITTERS.rst#guidelines-to-become-an-airflow-committer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;committer requirements&lt;/a&gt;.&lt;/p&gt;
&lt;!-- END Who maintains Apache Airflow, please keep comment here to allow auto update of PyPI readme.md --&gt;
&lt;h2 id=&#34;what-goes-into-the-next-release&#34;&gt;What goes into the next release?
&lt;/h2&gt;&lt;p&gt;Often you will see an issue that is assigned to specific milestone with Airflow version, or a PR that gets merged
to the main branch and you might wonder which release the merged PR(s) will be released in or which release the fixed
issues will be in. The answer to this is as usual - it depends on various scenarios. The answer is different for PRs and Issues.&lt;/p&gt;
&lt;p&gt;To add a bit of context, we are following the &lt;a class=&#34;link&#34; href=&#34;https://semver.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Semver&lt;/a&gt; versioning scheme as described in
&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/release-process.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Airflow release process&lt;/a&gt;. More
details are explained in detail in this README under the &lt;a class=&#34;link&#34; href=&#34;#semantic-versioning&#34; &gt;Semantic versioning&lt;/a&gt; chapter, but
in short, we have &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; versions of Airflow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MAJOR&lt;/code&gt; version is incremented in case of breaking changes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MINOR&lt;/code&gt; version is incremented when there are new features added&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PATCH&lt;/code&gt; version is incremented when there are only bug-fixes and doc-only changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Generally we release &lt;code&gt;MINOR&lt;/code&gt; versions of Airflow from a branch that is named after the MINOR version. For example
&lt;code&gt;2.7.*&lt;/code&gt; releases are released from &lt;code&gt;v2-7-stable&lt;/code&gt; branch, &lt;code&gt;2.8.*&lt;/code&gt; releases are released from &lt;code&gt;v2-8-stable&lt;/code&gt;
branch, etc.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Most of the time in our release cycle, when the branch for next &lt;code&gt;MINOR&lt;/code&gt; branch is not yet created, all
PRs merged to &lt;code&gt;main&lt;/code&gt; (unless they get reverted), will find their way to the next &lt;code&gt;MINOR&lt;/code&gt; release. For example
if the last release is &lt;code&gt;2.7.3&lt;/code&gt; and &lt;code&gt;v2-8-stable&lt;/code&gt; branch is not created yet, the next &lt;code&gt;MINOR&lt;/code&gt; release
is &lt;code&gt;2.8.0&lt;/code&gt; and all PRs merged to main will be released in &lt;code&gt;2.8.0&lt;/code&gt;. However, some PRs (bug-fixes and
doc-only changes) when merged, can be cherry-picked to current &lt;code&gt;MINOR&lt;/code&gt; branch and released in the
next &lt;code&gt;PATCHLEVEL&lt;/code&gt; release. For example, if &lt;code&gt;2.8.1&lt;/code&gt; is already released and we are working on &lt;code&gt;2.9.0dev&lt;/code&gt;,  then
marking a PR with &lt;code&gt;2.8.2&lt;/code&gt; milestone means that it will be cherry-picked to &lt;code&gt;v2-8-test&lt;/code&gt; branch and
released in &lt;code&gt;2.8.2rc1&lt;/code&gt;, and eventually in &lt;code&gt;2.8.2&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When we prepare for the next &lt;code&gt;MINOR&lt;/code&gt; release, we cut new &lt;code&gt;v2-*-test&lt;/code&gt; and &lt;code&gt;v2-*-stable&lt;/code&gt; branch
and prepare &lt;code&gt;alpha&lt;/code&gt;, &lt;code&gt;beta&lt;/code&gt; releases for the next &lt;code&gt;MINOR&lt;/code&gt; version, the PRs merged to main will still be
released in the next &lt;code&gt;MINOR&lt;/code&gt; release until &lt;code&gt;rc&lt;/code&gt; version is cut. This is happening because the &lt;code&gt;v2-*-test&lt;/code&gt;
and &lt;code&gt;v2-*-stable&lt;/code&gt; branches are rebased on top of main when next &lt;code&gt;beta&lt;/code&gt; and &lt;code&gt;rc&lt;/code&gt; releases are prepared.
For example, when we cut &lt;code&gt;2.10.0beta1&lt;/code&gt; version, anything merged to main before &lt;code&gt;2.10.0rc1&lt;/code&gt; is released,
will find its way to 2.10.0rc1.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Then, once we prepare the first RC candidate for the MINOR release, we stop moving the &lt;code&gt;v2-*-test&lt;/code&gt; and
&lt;code&gt;v2-*-stable&lt;/code&gt; branches and the PRs merged to main will be released in the next &lt;code&gt;MINOR&lt;/code&gt; release.
However, some PRs (bug-fixes and doc-only changes) when merged, can be cherry-picked to current &lt;code&gt;MINOR&lt;/code&gt;
branch and released in the next &lt;code&gt;PATCHLEVEL&lt;/code&gt; release - for example when the last released version from &lt;code&gt;v2-10-stable&lt;/code&gt;
branch is &lt;code&gt;2.10.0rc1&lt;/code&gt;, some of the PRs from main can be marked as &lt;code&gt;2.10.0&lt;/code&gt; milestone by committers,
the release manager will try to cherry-pick them into the release branch.
If successful, they will be released in &lt;code&gt;2.10.0rc2&lt;/code&gt; and subsequently in &lt;code&gt;2.10.0&lt;/code&gt;. This also applies to
subsequent &lt;code&gt;PATCHLEVEL&lt;/code&gt; versions. When for example &lt;code&gt;2.10.1&lt;/code&gt; is already released, marking a PR with
&lt;code&gt;2.10.2&lt;/code&gt; milestone will mean that it will be cherry-picked to &lt;code&gt;v2-10-stable&lt;/code&gt; branch and released in &lt;code&gt;2.10.2rc1&lt;/code&gt;
and eventually in &lt;code&gt;2.10.2&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The final decision about cherry-picking is made by the release manager.&lt;/p&gt;
&lt;p&gt;Marking issues with a milestone is a bit different. Maintainers do not mark issues with a milestone usually,
normally they are only marked in PRs. If PR linked to the issue (and &amp;ldquo;fixing it&amp;rdquo;) gets merged and released
in a specific version following the process described above, the issue will be automatically closed, no
milestone will be set for the issue, you need to check the PR that fixed the issue to see which version
it was released in.&lt;/p&gt;
&lt;p&gt;However, sometimes maintainers mark issues with specific milestone, which means that the
issue is important to become a candidate to take a look when the release is being prepared. Since this is an
Open-Source project, where basically all contributors volunteer their time, there is no guarantee that specific
issue will be fixed in specific version. We do not want to hold the release because some issue is not fixed,
so in such case release manager will reassign such unfixed issues to the next milestone in case they are not
fixed in time for the current release. Therefore, the milestone for issue is more of an intent that it should be
looked at, than promise it will be fixed in the version.&lt;/p&gt;
&lt;p&gt;More context and &lt;strong&gt;FAQ&lt;/strong&gt; about the patchlevel release can be found in the
&lt;a class=&#34;link&#34; href=&#34;dev/WHAT_GOES_INTO_THE_NEXT_RELEASE.md&#34; &gt;What goes into the next release&lt;/a&gt; document in the &lt;code&gt;dev&lt;/code&gt; folder of the
repository.&lt;/p&gt;
&lt;h2 id=&#34;can-i-use-the-apache-airflow-logo-in-my-presentation&#34;&gt;Can I use the Apache Airflow logo in my presentation?
&lt;/h2&gt;&lt;p&gt;Yes! Be sure to abide by the Apache Foundation &lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/foundation/marks/#books&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;trademark policies&lt;/a&gt; and the Apache Airflow &lt;a class=&#34;link&#34; href=&#34;https://cwiki.apache.org/confluence/display/AIRFLOW/Brandbook&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Brandbook&lt;/a&gt;. The most up-to-date logos are found in &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/airflow/tree/main/airflow-core/docs/img/logos/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;this repo&lt;/a&gt; and on the Apache Software Foundation &lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/logos/about.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;website&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;links&#34;&gt;Links
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/docs/apache-airflow/stable/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://s.apache.org/airflow-slack&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Chat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://airflow.apache.org/community/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Community Information&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sponsors&#34;&gt;Sponsors
&lt;/h2&gt;&lt;p&gt;The CI infrastructure for Apache Airflow has been sponsored by:&lt;/p&gt;
&lt;!-- Ordered by most recently &#34;funded&#34; --&gt;
&lt;p&gt;&lt;a href=&#34;https://astronomer.io&#34;&gt;&lt;img src=&#34;https://assets2.astronomer.io/logos/logoForLIGHTbackground.png&#34; alt=&#34;astronomer.io&#34; width=&#34;250px&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://aws.amazon.com/opensource/&#34;&gt;&lt;img src=&#34;https://github.com/apache/airflow/blob/main/providers/amazon/docs/integration-logos/AWS-Cloud-alt_light-bg@4x.png?raw=true&#34; alt=&#34;AWS OpenSource&#34; width=&#34;130px&#34;&gt;&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>kubesphere</title>
        <link>https://producthunt.programnotes.cn/en/p/kubesphere/</link>
        <pubDate>Sun, 03 Aug 2025 15:29:40 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/kubesphere/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1484820986637-7ec3e85b394f?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTQyMDYxMjV8&amp;ixlib=rb-4.1.0" alt="Featured image of post kubesphere" /&gt;&lt;h1 id=&#34;kubespherekubesphere&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/kubesphere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kubesphere/kubesphere&lt;/a&gt;
&lt;/h1&gt;&lt;p align=&#34;center&#34;&gt;
&lt;a href=&#34;https://kubesphere.io/&#34;&gt;&lt;img src=&#34;docs/images/kubesphere-icon.gif&#34; alt=&#34;banner&#34; width=&#34;200px&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;b&gt;The container platform tailored for &lt;i&gt;Kubernetes multi-cloud, datacenter, and edge&lt;/i&gt; management&lt;/b&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href=&#34;https://goreportcard.com/report/github.com/kubesphere/kubesphere&#34;&gt;&lt;img src=&#34;https://goreportcard.com/badge/github.com/kubesphere/kubesphere&#34; alt=&#34;A+&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://hub.docker.com/r/kubesphere/ks-installer&#34;&gt;&lt;img src=&#34;https://img.shields.io/docker/pulls/kubesphere/ks-installer&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://github.com/kubesphere/kubesphere/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22&#34;&gt;&lt;img src=&#34;https://img.shields.io/github/issues/kubesphere/kubesphere/good%20first%20issue?logo=github&#34; alt=&#34;good first issue&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://twitter.com/intent/follow?screen_name=KubeSphere&#34;&gt;&lt;img src=&#34;https://img.shields.io/twitter/follow/KubeSphere?style=social&#34; alt=&#34;follow on Twitter&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://join.slack.com/t/kubesphere/shared_invite/zt-2b4t6rdb4-ico_4UJzCln_S2c1pcrIpQ&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/Slack-2000%2B-blueviolet?logo=slack&amp;amp;logoColor=white&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://www.youtube.com/channel/UCyTdUQUYjf7XLjxECx63Hpw&#34;&gt;&lt;img src=&#34;https://img.shields.io/youtube/channel/subscribers/UCyTdUQUYjf7XLjxECx63Hpw?style=social&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;what-is-kubesphere&#34;&gt;What is KubeSphere
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;English | &lt;a class=&#34;link&#34; href=&#34;README_zh.md&#34; &gt;中文&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere&lt;/a&gt; is a &lt;strong&gt;distributed operating system for cloud-native application management&lt;/strong&gt;,
using &lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kubernetes&lt;/a&gt; as its kernel. It provides a plug-and-play architecture, allowing third-party
applications to be seamlessly integrated into its ecosystem. KubeSphere is also a multi-tenant container platform with
full-stack automated IT operation and streamlined DevOps workflows. It provides developer-friendly wizard web UI,
helping enterprises to build out a more robust and feature-rich platform, which includes most common functionalities
needed for enterprise Kubernetes strategy, see &lt;a class=&#34;link&#34; href=&#34;#features&#34; &gt;Feature List&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;The following screenshots give a close insight into KubeSphere. Please
check &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/introduction/what-is-kubesphere/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;What is KubeSphere&lt;/a&gt; for further information.&lt;/p&gt;
&lt;table&gt;
  &lt;tr&gt;
      &lt;td width=&#34;50%&#34; align=&#34;center&#34;&gt;&lt;b&gt;Workbench&lt;/b&gt;&lt;/td&gt;
      &lt;td width=&#34;50%&#34; align=&#34;center&#34;&gt;&lt;b&gt;Project Resources&lt;/b&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
     &lt;td&gt;&lt;img src=&#34;docs/images/console.png&#34;/&gt;&lt;/td&gt;
     &lt;td&gt;&lt;img src=&#34;docs/images/project.png&#34;/&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
      &lt;td width=&#34;50%&#34; align=&#34;center&#34;&gt;&lt;b&gt;CI/CD Pipeline&lt;/b&gt;&lt;/td&gt;
      &lt;td width=&#34;50%&#34; align=&#34;center&#34;&gt;&lt;b&gt;App Store&lt;/b&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
     &lt;td&gt;&lt;img src=&#34;docs/images/cicd.png&#34;/&gt;&lt;/td&gt;
     &lt;td&gt;&lt;img src=&#34;docs/images/app-store.png&#34;/&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;demo-environment&#34;&gt;Demo environment
&lt;/h2&gt;&lt;p&gt;🎮 &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.cloud/en/console/managed-cluster/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere Lite&lt;/a&gt; provides you with free, stable, and
out-of-the-box managed cluster service. After registration and login, you can easily create a K8s cluster with
KubeSphere installed in only 5 seconds and experience feature-rich KubeSphere.&lt;/p&gt;
&lt;p&gt;🖥 You can view the &lt;a class=&#34;link&#34; href=&#34;https://youtu.be/YxZ1YUv0CYs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Demo Video&lt;/a&gt; to get started with KubeSphere.&lt;/p&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;&lt;b&gt;🧩 Extensible Architecture&lt;/b&gt;&lt;/summary&gt;  
Designed for flexibility, supporting plugin-based extensions and seamless integrations. Easily customize and expand functionalities to meet evolving needs. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/01-intro/02-architecture/&#34;&gt;Learn more&lt;/a&gt;.  
&lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🕸 Provisioning Kubernetes Cluster&lt;/b&gt;&lt;/summary&gt;
  Support deploy Kubernetes on any infrastructure, support online and air-gapped installation. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🔗 Kubernetes Multi-cluster Management&lt;/b&gt;&lt;/summary&gt;
  Provide a centralized control plane to manage multiple Kubernetes clusters, and support the ability to propagate an app to multiple K8s clusters across different cloud providers.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🤖 Kubernetes DevOps&lt;/b&gt;&lt;/summary&gt;
  Provide GitOps-based CD solutions and use Argo CD to provide the underlying support, collecting CD status information in real time. With the mainstream CI engine Jenkins integrated, DevOps has never been easier. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/11-use-extensions/01-devops/01-overview/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🔎 Cloud Native Observability&lt;/b&gt;&lt;/summary&gt;
  Multi-dimensional monitoring, events and auditing logs are supported; multi-tenant log query and collection, alerting and notification are built-in. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/11-use-extensions/05-observability-platform/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🌐 Service Mesh (Istio-based)&lt;/b&gt;&lt;/summary&gt;
  Provide fine-grained traffic management, observability and tracing for distributed microservice applications, provides visualization for traffic topology. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/11-use-extensions/03-service-mesh/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;💻 App Store&lt;/b&gt;&lt;/summary&gt;
  Provide an App Store for Helm-based applications, and offer application lifecycle management on Kubernetes platform. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/11-use-extensions/02-app-store/02-app-management/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;💡 Edge Computing Platform&lt;/b&gt;&lt;/summary&gt;
  KubeSphere integrates &lt;a href=&#34;https://kubeedge.io/en/&#34;&gt;KubeEdge&lt;/a&gt; to enable users to deploy applications on the edge devices and view logs and monitoring metrics of them on the console. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/11-use-extensions/17-kubeedge/&#34;&gt;Learn more&lt;/a&gt;.
  &lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🗃 Support Multiple Storage and Networking Solutions&lt;/b&gt;&lt;/summary&gt;
  &lt;li&gt;Support GlusterFS, CephRBD, NFS, LocalPV solutions, and provide CSI plugins to consume storage from multiple cloud providers.&lt;/li&gt;&lt;li&gt;Provide Load Balancer Implementation &lt;a href=&#34;https://github.com/kubesphere/openelb&#34;&gt;OpenELB&lt;/a&gt; for Kubernetes in bare-metal, edge, and virtualization.&lt;/li&gt;&lt;li&gt; Provides network policy and Pod IP pools management, support Calico, Flannel, Kube-OVN&lt;/li&gt;.&lt;/li&gt;.
  &lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;🏢 Multi-Tenancy&lt;/b&gt;&lt;/summary&gt;  
Isolated workspaces with role-based access control ensure secure resource sharing across multiple tenants. Supports fine-grained permissions and quota management. &lt;a href=&#34;https://kubesphere.io/docs/v4.1/08-workspace-management/&#34;&gt;Learn more&lt;/a&gt;.  
&lt;/details&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;🧠 GPU Workloads Scheduling and Monitoring&lt;/b&gt;&lt;/summary&gt;
  Create GPU workloads on the GUI, schedule GPU resources, and manage GPU resource quotas by tenant.
  &lt;/details&gt;
&lt;h2 id=&#34;architecture&#34;&gt;Architecture
&lt;/h2&gt;&lt;p&gt;KubeSphere 4.x adopts a microkernel + extension components architecture (&lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/v4.1/01-intro/01-introduction/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;codename LuBan&lt;/a&gt;). The core part (KubeSphere Core) only includes the essential basic functions required for system operation, with independent functional modules split and provided in the form of extension components. Users can dynamically manage the extension components during system operation. With the extension capabilities, KubeSphere can support more application scenarios and meet the needs of different users.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://producthunt.programnotes.cn/docs/images/architecture.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Architecture&#34;
	
	
&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;latest-release&#34;&gt;Latest release
&lt;/h2&gt;&lt;p&gt;🎉 KubeSphere v4.1.2 was released! It brings enhancements and better user experience, see
the &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/v4.1/20-release-notes/release-v412/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Release Notes For 4.1.2&lt;/a&gt; for the updates.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation
&lt;/h2&gt;&lt;p&gt;KubeSphere can run anywhere from on-premise datacenter to any cloud to edge. In addition, it can be deployed on any
version-compatible Kubernetes cluster. KubeSphere consumes very few resources, and you can
optionally &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/v4.1/02-quickstart/03-install-an-extension/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;install additional extensions after installation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;quick-start&#34;&gt;Quick start
&lt;/h3&gt;&lt;h4 id=&#34;installing-on-k8s&#34;&gt;Installing on K8s
&lt;/h4&gt;&lt;p&gt;Run the following commands to install KubeSphere on an existing Kubernetes cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.3.tgz --debug --wait
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;kubesphere-for-hosted-kubernetes-services&#34;&gt;KubeSphere for hosted Kubernetes services
&lt;/h3&gt;&lt;p&gt;KubeSphere is hosted on the following cloud providers, and you can try KubeSphere by one-click installation on their
hosted Kubernetes services.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://aws.amazon.com/quickstart/architecture/qingcloud-kubesphere/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere for Amazon EKS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://market.azure.cn/marketplace/apps/qingcloud.kubesphere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere for Azure AKS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://marketplace.digitalocean.com/apps/kubesphere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere for DigitalOcean Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.qingcloud.com/products/kubesphereqke&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere on QingCloud AppCenter(QKE)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also install KubeSphere on other hosted Kubernetes services within minutes, see
the &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/v4.1/02-quickstart/01-install-kubesphere/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;step-by-step guides&lt;/a&gt; to get started.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;👨‍💻 No internet access? Refer to
the &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/04-offline-installation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Air-gapped Installation&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;guidance-discussion-contribution-and-support&#34;&gt;Guidance, discussion, contribution, and support
&lt;/h2&gt;&lt;p&gt;You can reach the KubeSphere &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/community&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;community&lt;/a&gt; and developers via the following
channels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://join.slack.com/t/kubesphere/shared_invite/zt-2b4t6rdb4-ico_4UJzCln_S2c1pcrIpQ&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Slack Channel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/channel/UCyTdUQUYjf7XLjxECx63Hpw&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://x.com/KubeSphere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;X/Twitter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:hugs: Please submit any KubeSphere bugs, issues, and feature requests
to &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/kubesphere/issues&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere GitHub Issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;:heart_decoration: The KubeSphere team also provides efficient official ticket support to respond in hours. For more
information, click &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.cloud/en/ticket/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere Online Support&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;contribution&#34;&gt;Contribution
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/community/tree/master/developer-guide/development&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere Development Guide&lt;/a&gt;
explains how to build and develop KubeSphere.&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://dev-guide.kubesphere.io/extension-dev-guide/en/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KubeSphere Extension Development Guide&lt;/a&gt; explains how to
develop KubeSphere extensions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;code-of-conduct&#34;&gt;Code of conduct
&lt;/h2&gt;&lt;p&gt;Participation in the KubeSphere community is governed by
the &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/community/blob/master/code-of-conduct.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Code of Conduct&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;security&#34;&gt;Security
&lt;/h2&gt;&lt;p&gt;The security process for reporting vulnerabilities is described in &lt;a class=&#34;link&#34; href=&#34;./SECURITY.md&#34; &gt;SECURITY.md&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;who-are-using-kubesphere&#34;&gt;Who are using KubeSphere
&lt;/h2&gt;&lt;p&gt;The &lt;a class=&#34;link&#34; href=&#34;https://kubesphere.io/case/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;user case studies&lt;/a&gt; page includes the user list of the project. You
can &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubesphere/kubesphere/issues/4123&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;leave a comment&lt;/a&gt; to let us know your use case.&lt;/p&gt;
&lt;hr&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;img src=&#34;https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/other/cncf-landscape/horizontal/color/cncf-landscape-horizontal-color.svg&#34; width=&#34;150&#34;/&gt;&amp;nbsp;&amp;nbsp;&lt;img src=&#34;https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/other/cncf/horizontal/color/cncf-color.svg&#34; width=&#34;200&#34;/&gt;&amp;nbsp;&amp;nbsp;
&lt;br/&gt;&lt;br/&gt;
KubeSphere is a member of CNCF and a &lt;a href=&#34;https://www.cncf.io/certification/software-conformance/#logos&#34;&gt;Kubernetes Conformance Certified platform
&lt;/a&gt;, which enriches the &lt;a href=&#34;https://landscape.cncf.io/?landscape=observability-and-analysis&amp;group=certified-partners-and-providers&amp;item=platform--certified-kubernetes-distribution--kubesphere&#34;&gt;CNCF CLOUD NATIVE Landscape.
&lt;/a&gt;
&lt;/p&gt;
</description>
        </item>
        <item>
        <title>learn-agentic-ai</title>
        <link>https://producthunt.programnotes.cn/en/p/learn-agentic-ai/</link>
        <pubDate>Tue, 17 Jun 2025 15:30:43 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/learn-agentic-ai/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1654483143648-cb97703e2979?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTAxNDUzNDN8&amp;ixlib=rb-4.1.0" alt="Featured image of post learn-agentic-ai" /&gt;&lt;h1 id=&#34;panaversitylearn-agentic-ai&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/panaversity/learn-agentic-ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;panaversity/learn-agentic-ai&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;learn-agentic-ai-using-dapr-agentic-cloud-ascent-daca-design-pattern-from-start-to-scale&#34;&gt;Learn Agentic AI using Dapr Agentic Cloud Ascent (DACA) Design Pattern: From Start to Scale
&lt;/h1&gt;&lt;p&gt;This repo is part of the &lt;a class=&#34;link&#34; href=&#34;https://docs.google.com/document/d/15usu1hkrrRLRjcq_3nCTT-0ljEcgiC44iSdvdqrCprk/edit?usp=sharing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Panaversity Certified Agentic &amp;amp; Robotic AI Engineer&lt;/a&gt; program. It covers AI-201, AI-202 and AI-301 courses.&lt;/p&gt;
&lt;p&gt;We have Two Hunches, the future of Pakistan depends on it, let&amp;rsquo;s make sure that we are not wrong:&lt;/p&gt;
&lt;p&gt;It is very important for Pakistan that we bet on the right horses for the upcoming age of Agentic AI. We will be training millions of Agentic AI Developers all over Pakistan and online around the world and building startups, we cant afford to be wrong.&lt;/p&gt;
&lt;p&gt;Hunch #1: Dapr
We feel Dapr, Dapr Actors, Dapr Workflows, and Dapr Agents will be the core technology in building the next generation multi ai agentic systems, is my hunch correct?&lt;/p&gt;
&lt;p&gt;Hunch #2: OpenAI Agents SDK
We also have a hunch that OpenAI Agents SDK will be the go to framework for beginners to start learning Agentic AI?&lt;/p&gt;
&lt;p&gt;Let us see what the best AI has to say about our hunches:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://chatgpt.com/share/6811b893-82cc-8001-9037-e45bcd91cc64&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://chatgpt.com/share/6811b893-82cc-8001-9037-e45bcd91cc64&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://g.co/gemini/share/1f31c876520b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://g.co/gemini/share/1f31c876520b&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://grok.com/share/bGVnYWN5_4343d342-c7df-4b06-9174-487a64f59d53&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://grok.com/share/bGVnYWN5_4343d342-c7df-4b06-9174-487a64f59d53&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;this-panaversity-initiative-tackles-the-critical-challenge&#34;&gt;This Panaversity Initiative Tackles the Critical Challenge:
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;“How do we design AI Agents that can handle 10 million concurrent AI Agents without failing?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note: The challenge is intensified as we must guide our students to solve this issue with minimal financial resources available during training.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;./img/cover.png&#34; width=&#34;600&#34;&gt;
&lt;/p&gt;
&lt;p&gt;Kubernetes with Dapr can theoretically handle 10 million concurrent agents in an agentic AI system without failing, but achieving this requires extensive optimization, significant infrastructure, and careful engineering. While direct evidence at this scale is limited, logical extrapolation from existing benchmarks, Kubernetes’ scalability, and Dapr’s actor model supports feasibility, especially with rigorous tuning and resource allocation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Condensed Argument with Proof and Logic&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kubernetes Scalability&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Evidence&lt;/strong&gt;: Kubernetes supports up to 5,000 nodes and 150,000 pods per cluster (Kubernetes docs), with real-world examples like PayPal scaling to 4,000 nodes and 200,000 pods (InfoQ, 2023) and KubeEdge managing 100,000 edge nodes and 1 million pods (KubeEdge case studies). OpenAI’s 2,500-node cluster for AI workloads (OpenAI blog, 2022) shows Kubernetes can handle compute-intensive tasks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logic&lt;/strong&gt;: For 10 million users, a cluster of 5,000–10,000 nodes (e.g., AWS g5 instances with GPUs) can distribute workloads. Each node can run hundreds of pods, and Kubernetes’ horizontal pod autoscaling (HPA) dynamically adjusts to demand. Bottlenecks (e.g., API server, networking) can be mitigated by tuning etcd, using high-performance CNIs like Cilium, and optimizing DNS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dapr’s Efficiency for Agentic AI&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Evidence&lt;/strong&gt;: Dapr’s actor model supports thousands of virtual actors per CPU core with double-digit millisecond latency (Dapr docs, 2024). Case studies show Dapr handling millions of events, e.g., Tempestive’s IoT platform processing billions of messages (Dapr blog, 2023) and DeFacto’s system managing 3,700 events/second (320 million daily) on Kubernetes with Kafka (Microsoft case study, 2022).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logic&lt;/strong&gt;: Agentic AI relies on stateful, low-latency agents. Dapr Agents, built on the actor model, can represent 10 million users as actors, distributed across a Kubernetes cluster. Dapr’s state management (e.g., Redis) and pub/sub messaging (e.g., Kafka) ensure efficient coordination and resilience, with automatic retries preventing failures. Sharding state stores and message brokers scales to millions of operations/second.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Handling AI Workloads&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Evidence&lt;/strong&gt;: LLM inference frameworks like vLLM and TGI serve thousands of requests/second per GPU (vLLM benchmarks, 2024). Kubernetes orchestrates GPU workloads effectively, as seen  Kubernetes manages GPU workloads, as seen in NVIDIA’s AI platform scaling to thousands of GPUs (NVIDIA case study, 2023).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logic&lt;/strong&gt;: Assuming each user generates 1 request/second requiring 0.01 GPU, 10 million users need ~100,000 GPUs. Batching, caching, and model parallelism reduce this to a feasible ~10,000–20,000 GPUs, achievable in hyperscale clouds (e.g., AWS). Kubernetes’ resource scheduling ensures optimal GPU utilization.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Networking and Storage&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Evidence&lt;/strong&gt;: EMQX on Kubernetes handled 1 million concurrent connections with tuning (EMQX blog, 2024). C10M benchmarks (2013) achieved 10 million connections using optimized stacks. Dapr’s state stores (e.g., Redis) support millions of operations/second (Redis benchmarks, 2024).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logic&lt;/strong&gt;: 10 million connections require ~100–1,000 Gbps bandwidth, supported by modern clouds. High-throughput databases (e.g., CockroachDB) and caching (e.g., Redis Cluster) handle 10 TB of state data for 10 million users (1 KB/user). Kernel bypass (e.g., DPDK) and eBPF-based CNIs (e.g., Cilium) minimize networking latency.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Resilience and Monitoring&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Evidence&lt;/strong&gt;: Dapr’s resiliency policies (retries, circuit breakers) and Kubernetes’ self-healing (pod restarts) ensure reliability (Dapr docs, 2024). Dapr’s OpenTelemetry integration scales monitoring for millions of agents (Prometheus case studies, 2023).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logic&lt;/strong&gt;: Real-time metrics (e.g., latency, error rates) and distributed tracing prevent cascading failures. Kubernetes’ liveness probes and Dapr’s workflow engine recover from crashes, ensuring 99.999% uptime.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Feasibility with Constraints&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Challenge&lt;/strong&gt;: No direct benchmark exists for 10 million concurrent users with Dapr/Kubernetes in an agentic AI context. Infrastructure costs (e.g., $10M–$100M for 10,000 nodes) are prohibitive for low-budget scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Use open-source tools (e.g., Minikube, kind) for local testing and cloud credits (e.g., AWS Educate) for students. Simulate 10 million users with tools like Locust on smaller clusters (e.g., 100 nodes), extrapolating results. Optimize Dapr’s actor placement and Kubernetes’ resource quotas to maximize efficiency on limited hardware. Leverage free-tier databases (e.g., MongoDB Atlas) and message brokers (e.g., RabbitMQ).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;: Kubernetes with Dapr can handle 10 million concurrent users in an agentic AI system, supported by their proven scalability, real-world case studies, and logical extrapolation. For students with minimal budgets, small-scale simulations, open-source tools, and cloud credits make the problem tractable, though production-scale deployment requires hyperscale resources and expertise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agentic AI Top Trend of 2025&lt;/strong&gt;&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;./img/toptrend.webp&#34; width=&#34;200&#34;&gt;
&lt;/p&gt;
&lt;h2 id=&#34;the-dapr-agentic-cloud-ascent-daca-design-pattern-addresses-10-million-ai-agents-challenge&#34;&gt;The Dapr Agentic Cloud Ascent (DACA) Design Pattern Addresses 10 Million AI Agents Challenge
&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s understand and learn about &amp;ldquo;Dapr Agentic Cloud Ascent (DACA)&amp;rdquo;, our winning design pattern for developing and deploying planet scale multi-agent systems.&lt;/p&gt;
&lt;h3 id=&#34;executive-summary-dapr-agentic-cloud-ascent-daca&#34;&gt;Executive Summary: Dapr Agentic Cloud Ascent (DACA)
&lt;/h3&gt;&lt;p&gt;The Dapr Agentic Cloud Ascent (DACA) guide introduces a strategic design pattern for building and deploying sophisticated, scalable, and resilient agentic AI systems. Addressing the complexities of modern AI development, DACA integrates the OpenAI Agents SDK for core agent logic with the Model Context Protocol (MCP) for standardized tool use and the Agent2Agent (A2A) protocol for seamless inter-agent communication, all underpinned by the distributed capabilities of Dapr. &lt;strong&gt;Grounded in AI-first and cloud-first principles&lt;/strong&gt;, DACA promotes the use of stateless, containerized applications deployed on platforms like Azure Container Apps (Serverless Containers) or Kubernetes, enabling efficient scaling from local development to planetary-scale production, potentially leveraging free-tier cloud services and self-hosted LLMs for cost optimization. The pattern emphasizes modularity, context-awareness, and standardized communication, envisioning an &lt;strong&gt;Agentia World&lt;/strong&gt; where diverse AI agents collaborate intelligently. Ultimately, DACA offers a robust, flexible, and cost-effective framework for developers and architects aiming to create complex, cloud-native agentic AI applications that are built for scalability and resilience from the ground up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/panaversity/learn-agentic-ai/blob/main/comprehensive_guide_daca.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Comprehensive Guide to Dapr Agentic Cloud Ascent (DACA) Design Pattern&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;./img/ascent.png&#34; width=&#34;500&#34;&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;./img/architecture1.png&#34; width=&#34;400&#34;&gt;
&lt;/p&gt;
&lt;h3 id=&#34;target-user&#34;&gt;Target User
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agentic AI Developer and AgentOps Professionals&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;why-openai-agents-sdk-should-be-the-main-framework-for-agentic-development-for-most-use-cases&#34;&gt;Why OpenAI Agents SDK should be the main framework for agentic development for most use cases?
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Table 1: Comparison of Abstraction Levels in AI Agent Frameworks&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;strong&gt;Framework&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;Abstraction Level&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;Key Characteristics&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;Learning Curve&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;Control Level&lt;/strong&gt;&lt;/th&gt;
          &lt;th&gt;&lt;strong&gt;Simplicity&lt;/strong&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;OpenAI Agents SDK&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Minimal&lt;/td&gt;
          &lt;td&gt;Python-first, core primitives (Agents, Handoffs, Guardrails), direct control&lt;/td&gt;
          &lt;td&gt;Low&lt;/td&gt;
          &lt;td&gt;High&lt;/td&gt;
          &lt;td&gt;High&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;CrewAI&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Moderate&lt;/td&gt;
          &lt;td&gt;Role-based agents, crews, tasks, focus on collaboration&lt;/td&gt;
          &lt;td&gt;Low-Medium&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;AutoGen&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;High&lt;/td&gt;
          &lt;td&gt;Conversational agents, flexible conversation patterns, human-in-the-loop support&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Google ADK&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Moderate&lt;/td&gt;
          &lt;td&gt;Multi-agent hierarchies, Google Cloud integration (Gemini, Vertex AI), rich tool ecosystem, bidirectional streaming&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Medium-High&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;LangGraph&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Low-Moderate&lt;/td&gt;
          &lt;td&gt;Graph-based workflows, nodes, edges, explicit state management&lt;/td&gt;
          &lt;td&gt;Very High&lt;/td&gt;
          &lt;td&gt;Very High&lt;/td&gt;
          &lt;td&gt;Low&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Dapr Agents&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Moderate&lt;/td&gt;
          &lt;td&gt;Stateful virtual actors, event-driven multi-agent workflows, Kubernetes integration, 50+ data connectors, built-in resiliency&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
          &lt;td&gt;Medium-High&lt;/td&gt;
          &lt;td&gt;Medium&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The table clearly identifies why OpenAI Agents SDK should be the main framework for agentic development for most use cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It excels in &lt;strong&gt;simplicity&lt;/strong&gt; and &lt;strong&gt;ease of use&lt;/strong&gt;, making it the best choice for rapid development and broad accessibility.&lt;/li&gt;
&lt;li&gt;It offers &lt;strong&gt;high control&lt;/strong&gt; with &lt;strong&gt;minimal abstraction&lt;/strong&gt;, providing the flexibility needed for agentic development without the complexity of frameworks like LangGraph.&lt;/li&gt;
&lt;li&gt;It outperforms most alternatives (CrewAI, AutoGen, Google ADK, Dapr Agents) in balancing usability and power, and while LangGraph offers more control, its complexity makes it less practical for general use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your priority is ease of use, flexibility, and quick iteration in agentic development, OpenAI Agents SDK is the clear winner based on the table. However, if your project requires enterprise-scale features (e.g., Dapr Agents) or maximum control for complex workflows (e.g., LangGraph), you might consider those alternatives despite their added complexity.&lt;/p&gt;
&lt;h2 id=&#34;core-daca-agentic-ai-courses&#34;&gt;Core DACA Agentic AI Courses:
&lt;/h2&gt;&lt;h3 id=&#34;ai-201--fundamentals-of-agentic-ai-and-daca-ai-first-development-14-weeks&#34;&gt;AI-201:  Fundamentals of Agentic AI and DACA AI-First Development (14 weeks)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;⁠Agentic &amp;amp; DACA Theory - 1 week&lt;/li&gt;
&lt;li&gt;UV &amp;amp; ⁠OpenAI Agents SDK - 5 weeks&lt;/li&gt;
&lt;li&gt;⁠Agentic Design Patterns - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Memory [LangMem &amp;amp; mem0] 1 week&lt;/li&gt;
&lt;li&gt;Postgres/Redis (Managed Cloud) - 1 week&lt;/li&gt;
&lt;li&gt;FastAPI (Basic)  - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Containerization (Rancher Desktop) - 1 week&lt;/li&gt;
&lt;li&gt;Hugging Face Docker Spaces - 1 week&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/playlist?list=PL0vKVrkG4hWovpr0FX6Gs-06hfsPDEUe6&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AI-201 Video Playlist&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note: These videos are for additional learning, and do not cover all the material taught in the onsite classes.&lt;/p&gt;
&lt;p&gt;Prerequisite: Successful completion of &lt;a class=&#34;link&#34; href=&#34;https://github.com/panaversity/learn-modern-ai-python&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AI-101: Modern AI Python Programming - Your Launchpad into Intelligent Systems&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;ai-202-daca-cloud-first-agentic-ai-development-14-weeks&#34;&gt;AI-202: DACA Cloud-First Agentic AI Development (14 weeks)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Rancher Desktop with Local Kubernetes - 4 weeks&lt;/li&gt;
&lt;li&gt;Advanced FastAPI with Kubernetes - 2 weeks&lt;/li&gt;
&lt;li&gt;Dapr [workflows, state, pubsub, secrets] - 3 Week&lt;/li&gt;
&lt;li&gt;CockRoachdb &amp;amp; RabbitMQ Managed Services - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Model Context Protocol -  2 weeks&lt;/li&gt;
&lt;li&gt;⁠Serverless Containers Deployment (ACA) - 2 weeks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prerequisite: Successful completion of AI-201&lt;/p&gt;
&lt;h3 id=&#34;ai-301-daca-planet-scale-distributed-ai-agents-14-weeks&#34;&gt;AI-301 DACA Planet-Scale Distributed AI Agents (14 Weeks)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;⁠Certified Kubernetes Application Developer (CKAD) - 4 weeks&lt;/li&gt;
&lt;li&gt;⁠A2A Protocol - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Voice Agents - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Dapr Agents/Google ADK - 2 weeks&lt;/li&gt;
&lt;li&gt;⁠Self-LLMs Hosting - 1 week&lt;/li&gt;
&lt;li&gt;Finetuning LLMs - 3 weeks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prerequisite: Successful completion of AI-201 &amp;amp; AI-202&lt;/p&gt;
&lt;h2 id=&#34;evaluations&#34;&gt;Evaluations
&lt;/h2&gt;&lt;p&gt;Quizzes + Hackathons (Everything is Onsite)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Advanced Modern Python (including asyncio) [Q1]&lt;/li&gt;
&lt;li&gt;OpenAI Agents SDK (48 MCQ in 2 hour) [01_ai_agents_first]&lt;/li&gt;
&lt;li&gt;Protocols &amp;amp; Design Patterns (A2A and MCP) [05_ai_protocols]&lt;/li&gt;
&lt;li&gt;Hackathon1 - 8 Hours (Using Above Quiz Stack)&lt;/li&gt;
&lt;li&gt;Containerization + FastAPI [05_daca_agent_native_dev = 01 + 02 ]&lt;/li&gt;
&lt;li&gt;Kubernetes (Rancher Desktop) [Stimulations] [05_daca_agent_native_dev = 02 ]&lt;/li&gt;
&lt;li&gt;Dapr-1 - State, PubSub, Bindings, Invocation [05_daca_agent_native_dev = 03 ]&lt;/li&gt;
&lt;li&gt;Dapr-2 - Workflows, Virtual Actors [04_agent_native = 04, 05, 06]&lt;/li&gt;
&lt;li&gt;Hackathon2 - 8 Hours (Agent Native Startup)&lt;/li&gt;
&lt;li&gt;CKAD + DAPR + ArgoCD (Simulations) [06_daca_deployment_guide + 07_ckad]&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;quiz-details&#34;&gt;Quiz Details
&lt;/h2&gt;&lt;h3 id=&#34;fundamentals-of-agentic-ai-quiz&#34;&gt;Fundamentals of Agentic AI Quiz
&lt;/h3&gt;&lt;p&gt;Total Questions: 48 MCQs&lt;/p&gt;
&lt;p&gt;Duration: 120 Minutes&lt;/p&gt;
&lt;p&gt;Difficulty Level: Intermediate or Advanced (NOT beginner-level)&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/playlist?list=PL0vKVrkG4hWr4V2I4P6GaDzMG_LijlGTm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quiz Preparation Playlist&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a well-constructed, comprehensive quiz that accurately tests deep knowledge of the OpenAI Agents SDK. However, it&amp;rsquo;s significantly more challenging than typical beginner-level assessments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Difficulty Level for Beginners&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The quiz is challenging for beginners due to the following factors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Technical Depth&lt;/strong&gt;: Questions require understanding the OpenAI Agents SDK’s architecture (e.g., Agents, Tools, Handoffs, Runner), Pydantic models, async programming, and prompt engineering. These are advanced topics for someone new to AI or Python.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Conceptual Complexity&lt;/strong&gt;: Topics like dynamic instructions, context management, error handling, and Chain-of-Thought prompting require familiarity with both theoretical and practical aspects of agentic AI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Code Analysis&lt;/strong&gt;: Many questions involve analyzing code snippets, understanding execution paths, and predicting outcomes, which demand strong Python and debugging skills.
Domain Knowledge: Questions on Markdown are simpler, but the majority focus on niche SDK features, making the quiz specialized.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Beginner Challenges&lt;/strong&gt;: Beginners (e.g., those with basic Python knowledge and minimal AI experience) would struggle with SDK-specific concepts like Runner.run_sync, tool_choice, and Pydantic validation, as well as async programming and multi-agent workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Difficulty Rating&lt;/strong&gt;: Advanced (not beginner-friendly). Beginners would need foundational knowledge in Python, async programming, and LLMs, plus specific training on the OpenAI Agents SDK to perform well.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To excel in this quiz, focus on understanding the core components and philosophy of the OpenAI Agents SDK, such as its &amp;ldquo;Python-first&amp;rdquo; design for orchestration, the roles of Agents and Tools, and how primitives like &amp;ldquo;Handoffs&amp;rdquo; facilitate multi-agent collaboration. Pay close attention to how the SDK manages the agent loop, handles tool calls and Pydantic models for typed inputs/outputs, and uses context objects. Review concepts like dynamic instructions, agent cloning, error handling during tool execution, and the nuances of Runner.run_sync() versus streaming. Additionally, refresh your knowledge of prompt engineering techniques, including crafting clear instructions, guiding the agent&amp;rsquo;s reasoning (e.g., Chain-of-Thought), and managing sensitive data through persona and careful prompting. Finally, ensure you&amp;rsquo;re comfortable with basic Markdown syntax for links and images.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Preparation Guide for Beginner Students&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This OpenAI Agents SDK quiz is designed for intermediate to advanced learners and requires substantial preparation to succeed. Before attempting this assessment, ensure you have a solid foundation in Python programming, including object-oriented concepts, async/await patterns, decorators, and error handling. You&amp;rsquo;ll need to thoroughly study Pydantic models for data validation, understanding field definitions, default values, and validation behavior. Dedicate significant time to the OpenAI Agents SDK documentation (&lt;a class=&#34;link&#34; href=&#34;https://openai.github.io/openai-agents-python/%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.github.io/openai-agents-python/)&lt;/a&gt;, focusing on core concepts like Agents, Tools, Handoffs, context management, and the agent execution loop. Practice writing and analyzing code that uses the @function_tool decorator, Runner.run_sync(), agent cloning, and multi-agent orchestration patterns. Review prompt engineering techniques from the OpenAI cookbook, particularly Chain-of-Thought prompting, system message design, and handling sensitive data. Finally, familiarize yourself with basic Markdown syntax for links and images. Plan to spend at least 2-3 weeks studying these materials, complete hands-on coding exercises with the SDK. Consider this quiz a capstone assessment that requires comprehensive understanding rather than a beginner-level introduction to the concepts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quiz Covers&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.github.io/openai-agents-python/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.github.io/openai-agents-python/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://cookbook.openai.com/examples/gpt4-1_prompting_guide&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cookbook.openai.com/examples/gpt4-1_prompting_guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.markdownguide.org/basic-syntax/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.markdownguide.org/basic-syntax/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.markdownguide.org/cheat-sheet/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.markdownguide.org/cheat-sheet/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/panaversity/learn-agentic-ai/tree/main/01_ai_agents_first&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/panaversity/learn-agentic-ai/tree/main/01_ai_agents_first&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You Can Generate Mock Quizzes for Practice using LLMs from this Prompt:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a comprehensive quiz covering OpenAI Agents SDK. It should include as many MCQ Quiz Questions as required to test the material, the questions should be difficult and at the graduate level and should test both concepts and include code were required. From the following following documentation:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://openai.github.io/openai-agents-python/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.github.io/openai-agents-python/&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>kubernetes-the-hard-way</title>
        <link>https://producthunt.programnotes.cn/en/p/kubernetes-the-hard-way/</link>
        <pubDate>Mon, 09 Jun 2025 15:31:41 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/kubernetes-the-hard-way/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1562196533-c504efbf3942?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDk0NTQxOTl8&amp;ixlib=rb-4.1.0" alt="Featured image of post kubernetes-the-hard-way" /&gt;&lt;h1 id=&#34;kelseyhightowerkubernetes-the-hard-way&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kelseyhightower/kubernetes-the-hard-way&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kelseyhightower/kubernetes-the-hard-way&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;kubernetes-the-hard-way&#34;&gt;Kubernetes The Hard Way
&lt;/h1&gt;&lt;p&gt;This tutorial walks you through setting up Kubernetes the hard way. This guide is not for someone looking for a fully automated tool to bring up a Kubernetes cluster. Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don&amp;rsquo;t let that stop you from learning!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;copyright&#34;&gt;Copyright
&lt;/h2&gt;&lt;p&gt;&lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;&lt;img alt=&#34;Creative Commons License&#34; style=&#34;border-width:0&#34; src=&#34;https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png&#34; /&gt;&lt;/a&gt;&lt;br /&gt;This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;target-audience&#34;&gt;Target Audience
&lt;/h2&gt;&lt;p&gt;The target audience for this tutorial is someone who wants to understand the fundamentals of Kubernetes and how the core components fit together.&lt;/p&gt;
&lt;h2 id=&#34;cluster-details&#34;&gt;Cluster Details
&lt;/h2&gt;&lt;p&gt;Kubernetes The Hard Way guides you through bootstrapping a basic Kubernetes cluster with all control plane components running on a single node, and two worker nodes, which is enough to learn the core concepts.&lt;/p&gt;
&lt;p&gt;Component versions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/kubernetes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kubernetes&lt;/a&gt; v1.32.x&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd&lt;/a&gt; v2.1.x&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containernetworking/cni&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;cni&lt;/a&gt; v1.6.x&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/etcd-io/etcd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;etcd&lt;/a&gt; v3.6.x&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;labs&#34;&gt;Labs
&lt;/h2&gt;&lt;p&gt;This tutorial requires four (4) ARM64 or AMD64 based virtual or physical machines connected to the same network.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/01-prerequisites.md&#34; &gt;Prerequisites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/02-jumpbox.md&#34; &gt;Setting up the Jumpbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/03-compute-resources.md&#34; &gt;Provisioning Compute Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/04-certificate-authority.md&#34; &gt;Provisioning the CA and Generating TLS Certificates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/05-kubernetes-configuration-files.md&#34; &gt;Generating Kubernetes Configuration Files for Authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/06-data-encryption-keys.md&#34; &gt;Generating the Data Encryption Config and Key&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/07-bootstrapping-etcd.md&#34; &gt;Bootstrapping the etcd Cluster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/08-bootstrapping-kubernetes-controllers.md&#34; &gt;Bootstrapping the Kubernetes Control Plane&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/09-bootstrapping-kubernetes-workers.md&#34; &gt;Bootstrapping the Kubernetes Worker Nodes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/10-configuring-kubectl.md&#34; &gt;Configuring kubectl for Remote Access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/11-pod-network-routes.md&#34; &gt;Provisioning Pod Network Routes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/12-smoke-test.md&#34; &gt;Smoke Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/13-cleanup.md&#34; &gt;Cleaning Up&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>kubectl-ai</title>
        <link>https://producthunt.programnotes.cn/en/p/kubectl-ai/</link>
        <pubDate>Sat, 10 May 2025 15:25:23 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/kubectl-ai/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1669220235918-04cbf9e054b9?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDY4NjE4OTR8&amp;ixlib=rb-4.1.0" alt="Featured image of post kubectl-ai" /&gt;&lt;h1 id=&#34;googlecloudplatformkubectl-ai&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/GoogleCloudPlatform/kubectl-ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GoogleCloudPlatform/kubectl-ai&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;kubectl-ai&#34;&gt;kubectl-ai
&lt;/h1&gt;&lt;p&gt;&lt;code&gt;kubectl-ai&lt;/code&gt; acts as an intelligent interface, translating user intent into
precise Kubernetes operations, making Kubernetes management more accessible and
efficient.&lt;/p&gt;
&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start
&lt;/h2&gt;&lt;p&gt;First, ensure that kubectl is installed and configured.&lt;/p&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation
&lt;/h3&gt;&lt;h4 id=&#34;quick-install-linux--macos-only&#34;&gt;Quick Install (Linux &amp;amp; MacOS only)
&lt;/h4&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;manual-installation-linux-macos-and-windows&#34;&gt;Manual Installation (Linux, MacOS and Windows)
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download the latest release from the &lt;a class=&#34;link&#34; href=&#34;https://github.com/GoogleCloudPlatform/kubectl-ai/releases/latest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;releases page&lt;/a&gt; for your target machine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Untar the release, make the binary executable and move it to a directory in your $PATH (as shown below).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tar -zxvf kubectl-ai_Darwin_arm64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod a+x kubectl-ai
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mv kubectl-ai /usr/local/bin/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;install-with-krew-linuxmacoswindows&#34;&gt;Install with Krew (Linux/macOS/Windows)
&lt;/h4&gt;&lt;p&gt;First of all, you need to have krew insatlled, refer to &lt;a class=&#34;link&#34; href=&#34;https://krew.sigs.k8s.io/docs/user-guide/setup/install/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;krew document&lt;/a&gt; for more details
Then you can install with krew&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl krew install ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Now you can invoke &lt;code&gt;kubectl-ai&lt;/code&gt; as a kubectl plugin like this: &lt;code&gt;kubectl ai&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;usage&#34;&gt;Usage
&lt;/h3&gt;&lt;h4 id=&#34;using-gemini-default&#34;&gt;Using Gemini (Default)
&lt;/h4&gt;&lt;p&gt;Set your Gemini API key as an environment variable. If you don&amp;rsquo;t have a key, get one from &lt;a class=&#34;link&#34; href=&#34;https://aistudio.google.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google AI Studio&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_api_key_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use different gemini model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --model gemini-2.5-pro-exp-03-25
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use 2.5 flash (faster) model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --quiet --model gemini-2.5-flash-preview-04-17 &lt;span class=&#34;s2&#34;&gt;&amp;#34;check logs for nginx app in hello namespace&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;using-ai-models-running-locally-ollama-or-llamacpp&#34;&gt;Using AI models running locally (ollama or llama.cpp)
&lt;/h4&gt;&lt;p&gt;You can use &lt;code&gt;kubectl-ai&lt;/code&gt; with AI models running locally. &lt;code&gt;kubectl-ai&lt;/code&gt; supports &lt;a class=&#34;link&#34; href=&#34;https://ollama.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ollama&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llama.cpp&lt;/a&gt; to use the AI models running locally.&lt;/p&gt;
&lt;p&gt;An example of using Google&amp;rsquo;s &lt;code&gt;gemma3&lt;/code&gt; model with &lt;code&gt;ollama&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# assuming ollama is already running and you have pulled one of the gemma models&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ollama pull gemma3:12b-it-qat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# if your ollama server is at remote, use OLLAMA_HOST variable to specify the host&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# export OLLAMA_HOST=http://192.168.1.3:11434/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# enable-tool-use-shim because models require special prompting to enable tool calling&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider ollama --model gemma3:12b-it-qat --enable-tool-use-shim
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# you can use `models` command to discover the locally available models&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;&amp;gt; models
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;using-grok&#34;&gt;Using Grok
&lt;/h4&gt;&lt;p&gt;You can use X.AI&amp;rsquo;s Grok model by setting your X.AI API key:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GROK_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_xai_api_key_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;grok --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;grok-3-beta
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;using-azure-openai&#34;&gt;Using Azure OpenAI
&lt;/h4&gt;&lt;p&gt;You can also use Azure OpenAI deployment by setting your OpenAI API key and specifying the provider:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;AZURE_OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_azure_openai_api_key_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;AZURE_OPENAI_ENDPOINT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://your_azure_openai_endpoint_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;azopenai --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_azure_openai_deployment_name_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;openai://your_azure_openai_endpoint_here --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_azure_openai_deployment_name_here
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;using-openai&#34;&gt;Using OpenAI
&lt;/h4&gt;&lt;p&gt;You can also use OpenAI models by setting your OpenAI API key and specifying the provider:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_api_key_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;openai --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;using-openai-compatible-api&#34;&gt;Using OpenAI Compatible API
&lt;/h4&gt;&lt;p&gt;For example, you can use aliyun qwen-xxx models as follows&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_openai_api_key_here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_ENDPOINT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://dashscope.aliyuncs.com/compatible-mode/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;openai --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;qwen-plus
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Note: &lt;code&gt;kubectl-ai&lt;/code&gt; supports AI models from &lt;code&gt;gemini&lt;/code&gt;, &lt;code&gt;vertexai&lt;/code&gt;, &lt;code&gt;azopenai&lt;/code&gt;, &lt;code&gt;openai&lt;/code&gt;, &lt;code&gt;grok&lt;/code&gt; and local LLM providers such as &lt;code&gt;ollama&lt;/code&gt; and &lt;code&gt;llama.cpp&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Run interactively:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The interactive mode allows you to have a chat with &lt;code&gt;kubectl-ai&lt;/code&gt;, asking multiple questions in sequence while maintaining context from previous interactions. Simply type your queries and press Enter to receive responses. To exit the interactive shell, type &lt;code&gt;exit&lt;/code&gt; or press Ctrl+C.&lt;/p&gt;
&lt;p&gt;Or, run with a task as input:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;fetch logs for nginx app in hello namespace&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Combine it with other unix commands:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai &amp;lt; query.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# OR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;list pods in the default namespace&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; kubectl-ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;You can even combine a positional argument with stdin input. The positional argument will be used as a prefix to the stdin content:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat error.log &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; kubectl-ai &lt;span class=&#34;s2&#34;&gt;&amp;#34;explain the error&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;extras&#34;&gt;Extras
&lt;/h2&gt;&lt;p&gt;You can use the following special keywords for specific actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;model&lt;/code&gt;: Display the currently selected model.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;models&lt;/code&gt;: List all available models.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;version&lt;/code&gt;: Display the &lt;code&gt;kubectl-ai&lt;/code&gt; version.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reset&lt;/code&gt;: Clear the conversational context.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clear&lt;/code&gt;: Clear the terminal screen.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;exit&lt;/code&gt; or &lt;code&gt;quit&lt;/code&gt;: Terminate the interactive shell (Ctrl+C also works).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;invoking-as-kubectl-plugin&#34;&gt;Invoking as kubectl plugin
&lt;/h3&gt;&lt;p&gt;Use it via the &lt;code&gt;kubectl&lt;/code&gt; plug interface like this: &lt;code&gt;kubectl ai&lt;/code&gt;.  kubectl will find &lt;code&gt;kubectl-ai&lt;/code&gt; as long as it&amp;rsquo;s in your PATH.  For more information about plugins please see: &lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;examples&#34;&gt;Examples
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Get information about pods in the default namespace&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;show me all pods in the default namespace&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Create a new deployment&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;create a deployment named nginx with 3 replicas using the nginx:latest image&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Troubleshoot issues&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;double the capacity for the nginx app&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Using Azure OpenAI instead of Gemini&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;azopenai --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_azure_openai_deployment_name_here --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;scale the nginx deployment to 5 replicas&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Using OpenAI instead of Gemini&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl-ai --llm-provider&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;openai --model&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-4.1 --quiet &lt;span class=&#34;s2&#34;&gt;&amp;#34;scale the nginx deployment to 5 replicas&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The &lt;code&gt;kubectl-ai&lt;/code&gt; will process your query, execute the appropriate kubectl commands, and provide you with the results and explanations.&lt;/p&gt;
&lt;h2 id=&#34;mcp-server&#34;&gt;MCP server
&lt;/h2&gt;&lt;p&gt;You can also use &lt;code&gt;kubectl-ai&lt;/code&gt; as a MCP server that exposes &lt;code&gt;kubectl&lt;/code&gt; as one of the tools to interact with locally configured k8s environment. See &lt;a class=&#34;link&#34; href=&#34;./docs/mcp.md&#34; &gt;mcp docs&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;k8s-bench&#34;&gt;k8s-bench
&lt;/h2&gt;&lt;p&gt;kubectl-ai project includes &lt;a class=&#34;link&#34; href=&#34;./k8s-bench/README.md&#34; &gt;k8s-bench&lt;/a&gt; - a benchmark to evaluate performance of different LLM models on kubernetes related tasks. Here is a summary from our last run:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model&lt;/th&gt;
          &lt;th&gt;Success&lt;/th&gt;
          &lt;th&gt;Fail&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;gemini-2.5-flash-preview-04-17&lt;/td&gt;
          &lt;td&gt;10&lt;/td&gt;
          &lt;td&gt;0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gemini-2.5-pro-preview-03-25&lt;/td&gt;
          &lt;td&gt;10&lt;/td&gt;
          &lt;td&gt;0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gemma-3-27b-it&lt;/td&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;28&lt;/td&gt;
          &lt;td&gt;2&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See &lt;a class=&#34;link&#34; href=&#34;./k8s-bench.md&#34; &gt;full report&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&#34;start-contributing&#34;&gt;Start Contributing
&lt;/h2&gt;&lt;p&gt;We welcome contributions to &lt;code&gt;kubectl-ai&lt;/code&gt; from the community. Take a look at our
&lt;a class=&#34;link&#34; href=&#34;contributing.md&#34; &gt;contribution guide&lt;/a&gt; to get started.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Note: This is not an officially supported Google product. This project is not
eligible for the &lt;a class=&#34;link&#34; href=&#34;https://bughunters.google.com/open-source-security&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Google Open Source Software Vulnerability Rewards
Program&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>containerd</title>
        <link>https://producthunt.programnotes.cn/en/p/containerd/</link>
        <pubDate>Wed, 07 May 2025 15:29:36 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/containerd/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1678178092123-7763d2975fbc?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDY2MDI5MDd8&amp;ixlib=rb-4.1.0" alt="Featured image of post containerd" /&gt;&lt;h1 id=&#34;containerdcontainerd&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd/containerd&lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/cncf/artwork/master/projects/containerd/horizontal/color/containerd-horizontal-color.png#gh-light-mode-only&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;containerd banner light mode&#34;
	
	
&gt;
&lt;img src=&#34;https://raw.githubusercontent.com/cncf/artwork/master/projects/containerd/horizontal/white/containerd-horizontal-white.png#gh-dark-mode-only&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;containerd banner dark mode&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/github.com/containerd/containerd/v2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://pkg.go.dev/badge/github.com/containerd/containerd/v2&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PkgGoDev&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/actions?query=workflow%3ACI&amp;#43;event%3Amerge_group&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/containerd/containerd/actions/workflows/ci.yml/badge.svg?event=merge_group&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/actions?query=workflow%3ANightly&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/containerd/containerd/workflows/Nightly/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Nightlies&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://goreportcard.com/report/github.com/containerd/containerd/v2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://goreportcard.com/badge/github.com/containerd/containerd/v2&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Go Report Card&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://bestpractices.coreinfrastructure.org/projects/1271&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://bestpractices.coreinfrastructure.org/projects/1271/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;CII Best Practices&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://scorecard.dev/viewer/?uri=github.com/containerd/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://api.scorecard.dev/projects/github.com/containerd/containerd/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;OpenSSF Scorecard&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/actions/workflows/links.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/containerd/containerd/actions/workflows/links.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Check Links&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;containerd is an industry-standard container runtime with an emphasis on simplicity, robustness, and portability. It is available as a daemon for Linux and Windows, which can manage the complete container lifecycle of its host system: image transfer and storage, container execution and supervision, low-level storage and network attachments, etc.&lt;/p&gt;
&lt;p&gt;containerd is a member of CNCF with &lt;a class=&#34;link&#34; href=&#34;https://landscape.cncf.io/?selected=containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&amp;lsquo;graduated&amp;rsquo;&lt;/a&gt; status.&lt;/p&gt;
&lt;p&gt;containerd is designed to be embedded into a larger system, rather than being used directly by developers or end-users.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://producthunt.programnotes.cn/docs/historical/design/architecture.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;architecture&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;announcements&#34;&gt;Announcements
&lt;/h2&gt;&lt;h3 id=&#34;containerd-v20-is-now-released&#34;&gt;containerd v2.0 is now released!
&lt;/h3&gt;&lt;p&gt;See &lt;a class=&#34;link&#34; href=&#34;docs/containerd-2.0.md&#34; &gt;&lt;code&gt;docs/containerd-2.0.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;now-recruiting&#34;&gt;Now Recruiting
&lt;/h3&gt;&lt;p&gt;We are a large inclusive OSS project that is welcoming help of any kind shape or form:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Documentation help is needed to make the product easier to consume and extend.&lt;/li&gt;
&lt;li&gt;We need OSS community outreach/organizing help to get the word out; manage
and create messaging and educational content; and help with social media, community forums/groups, and google groups.&lt;/li&gt;
&lt;li&gt;We are actively inviting new &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project/blob/main/GOVERNANCE.md#security-advisors&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;security advisors&lt;/a&gt; to join the team.&lt;/li&gt;
&lt;li&gt;New subprojects are being created, core and non-core that could use additional development help.&lt;/li&gt;
&lt;li&gt;Each of the &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd projects&lt;/a&gt; has a list of issues currently being worked on or that need help resolving.
&lt;ul&gt;
&lt;li&gt;If the issue has not already been assigned to someone or has not made recent progress, and you are interested, please inquire.&lt;/li&gt;
&lt;li&gt;If you are interested in starting with a smaller/beginner-level issue, look for issues with an &lt;code&gt;exp/beginner&lt;/code&gt; tag, for example &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/issues?q=is%3Aissue&amp;#43;is%3Aopen&amp;#43;label%3Aexp%2Fbeginner&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd/containerd beginner issues.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting Started
&lt;/h2&gt;&lt;p&gt;See our documentation on &lt;a class=&#34;link&#34; href=&#34;https://containerd.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd.io&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/ops.md&#34; &gt;for ops and admins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/namespaces.md&#34; &gt;namespaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/client-opts.md&#34; &gt;client options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To get started contributing to containerd, see &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are interested in trying out containerd see our example at &lt;a class=&#34;link&#34; href=&#34;docs/getting-started.md&#34; &gt;Getting Started&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;nightly-builds&#34;&gt;Nightly builds
&lt;/h2&gt;&lt;p&gt;There are nightly builds available for download &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/actions?query=workflow%3ANightly&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;here&lt;/a&gt;.
Binaries are generated from &lt;code&gt;main&lt;/code&gt; branch every night for &lt;code&gt;Linux&lt;/code&gt; and &lt;code&gt;Windows&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Please be aware: nightly builds might have critical bugs, it&amp;rsquo;s not recommended for use in production and no support provided.&lt;/p&gt;
&lt;h2 id=&#34;kubernetes-k8s-ci-dashboard-group&#34;&gt;Kubernetes (k8s) CI Dashboard Group
&lt;/h2&gt;&lt;p&gt;The &lt;a class=&#34;link&#34; href=&#34;https://testgrid.k8s.io/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;k8s CI dashboard group for containerd&lt;/a&gt; contains test results regarding
the health of kubernetes when run against main and a number of containerd release branches.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://testgrid.k8s.io/containerd-periodic&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd-periodics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;runtime-requirements&#34;&gt;Runtime Requirements
&lt;/h2&gt;&lt;p&gt;Runtime requirements for containerd are very minimal. Most interactions with
the Linux and Windows container feature sets are handled via &lt;a class=&#34;link&#34; href=&#34;https://github.com/opencontainers/runc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;runc&lt;/a&gt; and/or
OS-specific libraries (e.g. &lt;a class=&#34;link&#34; href=&#34;https://github.com/Microsoft/hcsshim&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hcsshim&lt;/a&gt; for Microsoft).
The current required version of &lt;code&gt;runc&lt;/code&gt; is described in &lt;a class=&#34;link&#34; href=&#34;docs/RUNC.md&#34; &gt;RUNC.md&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are specific features
used by containerd core code and snapshotters that will require a minimum kernel
version on Linux. With the understood caveat of distro kernel versioning, a
reasonable starting point for Linux is a minimum 4.x kernel version.&lt;/p&gt;
&lt;p&gt;The overlay filesystem snapshotter, used by default, uses features that were
finalized in the 4.x kernel series. If you choose to use btrfs, there may
be more flexibility in kernel version (minimum recommended is 3.18), but will
require the btrfs kernel module and btrfs tools to be installed on your Linux
distribution.&lt;/p&gt;
&lt;p&gt;To use Linux checkpoint and restore features, you will need &lt;code&gt;criu&lt;/code&gt; installed on
your system. See more details in &lt;a class=&#34;link&#34; href=&#34;#checkpoint-and-restore&#34; &gt;Checkpoint and Restore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Build requirements for developers are listed in &lt;a class=&#34;link&#34; href=&#34;BUILDING.md&#34; &gt;BUILDING&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;supported-registries&#34;&gt;Supported Registries
&lt;/h2&gt;&lt;p&gt;Any registry which is compliant with the &lt;a class=&#34;link&#34; href=&#34;https://github.com/opencontainers/distribution-spec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OCI Distribution Specification&lt;/a&gt;
is supported by containerd.&lt;/p&gt;
&lt;p&gt;For configuring registries, see &lt;a class=&#34;link&#34; href=&#34;docs/hosts.md&#34; &gt;registry host configuration documentation&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;p&gt;For a detailed overview of containerd&amp;rsquo;s core concepts and the features it supports,
please refer to the &lt;a class=&#34;link&#34; href=&#34;./docs/features.md&#34; &gt;FEATURES.MD&lt;/a&gt; document.&lt;/p&gt;
&lt;h3 id=&#34;releases-and-api-stability&#34;&gt;Releases and API Stability
&lt;/h3&gt;&lt;p&gt;Please see &lt;a class=&#34;link&#34; href=&#34;RELEASES.md&#34; &gt;RELEASES.md&lt;/a&gt; for details on versioning and stability
of containerd components.&lt;/p&gt;
&lt;p&gt;Downloadable 64-bit Intel/AMD binaries of all official releases are available on
our &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;releases page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For other architectures and distribution support, you will find that many
Linux distributions package their own containerd and provide it across several
architectures, such as &lt;a class=&#34;link&#34; href=&#34;https://launchpad.net/ubuntu/bionic/&amp;#43;package/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Canonical&amp;rsquo;s Ubuntu packaging&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;enabling-command-auto-completion&#34;&gt;Enabling command auto-completion
&lt;/h4&gt;&lt;p&gt;Starting with containerd 1.4, the urfave client feature for auto-creation of bash and zsh
autocompletion data is enabled. To use the autocomplete feature in a bash shell for example, source
the autocomplete/ctr file in your &lt;code&gt;.bashrc&lt;/code&gt;, or manually like:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ source ./contrib/autocomplete/ctr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;distribution-of-ctr-autocomplete-for-bash-and-zsh&#34;&gt;Distribution of &lt;code&gt;ctr&lt;/code&gt; autocomplete for bash and zsh
&lt;/h4&gt;&lt;p&gt;For bash, copy the &lt;code&gt;contrib/autocomplete/ctr&lt;/code&gt; script into
&lt;code&gt;/etc/bash_completion.d/&lt;/code&gt; and rename it to &lt;code&gt;ctr&lt;/code&gt;. The &lt;code&gt;zsh_autocomplete&lt;/code&gt;
file is also available and can be used similarly for zsh users.&lt;/p&gt;
&lt;p&gt;Provide documentation to users to &lt;code&gt;source&lt;/code&gt; this file into their shell if
you don&amp;rsquo;t place the autocomplete file in a location where it is automatically
loaded for the user&amp;rsquo;s shell environment.&lt;/p&gt;
&lt;h3 id=&#34;cri&#34;&gt;CRI
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;cri&lt;/code&gt; is a &lt;a class=&#34;link&#34; href=&#34;https://containerd.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd&lt;/a&gt; plugin implementation of the Kubernetes &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/cri-api/blob/master/pkg/apis/runtime/v1/api.proto&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;container runtime interface (CRI)&lt;/a&gt;. With it, you are able to use containerd as the container runtime for a Kubernetes cluster.&lt;/p&gt;
&lt;h4 id=&#34;cri-status&#34;&gt;CRI Status
&lt;/h4&gt;&lt;p&gt;&lt;code&gt;cri&lt;/code&gt; is a native plugin of containerd. Since containerd 1.1, the cri plugin is built into the release binaries and enabled by default.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;cri&lt;/code&gt; plugin has reached GA status, representing that it is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Feature complete&lt;/li&gt;
&lt;li&gt;Works with Kubernetes 1.10 and above&lt;/li&gt;
&lt;li&gt;Passes all &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/cri-validation.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CRI validation tests&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Passes all &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;node e2e tests&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Passes all &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;e2e tests&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See results on the containerd k8s &lt;a class=&#34;link&#34; href=&#34;https://testgrid.k8s.io/containerd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;test dashboard&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;validating-your-cri-setup&#34;&gt;Validating Your &lt;code&gt;cri&lt;/code&gt; Setup
&lt;/h4&gt;&lt;p&gt;A Kubernetes incubator project, &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-sigs/cri-tools&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;cri-tools&lt;/a&gt;, includes programs for exercising CRI implementations. More importantly, cri-tools includes the program &lt;code&gt;critest&lt;/code&gt; which is used for running &lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/cri-validation.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CRI Validation Testing&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;cri-guides&#34;&gt;CRI Guides
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;contrib/ansible/README.md&#34; &gt;Installing with Ansible and Kubeadm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;docs/getting-started.md&#34; &gt;For Non-Ansible Users, Preforming a Custom Installation Using the Release Tarball and Kubeadm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;./docs/cri/testing.md&#34; &gt;CRI Plugin Testing Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;./docs/cri/crictl.md&#34; &gt;Debugging Pods, Containers, and Images with &lt;code&gt;crictl&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;./docs/cri/config.md&#34; &gt;Configuring &lt;code&gt;cri&lt;/code&gt; Plugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/containerd/blob/main/docs/man/containerd-config.8.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Configuring containerd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;communication&#34;&gt;Communication
&lt;/h3&gt;&lt;p&gt;For async communication and long-running discussions please use issues and pull requests on the GitHub repo.
This will be the best place to discuss design and implementation.&lt;/p&gt;
&lt;p&gt;For sync communication catch us in the &lt;code&gt;#containerd&lt;/code&gt; and &lt;code&gt;#containerd-dev&lt;/code&gt; Slack channels on Cloud Native Computing Foundation&amp;rsquo;s (CNCF) Slack - &lt;code&gt;cloud-native.slack.com&lt;/code&gt;. Everyone is welcome to join and chat. &lt;a class=&#34;link&#34; href=&#34;https://slack.cncf.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Get Invite to CNCF Slack.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Join our next community meeting hosted on Zoom. The schedule is posted on the &lt;a class=&#34;link&#34; href=&#34;https://www.cncf.io/calendar/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CNCF Calendar&lt;/a&gt; (search &amp;lsquo;containerd&amp;rsquo; to filter).&lt;/p&gt;
&lt;h3 id=&#34;security-audit&#34;&gt;Security audit
&lt;/h3&gt;&lt;p&gt;Security audits for the containerd project are hosted on our website. Please see the &lt;a class=&#34;link&#34; href=&#34;https://containerd.io/security/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;security page at containerd.io&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&#34;reporting-security-issues&#34;&gt;Reporting security issues
&lt;/h3&gt;&lt;p&gt;Please follow the instructions at &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project/blob/main/SECURITY.md#reporting-a-vulnerability&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;containerd/project&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;licenses&#34;&gt;Licenses
&lt;/h2&gt;&lt;p&gt;The containerd codebase is released under the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;Apache 2.0 license&lt;/a&gt;.
The README.md file and files in the &amp;ldquo;docs&amp;rdquo; folder are licensed under the
Creative Commons Attribution 4.0 International License. You may obtain a
copy of the license, titled CC-BY-4.0, at &lt;a class=&#34;link&#34; href=&#34;http://creativecommons.org/licenses/by/4.0/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://creativecommons.org/licenses/by/4.0/&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;project-details&#34;&gt;Project details
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;containerd&lt;/strong&gt; is the primary open source project within the broader containerd GitHub organization.
However, all projects within the repo have common maintainership, governance, and contributing
guidelines which are stored in a &lt;code&gt;project&lt;/code&gt; repository commonly for all containerd projects.&lt;/p&gt;
&lt;p&gt;Please find all these core project documents, including the:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project/blob/main/GOVERNANCE.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Project governance&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project/blob/main/MAINTAINERS&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Maintainers&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;and &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project/blob/main/CONTRIBUTING.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Contributing guidelines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;information in our &lt;a class=&#34;link&#34; href=&#34;https://github.com/containerd/project&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;containerd/project&lt;/code&gt;&lt;/a&gt; repository.&lt;/p&gt;
&lt;h2 id=&#34;adoption&#34;&gt;Adoption
&lt;/h2&gt;&lt;p&gt;Interested to see who is using containerd? Are you using containerd in a project?
Please add yourself via pull request to our &lt;a class=&#34;link&#34; href=&#34;./ADOPTERS.md&#34; &gt;ADOPTERS.md&lt;/a&gt; file.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>open-webui</title>
        <link>https://producthunt.programnotes.cn/en/p/open-webui/</link>
        <pubDate>Sat, 03 May 2025 15:27:20 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/open-webui/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1707417089733-500269069159?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDYyNTcxMjF8&amp;ixlib=rb-4.0.3" alt="Featured image of post open-webui" /&gt;&lt;h1 id=&#34;open-webuiopen-webui&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/open-webui/open-webui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;open-webui/open-webui&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;open-webui-&#34;&gt;Open WebUI 👋
&lt;/h1&gt;&lt;p&gt;&lt;img src=&#34;https://img.shields.io/github/stars/open-webui/open-webui?style=social&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub stars&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/forks/open-webui/open-webui?style=social&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub forks&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/watchers/open-webui/open-webui?style=social&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub watchers&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/repo-size/open-webui/open-webui&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub repo size&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/languages/count/open-webui/open-webui&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub language count&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/languages/top/open-webui/open-webui&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub top language&#34;
	
	
&gt;
&lt;img src=&#34;https://img.shields.io/github/last-commit/open-webui/open-webui?color=red&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub last commit&#34;
	
	
&gt;
&lt;img src=&#34;https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Follama-webui%2Follama-wbui&amp;amp;count_bg=%2379C83D&amp;amp;title_bg=%23555555&amp;amp;icon=&amp;amp;icon_color=%23E7E7E7&amp;amp;title=hits&amp;amp;edge_flat=false&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Hits&#34;
	
	
&gt;
&lt;a class=&#34;link&#34; href=&#34;https://discord.gg/5rJgQTnV4s&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Discord-Open_WebUI-blue?logo=discord&amp;amp;logoColor=white&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Discord&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/sponsors/tjbck&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/static/v1?label=Sponsor&amp;amp;message=%E2%9D%A4&amp;amp;logo=GitHub&amp;amp;color=%23fe8e86&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Open WebUI is an &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/features/plugin/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;extensible&lt;/a&gt;, feature-rich, and user-friendly self-hosted AI platform designed to operate entirely offline.&lt;/strong&gt; It supports various LLM runners like &lt;strong&gt;Ollama&lt;/strong&gt; and &lt;strong&gt;OpenAI-compatible APIs&lt;/strong&gt;, with &lt;strong&gt;built-in inference engine&lt;/strong&gt; for RAG, making it a &lt;strong&gt;powerful AI deployment solution&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]&lt;br&gt;
&lt;strong&gt;Looking for an &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/enterprise&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Enterprise Plan&lt;/a&gt;?&lt;/strong&gt; – &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;mailto:sales@openwebui.com&#34; &gt;Speak with Our Sales Team Today!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get &lt;strong&gt;enhanced capabilities&lt;/strong&gt;, including &lt;strong&gt;custom theming and branding&lt;/strong&gt;, &lt;strong&gt;Service Level Agreement (SLA) support&lt;/strong&gt;, &lt;strong&gt;Long-Term Support (LTS) versions&lt;/strong&gt;, and &lt;strong&gt;more!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For more information, be sure to check out our &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;key-features-of-open-webui-&#34;&gt;Key Features of Open WebUI ⭐
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🚀 &lt;strong&gt;Effortless Setup&lt;/strong&gt;: Install seamlessly using Docker or Kubernetes (kubectl, kustomize or helm) for a hassle-free experience with support for both &lt;code&gt;:ollama&lt;/code&gt; and &lt;code&gt;:cuda&lt;/code&gt; tagged images.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤝 &lt;strong&gt;Ollama/OpenAI API Integration&lt;/strong&gt;: Effortlessly integrate OpenAI-compatible APIs for versatile conversations alongside Ollama models. Customize the OpenAI API URL to link with &lt;strong&gt;LMStudio, GroqCloud, Mistral, OpenRouter, and more&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🛡️ &lt;strong&gt;Granular Permissions and User Groups&lt;/strong&gt;: By allowing administrators to create detailed user roles and permissions, we ensure a secure user environment. This granularity not only enhances security but also allows for customized user experiences, fostering a sense of ownership and responsibility amongst users.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📱 &lt;strong&gt;Responsive Design&lt;/strong&gt;: Enjoy a seamless experience across Desktop PC, Laptop, and Mobile devices.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📱 &lt;strong&gt;Progressive Web App (PWA) for Mobile&lt;/strong&gt;: Enjoy a native app-like experience on your mobile device with our PWA, providing offline access on localhost and a seamless user interface.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;✒️🔢 &lt;strong&gt;Full Markdown and LaTeX Support&lt;/strong&gt;: Elevate your LLM experience with comprehensive Markdown and LaTeX capabilities for enriched interaction.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎤📹 &lt;strong&gt;Hands-Free Voice/Video Call&lt;/strong&gt;: Experience seamless communication with integrated hands-free voice and video call features, allowing for a more dynamic and interactive chat environment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🛠️ &lt;strong&gt;Model Builder&lt;/strong&gt;: Easily create Ollama models via the Web UI. Create and add custom characters/agents, customize chat elements, and import models effortlessly through &lt;a class=&#34;link&#34; href=&#34;https://openwebui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Community&lt;/a&gt; integration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🐍 &lt;strong&gt;Native Python Function Calling Tool&lt;/strong&gt;: Enhance your LLMs with built-in code editor support in the tools workspace. Bring Your Own Function (BYOF) by simply adding your pure Python functions, enabling seamless integration with LLMs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📚 &lt;strong&gt;Local RAG Integration&lt;/strong&gt;: Dive into the future of chat interactions with groundbreaking Retrieval Augmented Generation (RAG) support. This feature seamlessly integrates document interactions into your chat experience. You can load documents directly into the chat or add files to your document library, effortlessly accessing them using the &lt;code&gt;#&lt;/code&gt; command before a query.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔍 &lt;strong&gt;Web Search for RAG&lt;/strong&gt;: Perform web searches using providers like &lt;code&gt;SearXNG&lt;/code&gt;, &lt;code&gt;Google PSE&lt;/code&gt;, &lt;code&gt;Brave Search&lt;/code&gt;, &lt;code&gt;serpstack&lt;/code&gt;, &lt;code&gt;serper&lt;/code&gt;, &lt;code&gt;Serply&lt;/code&gt;, &lt;code&gt;DuckDuckGo&lt;/code&gt;, &lt;code&gt;TavilySearch&lt;/code&gt;, &lt;code&gt;SearchApi&lt;/code&gt; and &lt;code&gt;Bing&lt;/code&gt; and inject the results directly into your chat experience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;strong&gt;Web Browsing Capability&lt;/strong&gt;: Seamlessly integrate websites into your chat experience using the &lt;code&gt;#&lt;/code&gt; command followed by a URL. This feature allows you to incorporate web content directly into your conversations, enhancing the richness and depth of your interactions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎨 &lt;strong&gt;Image Generation Integration&lt;/strong&gt;: Seamlessly incorporate image generation capabilities using options such as AUTOMATIC1111 API or ComfyUI (local), and OpenAI&amp;rsquo;s DALL-E (external), enriching your chat experience with dynamic visual content.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⚙️ &lt;strong&gt;Many Models Conversations&lt;/strong&gt;: Effortlessly engage with various models simultaneously, harnessing their unique strengths for optimal responses. Enhance your experience by leveraging a diverse set of models in parallel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔐 &lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt;: Ensure secure access with restricted permissions; only authorized individuals can access your Ollama, and exclusive model creation/pulling rights are reserved for administrators.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐🌍 &lt;strong&gt;Multilingual Support&lt;/strong&gt;: Experience Open WebUI in your preferred language with our internationalization (i18n) support. Join us in expanding our supported languages! We&amp;rsquo;re actively seeking contributors!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🧩 &lt;strong&gt;Pipelines, Open WebUI Plugin Support&lt;/strong&gt;: Seamlessly integrate custom logic and Python libraries into Open WebUI using &lt;a class=&#34;link&#34; href=&#34;https://github.com/open-webui/pipelines&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pipelines Plugin Framework&lt;/a&gt;. Launch your Pipelines instance, set the OpenAI URL to the Pipelines URL, and explore endless possibilities. &lt;a class=&#34;link&#34; href=&#34;https://github.com/open-webui/pipelines/tree/main/examples&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Examples&lt;/a&gt; include &lt;strong&gt;Function Calling&lt;/strong&gt;, User &lt;strong&gt;Rate Limiting&lt;/strong&gt; to control access, &lt;strong&gt;Usage Monitoring&lt;/strong&gt; with tools like Langfuse, &lt;strong&gt;Live Translation with LibreTranslate&lt;/strong&gt; for multilingual support, &lt;strong&gt;Toxic Message Filtering&lt;/strong&gt; and much more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌟 &lt;strong&gt;Continuous Updates&lt;/strong&gt;: We are committed to improving Open WebUI with regular updates, fixes, and new features.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Want to learn more about Open WebUI&amp;rsquo;s features? Check out our &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/features&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI documentation&lt;/a&gt; for a comprehensive overview!&lt;/p&gt;
&lt;h2 id=&#34;-also-check-out-open-webui-community&#34;&gt;🔗 Also Check Out Open WebUI Community!
&lt;/h2&gt;&lt;p&gt;Don&amp;rsquo;t forget to explore our sibling project, &lt;a class=&#34;link&#34; href=&#34;https://openwebui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Community&lt;/a&gt;, where you can discover, download, and explore customized Modelfiles. Open WebUI Community offers a wide range of exciting possibilities for enhancing your chat interactions with Open WebUI! 🚀&lt;/p&gt;
&lt;h2 id=&#34;how-to-install-&#34;&gt;How to Install 🚀
&lt;/h2&gt;&lt;h3 id=&#34;installation-via-python-pip-&#34;&gt;Installation via Python pip 🐍
&lt;/h3&gt;&lt;p&gt;Open WebUI can be installed using pip, the Python package installer. Before proceeding, ensure you&amp;rsquo;re using &lt;strong&gt;Python 3.11&lt;/strong&gt; to avoid compatibility issues.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Open WebUI&lt;/strong&gt;:
Open your terminal and run the following command to install Open WebUI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install open-webui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Running Open WebUI&lt;/strong&gt;:
After installation, you can start Open WebUI by executing:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;open-webui serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This will start the Open WebUI server, which you can access at &lt;a class=&#34;link&#34; href=&#34;http://localhost:8080&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://localhost:8080&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;quick-start-with-docker-&#34;&gt;Quick Start with Docker 🐳
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;[!NOTE]&lt;br&gt;
Please note that for certain Docker environments, additional configurations might be needed. If you encounter any connection issues, our detailed guide on &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt; is ready to assist you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
When using Docker to install Open WebUI, make sure to include the &lt;code&gt;-v open-webui:/app/backend/data&lt;/code&gt; in your Docker command. This step is crucial as it ensures your database is properly mounted and prevents any loss of data.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]&lt;br&gt;
If you wish to utilize Open WebUI with Ollama included or CUDA acceleration, we recommend utilizing our official images tagged with either &lt;code&gt;:cuda&lt;/code&gt; or &lt;code&gt;:ollama&lt;/code&gt;. To enable CUDA, you must install the &lt;a class=&#34;link&#34; href=&#34;https://docs.nvidia.com/dgx/nvidia-container-runtime-upgrade/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Nvidia CUDA container toolkit&lt;/a&gt; on your Linux/WSL system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;installation-with-default-configuration&#34;&gt;Installation with Default Configuration
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If Ollama is on your computer&lt;/strong&gt;, use this command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 --add-host&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If Ollama is on a Different Server&lt;/strong&gt;, use this command:&lt;/p&gt;
&lt;p&gt;To connect to Ollama on another server, change the &lt;code&gt;OLLAMA_BASE_URL&lt;/code&gt; to the server&amp;rsquo;s URL:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 -e &lt;span class=&#34;nv&#34;&gt;OLLAMA_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;To run Open WebUI with Nvidia GPU support&lt;/strong&gt;, use this command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 --gpus all --add-host&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installation-for-openai-api-usage-only&#34;&gt;Installation for OpenAI API Usage Only
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;If you&amp;rsquo;re only using OpenAI API&lt;/strong&gt;, use this command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 -e &lt;span class=&#34;nv&#34;&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installing-open-webui-with-bundled-ollama-support&#34;&gt;Installing Open WebUI with Bundled Ollama Support
&lt;/h3&gt;&lt;p&gt;This installation method uses a single container image that bundles Open WebUI with Ollama, allowing for a streamlined setup via a single command. Choose the appropriate command based on your hardware setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;With GPU Support&lt;/strong&gt;:
Utilize GPU resources by running the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;For CPU Only&lt;/strong&gt;:
If you&amp;rsquo;re not using a GPU, use this command instead:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both commands facilitate a built-in, hassle-free installation of both Open WebUI and Ollama, ensuring that you can get everything up and running swiftly.&lt;/p&gt;
&lt;p&gt;After installation, you can access Open WebUI at &lt;a class=&#34;link&#34; href=&#34;http://localhost:3000&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://localhost:3000&lt;/a&gt;. Enjoy! 😄&lt;/p&gt;
&lt;h3 id=&#34;other-installation-methods&#34;&gt;Other Installation Methods
&lt;/h3&gt;&lt;p&gt;We offer various installation alternatives, including non-Docker native installation methods, Docker Compose, Kustomize, and Helm. Visit our &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/getting-started/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt; or join our &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/5rJgQTnV4s&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discord community&lt;/a&gt; for comprehensive guidance.&lt;/p&gt;
&lt;h3 id=&#34;troubleshooting&#34;&gt;Troubleshooting
&lt;/h3&gt;&lt;p&gt;Encountering connection issues? Our &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/troubleshooting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt; has got you covered. For further assistance and to join our vibrant community, visit the &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/5rJgQTnV4s&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Discord&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;open-webui-server-connection-error&#34;&gt;Open WebUI: Server Connection Error
&lt;/h4&gt;&lt;p&gt;If you&amp;rsquo;re experiencing connection issues, it’s often due to the WebUI docker container not being able to reach the Ollama server at 127.0.0.1:11434 (host.docker.internal:11434) inside the container . Use the &lt;code&gt;--network=host&lt;/code&gt; flag in your docker command to resolve this. Note that the port changes from 3000 to 8080, resulting in the link: &lt;code&gt;http://localhost:8080&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example Docker Command&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d --network&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;host -v open-webui:/app/backend/data -e &lt;span class=&#34;nv&#34;&gt;OLLAMA_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;keeping-your-docker-installation-up-to-date&#34;&gt;Keeping Your Docker Installation Up-to-Date
&lt;/h3&gt;&lt;p&gt;In case you want to update your local Docker installation to the latest version, you can do it with &lt;a class=&#34;link&#34; href=&#34;https://containrrr.dev/watchtower/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Watchtower&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In the last part of the command, replace &lt;code&gt;open-webui&lt;/code&gt; with your container name if it is different.&lt;/p&gt;
&lt;p&gt;Check our Updating Guide available in our &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/getting-started/updating&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;using-the-dev-branch-&#34;&gt;Using the Dev Branch 🌙
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
The &lt;code&gt;:dev&lt;/code&gt; branch contains the latest unstable features and changes. Use it at your own risk as it may have bugs or incomplete features.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you want to try out the latest bleeding-edge features and are okay with occasional instability, you can use the &lt;code&gt;:dev&lt;/code&gt; tag like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --add-host&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;host.docker.internal:host-gateway --restart always ghcr.io/open-webui/open-webui:dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;offline-mode&#34;&gt;Offline Mode
&lt;/h3&gt;&lt;p&gt;If you are running Open WebUI in an offline environment, you can set the &lt;code&gt;HF_HUB_OFFLINE&lt;/code&gt; environment variable to &lt;code&gt;1&lt;/code&gt; to prevent attempts to download models from the internet.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;HF_HUB_OFFLINE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;whats-next-&#34;&gt;What&amp;rsquo;s Next? 🌟
&lt;/h2&gt;&lt;p&gt;Discover upcoming features on our roadmap in the &lt;a class=&#34;link&#34; href=&#34;https://docs.openwebui.com/roadmap/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;license-&#34;&gt;License 📜
&lt;/h2&gt;&lt;p&gt;This project is licensed under the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;BSD-3-Clause License&lt;/a&gt; - see the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;LICENSE&lt;/a&gt; file for details. 📄&lt;/p&gt;
&lt;h2 id=&#34;support-&#34;&gt;Support 💬
&lt;/h2&gt;&lt;p&gt;If you have any questions, suggestions, or need assistance, please open an issue or join our
&lt;a class=&#34;link&#34; href=&#34;https://discord.gg/5rJgQTnV4s&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Open WebUI Discord community&lt;/a&gt; to connect with us! 🤝&lt;/p&gt;
&lt;h2 id=&#34;star-history&#34;&gt;Star History
&lt;/h2&gt;&lt;a href=&#34;https://star-history.com/#open-webui/open-webui&amp;Date&#34;&gt;
  &lt;picture&gt;
    &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/svg?repos=open-webui/open-webui&amp;type=Date&amp;theme=dark&#34; /&gt;
    &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/svg?repos=open-webui/open-webui&amp;type=Date&#34; /&gt;
    &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/svg?repos=open-webui/open-webui&amp;type=Date&#34; /&gt;
  &lt;/picture&gt;
&lt;/a&gt;
&lt;hr&gt;
&lt;p&gt;Created by &lt;a class=&#34;link&#34; href=&#34;https://github.com/tjbck&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Timothy Jaeryang Baek&lt;/a&gt; - Let&amp;rsquo;s make Open WebUI even more amazing together! 💪&lt;/p&gt;
</description>
        </item>
        <item>
        <title>skypilot</title>
        <link>https://producthunt.programnotes.cn/en/p/skypilot/</link>
        <pubDate>Sun, 27 Apr 2025 15:27:09 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/skypilot/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1696448022220-4d357587ddac?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDU3Mzg2ODJ8&amp;ixlib=rb-4.0.3" alt="Featured image of post skypilot" /&gt;&lt;h1 id=&#34;skypilot-orgskypilot&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/skypilot-org/skypilot&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;skypilot-org/skypilot&lt;/a&gt;
&lt;/h1&gt;&lt;p align=&#34;center&#34;&gt;
  &lt;picture&gt;
    &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-dark-1k.png&#34;&gt;
    &lt;img alt=&#34;SkyPilot&#34; src=&#34;https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-light-1k.png&#34; width=55%&gt;
  &lt;/picture&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://docs.skypilot.co/&#34;&gt;
    &lt;img alt=&#34;Documentation&#34; src=&#34;https://img.shields.io/badge/docs-gray?logo=readthedocs&amp;logoColor=f5f5f5&#34;&gt;
  &lt;/a&gt;
  &lt;a href=&#34;https://github.com/skypilot-org/skypilot/releases&#34;&gt;
    &lt;img alt=&#34;GitHub Release&#34; src=&#34;https://img.shields.io/github/release/skypilot-org/skypilot.svg&#34;&gt;
  &lt;/a&gt;
  &lt;a href=&#34;http://slack.skypilot.co&#34;&gt;
    &lt;img alt=&#34;Join Slack&#34; src=&#34;https://img.shields.io/badge/SkyPilot-Join%20Slack-blue?logo=slack&#34;&gt;
  &lt;/a&gt;
  &lt;a href=&#34;https://github.com/skypilot-org/skypilot/releases&#34;&gt;
    &lt;img alt=&#34;Downloads&#34; src=&#34;https://img.shields.io/pypi/dm/skypilot&#34;&gt;
  &lt;/a&gt;
&lt;/p&gt;
&lt;h3 align=&#34;center&#34;&gt;
    Run AI on Any Infra — Unified, Faster, Cheaper
&lt;/h3&gt;
&lt;hr&gt;
&lt;p&gt;:fire: &lt;em&gt;News&lt;/em&gt; :fire:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Mar 2025] Run and serve &lt;strong&gt;Google Gemma 3&lt;/strong&gt; using SkyPilot &lt;a class=&#34;link&#34; href=&#34;./llm/gemma3/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Feb 2025] Prepare and serve &lt;strong&gt;Retrieval Augmented Generation (RAG) with DeepSeek-R1&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/deepseek-rag&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;blog post&lt;/strong&gt;&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;./llm/rag/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Feb 2025] Run and serve &lt;strong&gt;DeepSeek-R1 671B&lt;/strong&gt; using SkyPilot and SGLang with high throughput: &lt;a class=&#34;link&#34; href=&#34;./llm/deepseek-r1/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Feb 2025] Prepare and serve large-scale image search with &lt;strong&gt;vector databases&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/large-scale-vector-database/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;blog post&lt;/strong&gt;&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;./examples/vector_database/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Jan 2025] Launch and serve distilled models from &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/deepseek-ai/DeepSeek-R1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-R1&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/deepseek-ai/DeepSeek-Janus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Janus&lt;/a&gt;&lt;/strong&gt; on Kubernetes or any cloud: &lt;a class=&#34;link&#34; href=&#34;./llm/deepseek-r1-distilled/&#34; &gt;&lt;strong&gt;R1 example&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;./llm/deepseek-janus/&#34; &gt;&lt;strong&gt;Janus example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Oct 2024] :tada: &lt;strong&gt;SkyPilot crossed 1M+ downloads&lt;/strong&gt; :tada:: Thank you to our community! &lt;a class=&#34;link&#34; href=&#34;https://x.com/skypilot_org/status/1844770841718067638&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Twitter/X&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Sep 2024] Point, launch and serve &lt;strong&gt;Llama 3.2&lt;/strong&gt; on Kubernetes or any cloud: &lt;a class=&#34;link&#34; href=&#34;./llm/llama-3_2/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Sep 2024] Run and deploy &lt;a class=&#34;link&#34; href=&#34;./llm/pixtral&#34; &gt;&lt;strong&gt;Pixtral&lt;/strong&gt;&lt;/a&gt;, the first open-source multimodal model from Mistral AI.&lt;/li&gt;
&lt;li&gt;[Jun 2024] Reproduce &lt;strong&gt;GPT&lt;/strong&gt; with &lt;a class=&#34;link&#34; href=&#34;https://github.com/karpathy/llm.c/discussions/481&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;llm.c&lt;/a&gt; on any cloud: &lt;a class=&#34;link&#34; href=&#34;./llm/gpt-2/&#34; &gt;&lt;strong&gt;guide&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Apr 2024] Serve &lt;a class=&#34;link&#34; href=&#34;https://qwenlm.github.io/blog/qwen1.5-110b/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Qwen-110B&lt;/strong&gt;&lt;/a&gt; on your infra: &lt;a class=&#34;link&#34; href=&#34;./llm/qwen/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Apr 2024] Host &lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Ollama&lt;/strong&gt;&lt;/a&gt; on the cloud to deploy LLMs on CPUs and GPUs: &lt;a class=&#34;link&#34; href=&#34;./llm/ollama/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;LLM Finetuning Cookbooks&lt;/strong&gt;: Finetuning Llama 2 / Llama 3.1 in your own cloud environment, privately: Llama 2 &lt;a class=&#34;link&#34; href=&#34;./llm/vicuna-llama-2/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/finetuning-llama2-operational-guide/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/a&gt;; Llama 3.1 &lt;a class=&#34;link&#34; href=&#34;./llm/llama-3_1-finetuning/&#34; &gt;&lt;strong&gt;example&lt;/strong&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/finetune-llama-3_1-on-your-infra/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;SkyPilot is an open-source framework for running AI and batch workloads on any infra.&lt;/p&gt;
&lt;p&gt;SkyPilot &lt;strong&gt;is easy to use for AI users&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quickly spin up compute on your own infra&lt;/li&gt;
&lt;li&gt;Environment and job as code — simple and portable&lt;/li&gt;
&lt;li&gt;Easy job management: queue, run, and auto-recover many jobs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyPilot &lt;strong&gt;unifies multiple clusters, clouds, and hardware&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One interface to use reserved GPUs, Kubernetes clusters, or 16+ clouds&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/auto-failover.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Flexible provisioning&lt;/a&gt; of GPUs, TPUs, CPUs, with auto-retry&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/reference/api-server/api-server.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Team deployment&lt;/a&gt; and resource sharing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyPilot &lt;strong&gt;cuts your cloud costs &amp;amp; maximizes GPU availability&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Autostop: automatic cleanup of idle resources&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/managed-jobs.html#running-on-spot-instances&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Spot instance support&lt;/a&gt;: 3-6x cost savings, with preemption auto-recovery&lt;/li&gt;
&lt;li&gt;Intelligent scheduling: automatically run on the cheapest &amp;amp; most available infra&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code changes.&lt;/p&gt;
&lt;p&gt;Install with pip:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Choose your clouds:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -U &lt;span class=&#34;s2&#34;&gt;&amp;#34;skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To get the latest features and fixes, use the nightly build or &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/getting-started/installation.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;install from source&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Choose your clouds:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install &lt;span class=&#34;s2&#34;&gt;&amp;#34;skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;docs/source/_static/intro.gif&#34; alt=&#34;SkyPilot&#34;&gt;
&lt;/p&gt;
&lt;p&gt;Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
VMware vSphere, Nebius.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;picture&gt;
    &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-dark.png&#34;&gt;
    &lt;img alt=&#34;SkyPilot&#34; src=&#34;https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png&#34; width=85%&gt;
  &lt;/picture&gt;
&lt;/p&gt;
&lt;!-- source xcf file: https://drive.google.com/drive/folders/1S_acjRsAD3T14qMeEnf6FFrIwHu_Gs_f?usp=drive_link --&gt;
&lt;h2 id=&#34;getting-started&#34;&gt;Getting started
&lt;/h2&gt;&lt;p&gt;You can find our documentation &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/getting-started/installation.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/getting-started/quickstart.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/reference/cli.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CLI reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skypilot-in-1-minute&#34;&gt;SkyPilot in 1 minute
&lt;/h2&gt;&lt;p&gt;A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.&lt;/p&gt;
&lt;p&gt;Once written in this &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/reference/yaml-spec.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;unified interface&lt;/strong&gt;&lt;/a&gt; (YAML or Python API), the task can be launched on any available cloud.  This avoids vendor lock-in, and allows easily moving jobs to a different provider.&lt;/p&gt;
&lt;p&gt;Paste the following into a file &lt;code&gt;my_task.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;resources&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;accelerators&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;A100:8 &lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 8x NVIDIA A100 GPU&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;num_nodes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Number of VMs to launch&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Working directory (optional) containing the project codebase.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Its contents are synced to ~/sky_workdir/ on the cluster.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;workdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;~/torch_examples&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Commands to be run before executing the job.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Typical use: pip install -r requirements.txt, git clone, etc.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;setup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;  pip install &amp;#34;torch&amp;lt;2.2&amp;#34; torchvision --index-url https://download.pytorch.org/whl/cu121&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Commands to run as a job.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Typical use: launch the main program.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;sd&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;  cd mnist
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sd&#34;&gt;  python main.py --epochs 1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Prepare the workdir by cloning:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/pytorch/examples.git ~/torch_examples
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Launch with &lt;code&gt;sky launch&lt;/code&gt; (note: &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/cloud-setup/quota.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;access to GPU instances&lt;/a&gt; is needed for this example):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sky launch my_task.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;SkyPilot then performs the heavy-lifting for you, including:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find the lowest priced VM instance type across different clouds&lt;/li&gt;
&lt;li&gt;Provision the VM, with auto-failover if the cloud returned capacity errors&lt;/li&gt;
&lt;li&gt;Sync the local &lt;code&gt;workdir&lt;/code&gt; to the VM&lt;/li&gt;
&lt;li&gt;Run the task&amp;rsquo;s &lt;code&gt;setup&lt;/code&gt; commands to prepare the VM for running the task&lt;/li&gt;
&lt;li&gt;Run the task&amp;rsquo;s &lt;code&gt;run&lt;/code&gt; commands&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/getting-started/quickstart.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quickstart&lt;/a&gt; to get started with SkyPilot.&lt;/p&gt;
&lt;h2 id=&#34;runnable-examples&#34;&gt;Runnable examples
&lt;/h2&gt;&lt;p&gt;See &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/docs-examples/examples/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;SkyPilot examples&lt;/strong&gt;&lt;/a&gt; that cover: development, training, serving, LLM models, AI apps, and common frameworks.&lt;/p&gt;
&lt;p&gt;Latest featured examples:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Task&lt;/th&gt;
          &lt;th&gt;Examples&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Training&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/getting-started/tutorial.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;PyTorch&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/deepspeed.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSpeed&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/llama-3_1-finetuning.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Finetune Llama 3&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/nemo.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NeMo&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/ray.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ray&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/unsloth.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Unsloth&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/training/tpu.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Jax/TPU&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Serving&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/serving/vllm.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vLLM&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/serving/sglang.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SGLang&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/serving/ollama.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ollama&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Models&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-R1&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/models/llama-3.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Llama 3&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/models/codellama.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CodeLlama&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/models/qwen.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Qwen&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/models/mixtral.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Mixtral&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AI apps&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/applications/rag.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RAG&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/applications/vector_database.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vector databases&lt;/a&gt; (ChromaDB, CLIP)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Common frameworks&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Airflow&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Jupyter&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Source files and more examples can be found in &lt;a class=&#34;link&#34; href=&#34;https://github.com/skypilot-org/skypilot/tree/master/llm&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;llm/&lt;/code&gt;&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://github.com/skypilot-org/skypilot/tree/master/examples&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;examples/&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;more-information&#34;&gt;More information
&lt;/h2&gt;&lt;p&gt;To learn more, see &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/overview.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot Overview&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot docs&lt;/a&gt;, and &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Case studies and integrations: &lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/community/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Community Spotlights&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Follow updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;http://slack.skypilot.co&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Slack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://twitter.com/skypilot_org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;X / Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.linkedin.com/company/skypilot-oss/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot Blog&lt;/a&gt; (&lt;a class=&#34;link&#34; href=&#34;https://blog.skypilot.co/introducing-skypilot/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Introductory blog post&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read the research:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.usenix.org/system/files/nsdi23-yang-zongheng.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot paper&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;https://www.usenix.org/conference/nsdi23/presentation/yang-zongheng&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;talk&lt;/a&gt; (NSDI 2023)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2205.07147&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sky Computing whitepaper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s02-stoica.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sky Computing vision paper&lt;/a&gt; (HotOS 2021)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/pdf/2411.01438&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyServe: AI serving across regions and clouds&lt;/a&gt; (EuroSys 2025)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.usenix.org/conference/nsdi24/presentation/wu-zhanghao&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Managed jobs spot instance policy&lt;/a&gt;  (NSDI 2024)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyPilot was initially started at the &lt;a class=&#34;link&#34; href=&#34;https://sky.cs.berkeley.edu&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sky Computing Lab&lt;/a&gt; at UC Berkeley and has since gained many industry contributors. To read about the project&amp;rsquo;s origin and vision, see &lt;a class=&#34;link&#34; href=&#34;https://docs.skypilot.co/en/latest/sky-computing.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Concept: Sky Computing&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;questions-and-feedback&#34;&gt;Questions and feedback
&lt;/h2&gt;&lt;p&gt;We are excited to hear your feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For issues and feature requests, please &lt;a class=&#34;link&#34; href=&#34;https://github.com/skypilot-org/skypilot/issues/new&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;open a GitHub issue&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For questions, please use &lt;a class=&#34;link&#34; href=&#34;https://github.com/skypilot-org/skypilot/discussions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Discussions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For general discussions, join us on the &lt;a class=&#34;link&#34; href=&#34;http://slack.skypilot.co&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;SkyPilot Slack&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;We welcome all contributions to the project! See &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING&lt;/a&gt; for how to get involved.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>jumpserver</title>
        <link>https://producthunt.programnotes.cn/en/p/jumpserver/</link>
        <pubDate>Tue, 22 Apr 2025 15:29:56 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/jumpserver/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1683817580104-57bcb2eca608?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDUzMDY4ODB8&amp;ixlib=rb-4.0.3" alt="Featured image of post jumpserver" /&gt;&lt;h1 id=&#34;jumpserverjumpserver&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/jumpserver&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;jumpserver/jumpserver&lt;/a&gt;
&lt;/h1&gt;&lt;div align=&#34;center&#34;&gt;
  &lt;a name=&#34;readme-top&#34;&gt;&lt;/a&gt;
  &lt;a href=&#34;https://jumpserver.com&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://download.jumpserver.org/images/jumpserver-logo.svg&#34; alt=&#34;JumpServer&#34; width=&#34;300&#34; /&gt;&lt;/a&gt;
&lt;h2 id=&#34;an-open-source-pam-tool-bastion-host&#34;&gt;An open-source PAM tool (Bastion Host)
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.gnu.org/licenses/gpl-3.0.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/license/jumpserver/jumpserver&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://discord.com/invite/W6vYXmAQG2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/discord/1194233267294052363?style=flat&amp;amp;logo=discord&amp;amp;logoColor=%23f5f5f5&amp;amp;labelColor=%235462eb&amp;amp;color=%235462eb&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/u/jumpserver&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/docker/pulls/jumpserver/jms_all.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/jumpserver/releases/latest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/v/release/jumpserver/jumpserver&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/jumpserver&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/stars/jumpserver/jumpserver?color=%231890FF&amp;amp;style=flat-square&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/README.md&#34; &gt;English&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.zh-hans.md&#34; &gt;中文(简体)&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.zh-hant.md&#34; &gt;中文(繁體)&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.ja.md&#34; &gt;日本語&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.pt-br.md&#34; &gt;Português (Brasil)&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.es.md&#34; &gt;Español&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/readmes/README.ru.md&#34; &gt;Русский&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br/&gt;
&lt;h2 id=&#34;what-is-jumpserver&#34;&gt;What is JumpServer?
&lt;/h2&gt;&lt;p&gt;JumpServer is an open-source Privileged Access Management (PAM) tool that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.&lt;/p&gt;
&lt;picture&gt;
  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://github.com/user-attachments/assets/dd612f3d-c958-4f84-b164-f31b75454d7f&#34;&gt;
  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://github.com/user-attachments/assets/28676212-2bc4-4a9f-ae10-3be9320647e3&#34;&gt;
  &lt;img src=&#34;https://github.com/user-attachments/assets/dd612f3d-c958-4f84-b164-f31b75454d7f&#34; alt=&#34;Theme-based Image&#34;&gt;
&lt;/picture&gt;
&lt;h2 id=&#34;quickstart&#34;&gt;Quickstart
&lt;/h2&gt;&lt;p&gt;Prepare a clean Linux Server ( 64 bit, &amp;gt;= 4c8g )&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Access JumpServer in your browser at &lt;code&gt;http://your-jumpserver-ip/&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Username: &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;ChangeMe&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/watch?v=UlGYRbKrpgY&#34;  title=&#34;JumpServer Quickstart&#34;
     target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/user-attachments/assets/0f32f52b-9935-485e-8534-336c63389612&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;JumpServer Quickstart&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;screenshots&#34;&gt;Screenshots
&lt;/h2&gt;&lt;table style=&#34;border-collapse: collapse; border: 1px solid black;&#34;&gt;
  &lt;tr&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/99fabe5b-0475-4a53-9116-4c370a1426c4&#34; alt=&#34;JumpServer Console&#34;   /&gt;&lt;/td&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/user-attachments/assets/7c1f81af-37e8-4f07-8ac9-182895e1062e&#34; alt=&#34;JumpServer PAM&#34;   /&gt;&lt;/td&gt;    
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/a424d731-1c70-4108-a7d8-5bbf387dda9a&#34; alt=&#34;JumpServer Audits&#34;   /&gt;&lt;/td&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/393d2c27-a2d0-4dea-882d-00ed509e00c9&#34; alt=&#34;JumpServer Workbench&#34;   /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/user-attachments/assets/eaa41f66-8cc8-4f01-a001-0d258501f1c9&#34; alt=&#34;JumpServer RBAC&#34;   /&gt;&lt;/td&gt;     
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/3a2611cd-8902-49b8-b82b-2a6dac851f3e&#34; alt=&#34;JumpServer Settings&#34;   /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/1e236093-31f7-4563-8eb1-e36d865f1568&#34; alt=&#34;JumpServer SSH&#34;   /&gt;&lt;/td&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/69373a82-f7ab-41e8-b763-bbad2ba52167&#34; alt=&#34;JumpServer RDP&#34;   /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/5bed98c6-cbe8-4073-9597-d53c69dc3957&#34; alt=&#34;JumpServer K8s&#34;   /&gt;&lt;/td&gt;
    &lt;td style=&#34;padding: 5px;background-color:#fff;&#34;&gt;&lt;img src= &#34;https://github.com/jumpserver/jumpserver/assets/32935519/b80ad654-548f-42bc-ba3d-c1cfdf1b46d6&#34; alt=&#34;JumpServer DB&#34;   /&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;components&#34;&gt;Components
&lt;/h2&gt;&lt;p&gt;JumpServer consists of multiple key components, which collectively form the functional framework of JumpServer, providing users with comprehensive capabilities for operations management and security control.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Project&lt;/th&gt;
          &lt;th&gt;Status&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/lina&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lina&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/jumpserver/lina/releases&#34;&gt;&lt;img alt=&#34;Lina release&#34; src=&#34;https://img.shields.io/github/release/jumpserver/lina.svg&#34; /&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Web UI&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/luna&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Luna&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/jumpserver/luna/releases&#34;&gt;&lt;img alt=&#34;Luna release&#34; src=&#34;https://img.shields.io/github/release/jumpserver/luna.svg&#34; /&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Web Terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/koko&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KoKo&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/jumpserver/koko/releases&#34;&gt;&lt;img alt=&#34;Koko release&#34; src=&#34;https://img.shields.io/github/release/jumpserver/koko.svg&#34; /&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Character Protocol Connector&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/lion&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lion&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/jumpserver/lion/releases&#34;&gt;&lt;img alt=&#34;Lion release&#34; src=&#34;https://img.shields.io/github/release/jumpserver/lion.svg&#34; /&gt;&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Graphical Protocol Connector&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/chen&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Chen&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://github.com/jumpserver/chen/releases&#34;&gt;&lt;img alt=&#34;Chen release&#34; src=&#34;https://img.shields.io/github/release/jumpserver/chen.svg&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Web DB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/tinker&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tinker&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Tinker&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer Remote Application Connector (Windows)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/Panda&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Panda&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Panda&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer EE Remote Application Connector (Linux)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/razor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Razor&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Chen&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer EE RDP Proxy Connector&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/magnus&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Magnus&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Magnus&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer EE Database Proxy Connector&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/nec&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Nec&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Nec&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer EE VNC Proxy Connector&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/facelive&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Facelive&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;img alt=&#34;Facelive&#34; src=&#34;https://img.shields.io/badge/release-private-red&#34; /&gt;&lt;/td&gt;
          &lt;td&gt;JumpServer EE Facial Recognition&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;Welcome to submit PR to contribute. Please refer to &lt;a class=&#34;link&#34; href=&#34;https://github.com/jumpserver/jumpserver/blob/dev/CONTRIBUTING.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CONTRIBUTING.md&lt;/a&gt; for guidelines.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;Copyright (c) 2014-2025 FIT2CLOUD, All rights reserved.&lt;/p&gt;
&lt;p&gt;Licensed under The GNU General Public License version 3 (GPLv3) (the &amp;ldquo;License&amp;rdquo;); you may not use this file except in compliance with the License. You may obtain a copy of the License at&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.gnu.org/licenses/gpl-3.0.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.gnu.org/licenses/gpl-3.0.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &amp;quot; AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.&lt;/p&gt;
&lt;!-- JumpServer official link --&gt;
&lt;!-- JumpServer Other link--&gt;
&lt;!-- Shield link--&gt;
</description>
        </item>
        <item>
        <title>gofr</title>
        <link>https://producthunt.programnotes.cn/en/p/gofr/</link>
        <pubDate>Wed, 16 Apr 2025 15:29:42 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/gofr/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1603736186753-fc8933a905a1?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDQ3ODg0NTh8&amp;ixlib=rb-4.0.3" alt="Featured image of post gofr" /&gt;&lt;h1 id=&#34;gofr-devgofr&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/gofr-dev/gofr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gofr-dev/gofr&lt;/a&gt;
&lt;/h1&gt;&lt;h1 style=&#34;text-align: center; font-size: 100px; font-weight: 500;&#34;&gt;
    &lt;i&gt;Go&lt;/i&gt;Fr
&lt;/h1&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img align=&#34;center&#34; width=&#34;300&#34; alt=&#34;logo&#34; src=&#34;https://github.com/gofr-dev/gofr/assets/44036979/916fe7b1-42fb-4af1-9e0b-4a7a064c243c&#34;&gt;
&lt;/p&gt;
&lt;h2 align=&#34;center&#34; style=&#34;font-size: 28px;&#34;&gt;&lt;b&gt;GoFr: An Opinionated Microservice Development Framework&lt;/b&gt;&lt;/h2&gt;
&lt;div align=&#34;center&#34;&gt;
&lt;a href=&#34;https://pkg.go.dev/gofr.dev&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/GoDoc-Read%20Documentation-blue?style=for-the-badge&#34; alt=&#34;godoc&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://gofr.dev/docs&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/GoFr-Docs-orange?style=for-the-badge&#34; alt=&#34;gofr-docs&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://codeclimate.com/github/gofr-dev/gofr/maintainability&#34;&gt;&lt;img src=&#34;https://img.shields.io/codeclimate/maintainability/gofr-dev/gofr?style=for-the-badge&#34; alt=&#34;maintainability&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://codeclimate.com/github/gofr-dev/gofr/test_coverage&#34;&gt;&lt;img src=&#34;https://img.shields.io/codeclimate/coverage/gofr-dev/gofr?style=for-the-badge&#34; alt=&#34;test-coverage&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://goreportcard.com/report/gofr.dev&#34;&gt;&lt;img src=&#34;https://goreportcard.com/badge/gofr.dev?style=for-the-badge&#34; alt=&#34;Go Report Card&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://opensource.org/licenses/Apache-2.0&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/License-Apache_2.0-blue?style=for-the-badge&#34; alt=&#34;Apache 2.0 License&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://discord.gg/wsaSkQTdgq&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/discord-join-us?style=for-the-badge&amp;logo=discord&amp;color=7289DA&#34; alt=&#34;discord&#34; /&gt;&lt;/a&gt;
&lt;a href=&#34;https://gurubase.io/g/gofr&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/Gurubase-Ask%20GoFr%20Guru-006BFF?style=for-the-badge&#34; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;h2 align=&#34;center&#34;&gt;Listed in the &lt;a href=&#34;https://landscape.cncf.io/?selected=go-fr&#34;&gt;CNCF Landscape&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&#34;-goal&#34;&gt;🎯 &lt;strong&gt;Goal&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;GoFr is designed to &lt;strong&gt;simplify microservice development&lt;/strong&gt;, with key focuses on &lt;strong&gt;Kubernetes deployment&lt;/strong&gt; and &lt;strong&gt;out-of-the-box observability&lt;/strong&gt;. While capable of building generic applications, &lt;strong&gt;microservices&lt;/strong&gt; remain at its core.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-key-features&#34;&gt;💡 &lt;strong&gt;Key Features&lt;/strong&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Simple API Syntax&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REST Standards by Default&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/quick-start/observability&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Observability&lt;/a&gt;&lt;/strong&gt; (Logs, Traces, Metrics)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inbuilt &lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/http-authentication&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Auth Middleware&lt;/a&gt;&lt;/strong&gt; &amp;amp; Custom Middleware Support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/grpc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;gRPC Support&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/http-communication&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HTTP Service&lt;/a&gt;&lt;/strong&gt; with Circuit Breaker Support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/using-publisher-subscriber&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pub/Sub&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/monitoring-service-health&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Health Check&lt;/a&gt;&lt;/strong&gt; for All Datasources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/handling-data-migrations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Database Migration&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/using-cron&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cron Jobs&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for &lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/remote-log-level-change&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Changing Log Level&lt;/a&gt; Without Restarting&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/swagger-documentation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Swagger Rendering&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/handling-file&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Abstracted File Systems&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs/advanced-guide/handling-file&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Websockets&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-getting-started&#34;&gt;🚀 &lt;strong&gt;Getting Started&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id=&#34;prerequisites&#34;&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;GoFr requires &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://go.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Go&lt;/a&gt;&lt;/strong&gt; version &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://go.dev/doc/devel/release#go1.21.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;1.21&lt;/a&gt;&lt;/strong&gt; or above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installation&#34;&gt;&lt;strong&gt;Installation&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;To get started with GoFr, add the following import to your code and use Go’s module support to automatically fetch dependencies:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;gofr.dev/pkg/gofr&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Alternatively, use the command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go get -u gofr.dev/pkg/gofr
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;-running-gofr&#34;&gt;🏃 &lt;strong&gt;Running GoFr&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Here&amp;rsquo;s a simple example to get a GoFr application up and running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;gofr.dev/pkg/gofr&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;app&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;gofr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;New&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;app&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;GET&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/greet&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ctx&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;gofr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;any&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;		&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Hello World!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;app&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// listens and serves on localhost:8000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To run this code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go run main.go
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Visit &lt;a class=&#34;link&#34; href=&#34;http://localhost:8000/greet&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;localhost:8000/greet&lt;/code&gt;&lt;/a&gt; to see the result.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-more-examples&#34;&gt;📂 &lt;strong&gt;More Examples&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Explore a variety of ready-to-run examples in the &lt;a class=&#34;link&#34; href=&#34;https://github.com/gofr-dev/gofr/tree/development/examples&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GoFr examples directory&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-documentation&#34;&gt;👩‍💻 &lt;strong&gt;Documentation&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://pkg.go.dev/gofr.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GoDoc&lt;/a&gt;&lt;/strong&gt;: Official API documentation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://gofr.dev/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GoFr Documentation&lt;/a&gt;&lt;/strong&gt;: Comprehensive guides and resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-contribute&#34;&gt;👍 &lt;strong&gt;Contribute&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Help us make GoFr even better:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Star&lt;/strong&gt; this repo on GitHub! 🌟&lt;/li&gt;
&lt;li&gt;Write a review or tutorial on &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://medium.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Medium&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://dev.to/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Dev.to&lt;/a&gt;&lt;/strong&gt;, or your blog.&lt;/li&gt;
&lt;li&gt;Review the &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt;&lt;/strong&gt; guide to learn how to contribute to the project.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-secure-cloning&#34;&gt;🔒 &lt;strong&gt;Secure Cloning&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;To securely clone the GoFr repository, you can use HTTPS or SSH:&lt;/p&gt;
&lt;h3 id=&#34;cloning-with-https&#34;&gt;Cloning with HTTPS
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/gofr-dev/gofr.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;cloning-with-ssh&#34;&gt;Cloning with SSH
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone git@github.com:gofr-dev/gofr.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;-get-a-gofr-t-shirt--stickers&#34;&gt;🎁 &lt;strong&gt;Get a GoFr T-Shirt &amp;amp; Stickers!&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;If your PR is merged, or if you contribute by writing articles or promoting GoFr, we invite you to fill out &lt;a class=&#34;link&#34; href=&#34;https://forms.gle/R1Yz7ZzY3U5WWTgy5&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;this form&lt;/a&gt; to claim your GoFr merchandise as a token of our appreciation!&lt;/p&gt;
&lt;h3 id=&#34;partners&#34;&gt;Partners
&lt;/h3&gt;&lt;img src=&#34;https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.png&#34; alt=&#34;JetBrains logo&#34; width=&#34;200&#34;&gt;
</description>
        </item>
        <item>
        <title>headlamp</title>
        <link>https://producthunt.programnotes.cn/en/p/headlamp/</link>
        <pubDate>Sun, 06 Apr 2025 15:25:35 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/headlamp/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1735822081174-c919b99e8623?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDM5MjQyODJ8&amp;ixlib=rb-4.0.3" alt="Featured image of post headlamp" /&gt;&lt;h1 id=&#34;kubernetes-sigsheadlamp&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/kubernetes-sigs/headlamp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kubernetes-sigs/headlamp&lt;/a&gt;
&lt;/h1&gt;&lt;h1&gt;
  &lt;picture&gt;
    &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;frontend/src/resources/logo-light.svg&#34;&gt;
    &lt;img src=&#34;frontend/src/resources/logo-dark.svg&#34; alt=&#34;Headlamp&#34;&gt;
  &lt;/picture&gt;
&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTICE:&lt;/strong&gt; We have recently moved the project under the Kubernetes SIG UI (and the repo under the &lt;em&gt;kubernetes-sigs&lt;/em&gt; org). Container images are still at &lt;a class=&#34;link&#34; href=&#34;https://github.com/orgs/headlamp-k8s/packages&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ghcr.io&lt;/a&gt;. Please bear with us while we may experience some broken links.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.bestpractices.dev/projects/7551&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://www.bestpractices.dev/projects/7551/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;OpenSSF Best Practices&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://scorecard.dev/viewer/?uri=github.com/headlamp-k8s/headlamp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://api.scorecard.dev/projects/github.com/headlamp-k8s/headlamp/badge&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;OpenSSF Scorecard&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://app.fossa.com/projects/git%2Bgithub.com%2Fheadlamp-k8s%2Fheadlamp?ref=badge_shield&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://app.fossa.com/api/projects/git%2Bgithub.com%2Fheadlamp-k8s%2Fheadlamp.svg?type=shield&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FOSSA Status&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Headlamp is an easy-to-use and extensible Kubernetes web UI.&lt;/p&gt;
&lt;p&gt;Headlamp was created to blend the traditional feature set of other web UIs/dashboards
(i.e., to list and view resources) with added functionality.&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
  &lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/videos/headlamp_quick_run.gif&#34; width=&#34;80%&#34;&gt;
&lt;/div&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Vendor-independent / generic Kubernetes UI&lt;/li&gt;
&lt;li&gt;Works in-cluster, or locally as a desktop app&lt;/li&gt;
&lt;li&gt;Multi-cluster&lt;/li&gt;
&lt;li&gt;Extensible through plugins&lt;/li&gt;
&lt;li&gt;UI controls reflecting user roles (no deletion/update if not allowed)&lt;/li&gt;
&lt;li&gt;Clean &amp;amp; modern UI&lt;/li&gt;
&lt;li&gt;Cancellable creation/update/deletion operations&lt;/li&gt;
&lt;li&gt;Logs, exec, and resource editor with documentation&lt;/li&gt;
&lt;li&gt;Read-write / interactive (actions based on permissions)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;screenshots&#34;&gt;Screenshots
&lt;/h2&gt;&lt;table&gt;
    &lt;tr&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/home.png&#34;&gt;&lt;/td&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/cluster_chooser.png&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/workloads.png&#34;&gt;&lt;/td&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/resource_edition.png&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/logs.png&#34;&gt;&lt;/td&gt;
        &lt;td width=&#34;33%&#34;&gt;&lt;img src=&#34;https://raw.githubusercontent.com/headlamp-k8s/headlamp/screenshots/screenshots/terminal.png&#34;&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id=&#34;quickstart&#34;&gt;Quickstart
&lt;/h2&gt;&lt;p&gt;If you want to deploy Headlamp in your cluster, check out the instructions on running it &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation/in-cluster/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;in-cluster&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a kubeconfig already, you can quickly try Headlamp locally as a
&lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation/desktop/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;desktop application&lt;/a&gt;
for &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation/desktop/linux-installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux&lt;/a&gt;,
&lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation/desktop/mac-installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Mac&lt;/a&gt;,
or &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation/desktop/win-installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Windows&lt;/a&gt;.
&lt;strong&gt;Make sure&lt;/strong&gt; you have a kubeconfig file set up with your favorite clusters and
in the default path so Headlamp can use it.&lt;/p&gt;
&lt;h3 id=&#34;accessing&#34;&gt;Accessing
&lt;/h3&gt;&lt;p&gt;Headlamp uses &lt;a class=&#34;link&#34; href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;RBAC&lt;/a&gt; for checking
users&amp;rsquo; access to resources. If you try Headlamp with a token that has very limited
permissions, you may not be able to view your cluster resources correctly.&lt;/p&gt;
&lt;p&gt;See the documentation on &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/installation#create-a-service-account-token&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;how to easily get a Service Account token&lt;/a&gt; for your cluster.&lt;/p&gt;
&lt;h2 id=&#34;tested-platforms&#34;&gt;Tested platforms
&lt;/h2&gt;&lt;p&gt;We maintain a list of the &lt;a class=&#34;link&#34; href=&#34;./docs/platforms.md&#34; &gt;Kubernetes platforms&lt;/a&gt; we have
tested Headlamp with. We invite you to add any missing platforms you have
tested, or comment if there are any regressions in the existing ones.&lt;/p&gt;
&lt;h2 id=&#34;extensions--plugins&#34;&gt;Extensions / Plugins
&lt;/h2&gt;&lt;p&gt;If you are interested in tweaking Headlamp to fit your use-cases, you can check out
our &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/development/plugins/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;plugin development guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;get-involved&#34;&gt;Get involved
&lt;/h2&gt;&lt;p&gt;Check out our:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/contributing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;./code-of-conduct.md&#34; &gt;Code of Conduct&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://kubernetes.slack.com/messages/headlamp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#headlamp&lt;/a&gt; slack channel in the Kubernetes Slack&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://zoom-lfx.platform.linuxfoundation.org/meetings/headlamp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Monthly Community Meeting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;roadmap--release-planning&#34;&gt;Roadmap / Release Planning
&lt;/h2&gt;&lt;p&gt;If you are interested in the direction of the project, we maintain a
&lt;a class=&#34;link&#34; href=&#34;https://github.com/orgs/headlamp-k8s/projects/1/views/1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Roadmap&lt;/a&gt;. It has the
biggest changes planned so far, as well as a &lt;a class=&#34;link&#34; href=&#34;https://github.com/orgs/headlamp-k8s/projects/1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;board&lt;/a&gt; tracking each release.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;Headlamp is released under the terms of the &lt;a class=&#34;link&#34; href=&#34;./LICENSE&#34; &gt;Apache 2.0&lt;/a&gt; license.&lt;/p&gt;
&lt;h2 id=&#34;frequently-asked-questions&#34;&gt;Frequently Asked Questions
&lt;/h2&gt;&lt;p&gt;For more information about Headlamp, see the &lt;a class=&#34;link&#34; href=&#34;https://headlamp.dev/docs/latest/faq/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Headlamp FAQ&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>higress</title>
        <link>https://producthunt.programnotes.cn/en/p/higress/</link>
        <pubDate>Sat, 05 Apr 2025 15:25:11 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/higress/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1649021300798-e4ce36561c9d?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDM4Mzc4ODJ8&amp;ixlib=rb-4.0.3" alt="Featured image of post higress" /&gt;&lt;h1 id=&#34;alibabahigress&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alibaba/higress&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;alibaba/higress&lt;/a&gt;
&lt;/h1&gt;&lt;p&gt;&lt;a name=&#34;readme-top&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 align=&#34;center&#34;&gt;
    &lt;img src=&#34;https://img.alicdn.com/imgextra/i2/O1CN01NwxLDd20nxfGBjxmZ_!!6000000006895-2-tps-960-290.png&#34; alt=&#34;Higress&#34; width=&#34;240&#34; height=&#34;72.5&#34;&gt;
  &lt;br&gt;
  AI Gateway
&lt;/h1&gt;
&lt;h4 align=&#34;center&#34;&gt; AI Native API Gateway &lt;/h4&gt;
&lt;div align=&#34;center&#34;&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alibaba/higress/actions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/alibaba/higress/actions/workflows/build-and-test.yaml/badge.svg?branch=main&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://www.apache.org/licenses/LICENSE-2.0.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/license/alibaba/higress.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;license&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://trendshift.io/repositories/10918&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://trendshift.io/api/badge/repositories/10918&#34; alt=&#34;alibaba%2Fhigress | Trendshift&#34; style=&#34;width: 250px; height: 55px;&#34; width=&#34;250&#34; height=&#34;55&#34;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://higress.ai/en/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Official Site&lt;/strong&gt;&lt;/a&gt;   |
  &lt;a class=&#34;link&#34; href=&#34;https://higress.cn/en/ai/mcp-quick-start/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;MCP Server QuickStart&lt;/strong&gt;&lt;/a&gt;   |
  &lt;a class=&#34;link&#34; href=&#34;https://higress.cn/en/plugin/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Wasm Plugin Hub&lt;/strong&gt;&lt;/a&gt;   |&lt;/p&gt;
&lt;p&gt;
   English | &lt;a href=&#34;README_ZH.md&#34;&gt;中文&lt;a/&gt; | &lt;a href=&#34;README_JP.md&#34;&gt;日本語&lt;a/&gt;
&lt;/p&gt;
&lt;p&gt;Higress is a cloud-native API gateway based on Istio and Envoy, which can be extended with Wasm plugins written in Go/Rust/JS. It provides dozens of ready-to-use general-purpose plugins and an out-of-the-box console (try the &lt;a class=&#34;link&#34; href=&#34;http://demo.higress.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;demo here&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Higress was born within Alibaba to solve the issues of Tengine reload affecting long-connection services and insufficient load balancing capabilities for gRPC/Dubbo.&lt;/p&gt;
&lt;p&gt;Alibaba Cloud has built its cloud-native API gateway product based on Higress, providing 99.99% gateway high availability guarantee service capabilities for a large number of enterprise customers.&lt;/p&gt;
&lt;p&gt;Higress&amp;rsquo;s AI gateway capabilities support all &lt;a class=&#34;link&#34; href=&#34;https://github.com/alibaba/higress/tree/main/plugins/wasm-go/extensions/ai-proxy/provider&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mainstream model providers&lt;/a&gt; both domestic and international, as well as self-built DeepSeek models based on vllm/ollama. Within Alibaba Cloud, it supports AI businesses such as Tongyi Qianwen APP, Bailian large model API, and machine learning PAI platform. It also serves leading AIGC enterprises (such as Zero One Infinite) and AI products (such as FastGPT).&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#quick-start&#34; &gt;&lt;strong&gt;Quick Start&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#feature-showcase&#34; &gt;&lt;strong&gt;Feature Showcase&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#use-cases&#34; &gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#core-advantages&#34; &gt;&lt;strong&gt;Core Advantages&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#community&#34; &gt;&lt;strong&gt;Community&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start
&lt;/h2&gt;&lt;p&gt;Higress can be started with just Docker, making it convenient for individual developers to set up locally for learning or for building simple sites:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Create a working directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir higress&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; higress
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Start higress, configuration files will be written to the working directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d --rm --name higress-ai -v &lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;PWD&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;:/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -p 8001:8001 -p 8080:8080 -p 8443:8443  &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Port descriptions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Port 8001: Higress UI console entry&lt;/li&gt;
&lt;li&gt;Port 8080: Gateway HTTP protocol entry&lt;/li&gt;
&lt;li&gt;Port 8443: Gateway HTTPS protocol entry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;All Higress Docker images use their own dedicated repository, unaffected by Docker Hub access restrictions in certain regions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For other installation methods such as Helm deployment under K8s, please refer to the official &lt;a class=&#34;link&#34; href=&#34;https://higress.io/en-us/docs/user/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Quick Start documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;use-cases&#34;&gt;Use Cases
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI Gateway&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Higress can connect to all LLM model providers both domestic and international using a unified protocol, while also providing rich AI observability, multi-model load balancing/fallback, AI token rate limiting, AI caching, and other capabilities:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.alicdn.com/imgextra/i2/O1CN01izmBNX1jbHT7lP3Yr_!!6000000004566-0-tps-1920-1080.jpg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;MCP Server Hosting&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Higress, as an Envoy-based API gateway, supports hosting MCP Servers through its plugin mechanism. MCP (Model Context Protocol) is essentially an AI-friendly API that enables AI Agents to more easily call various tools and services. Higress provides unified capabilities for authentication, authorization, rate limiting, and observability for tool calls, simplifying the development and deployment of AI applications.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://img.alicdn.com/imgextra/i1/O1CN01wv8H4g1mS4MUzC1QC_!!6000000004952-2-tps-1764-597.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;By hosting MCP Servers with Higress, you can achieve:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unified authentication and authorization mechanisms, ensuring the security of AI tool calls&lt;/li&gt;
&lt;li&gt;Fine-grained rate limiting to prevent abuse and resource exhaustion&lt;/li&gt;
&lt;li&gt;Comprehensive audit logs recording all tool call behaviors&lt;/li&gt;
&lt;li&gt;Rich observability for monitoring the performance and health of tool calls&lt;/li&gt;
&lt;li&gt;Simplified deployment and management through Higress&amp;rsquo;s plugin mechanism for quickly adding new MCP Servers&lt;/li&gt;
&lt;li&gt;Dynamic updates without disruption: Thanks to Envoy&amp;rsquo;s friendly handling of long connections and Wasm plugin&amp;rsquo;s dynamic update mechanism, MCP Server logic can be updated on-the-fly without any traffic disruption or connection drops&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kubernetes ingress controller&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Higress can function as a feature-rich ingress controller, which is compatible with many annotations of K8s&amp;rsquo; nginx ingress controller.&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://gateway-api.sigs.k8s.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Gateway API&lt;/a&gt; support is coming soon and will support smooth migration from Ingress API to Gateway API.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Microservice gateway&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Higress can function as a microservice gateway, which can discovery microservices from various service registries, such as Nacos, ZooKeeper, Consul, Eureka, etc.&lt;/p&gt;
&lt;p&gt;It deeply integrates with &lt;a class=&#34;link&#34; href=&#34;https://github.com/apache/dubbo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Dubbo&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/alibaba/nacos&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Nacos&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/alibaba/Sentinel&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sentinel&lt;/a&gt; and other microservice technology stacks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Security gateway&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Higress can be used as a security gateway, supporting WAF and various authentication strategies, such as key-auth, hmac-auth, jwt-auth, basic-auth, oidc, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;core-advantages&#34;&gt;Core Advantages
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Production Grade&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Born from Alibaba&amp;rsquo;s internal product with over 2 years of production validation, supporting large-scale scenarios with hundreds of thousands of requests per second.&lt;/p&gt;
&lt;p&gt;Completely eliminates traffic jitter caused by Nginx reload, configuration changes take effect in milliseconds and are transparent to business. Especially friendly to long-connection scenarios such as AI businesses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Streaming Processing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Supports true complete streaming processing of request/response bodies, Wasm plugins can easily customize the handling of streaming protocols such as SSE (Server-Sent Events).&lt;/p&gt;
&lt;p&gt;In high-bandwidth scenarios such as AI businesses, it can significantly reduce memory overhead.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Easy to Extend&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Provides a rich official plugin library covering AI, traffic management, security protection and other common functions, meeting more than 90% of business scenario requirements.&lt;/p&gt;
&lt;p&gt;Focuses on Wasm plugin extensions, ensuring memory safety through sandbox isolation, supporting multiple programming languages, allowing plugin versions to be upgraded independently, and achieving traffic-lossless hot updates of gateway logic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Secure and Easy to Use&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Based on Ingress API and Gateway API standards, provides out-of-the-box UI console, WAF protection plugin, IP/Cookie CC protection plugin ready to use.&lt;/p&gt;
&lt;p&gt;Supports connecting to Let&amp;rsquo;s Encrypt for automatic issuance and renewal of free certificates, and can be deployed outside of K8s, started with a single Docker command, convenient for individual developers to use.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;community&#34;&gt;Community
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://w1689142780-euk177225.slack.com/archives/C05GEL4TGTG&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Slack&lt;/a&gt;: to get invited go &lt;a class=&#34;link&#34; href=&#34;https://communityinviter.com/apps/w1689142780-euk177225/higress&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;thanks&#34;&gt;Thanks
&lt;/h3&gt;&lt;p&gt;Higress would not be possible without the valuable open-source work of projects in the community. We would like to extend a special thank you to Envoy and Istio.&lt;/p&gt;
&lt;h3 id=&#34;related-repositories&#34;&gt;Related Repositories
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Higress Console: &lt;a class=&#34;link&#34; href=&#34;https://github.com/higress-group/higress-console&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/higress-group/higress-console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Higress Standalone: &lt;a class=&#34;link&#34; href=&#34;https://github.com/higress-group/higress-standalone&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/higress-group/higress-standalone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;contributors&#34;&gt;Contributors
&lt;/h3&gt;&lt;a href=&#34;https://github.com/alibaba/higress/graphs/contributors&#34;&gt;
  &lt;img alt=&#34;contributors&#34; src=&#34;https://contrib.rocks/image?repo=alibaba/higress&#34;/&gt;
&lt;/a&gt;
&lt;h3 id=&#34;star-history&#34;&gt;Star History
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://star-history.com/#alibaba/higress&amp;amp;Date&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://api.star-history.com/svg?repos=alibaba/higress&amp;amp;type=Date&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Star History Chart&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align=&#34;right&#34; style=&#34;font-size: 14px; color: #555; margin-top: 20px;&#34;&gt;
    &lt;a href=&#34;#readme-top&#34; style=&#34;text-decoration: none; color: #007bff; font-weight: bold;&#34;&gt;
        ↑ Back to Top ↑
    &lt;/a&gt;
&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
