diff --git a/website/docs/extensions/img/architecture.png b/website/docs/extensions/img/architecture.png new file mode 100644 index 000000000..f53a3722a Binary files /dev/null and b/website/docs/extensions/img/architecture.png differ diff --git a/website/docs/extensions/index.md b/website/docs/extensions/index.md index f53440824..ff84f6dc7 100644 --- a/website/docs/extensions/index.md +++ b/website/docs/extensions/index.md @@ -1,21 +1,54 @@ --- sidebar_position: 110 title: Extensions -description: Installing, developing or publishing extensions. +description: Installing, developing, or publishing extensions. keywords: [podman desktop, podman, extension] -tags: [migrating-to-kubernetes] +tags: [podman-desktop-extensions, building-an-extension] --- # Podman Desktop extensions -Podman Desktop extensions contribute to: +Extensions are designed to be modular and easily pluggable into Podman Desktop. They allow you to use and manipulate a wide range of Podman Desktop functionalities [via our API](/api). Not only can you customize every component of Podman Desktop, but you can also extend its functionality with these extensions. -- Container engine support, such as Podman, Docker. -- Virtual machine support, such as Lima. -- Podman Desktop extension points such as tray icon menu, status bar items, icons, menus, and commands. -- Integration with third parties tools, such as Kind or Compose. +With extensions, you can add: -#### Next steps +- Support for container engines, such as Podman or Docker. +- Virtual machine integrations, such as Lima. +- Podman Desktop extension points, including tray icon menus, status bar items, icons, menus, and commands. +- Integration with third-party tools, such as Kind or Compose. + +## Architecture + +Below is an example of the architecture for the "Podman" extension that integrates with Podman Desktop: + +![architecture](img/architecture.png) + +Each extension is isolated and communicates entirely through the Podman Desktop API, ensuring modularity and extensibility for Podman Desktop. + +## What can a Podman Desktop extension do? + +Here are some examples of what you can achieve with the Podman Desktop extension API: + +- [Create your own onboarding workflow.](/docs/extensions/developing/onboarding-workflow) +- [Add non-native Podman Desktop commands.](/docs/extensions/developing/commands) +- [Create configuration settings for your extension.](/docs/extensions/developing/config) +- [Add menus to areas, such as pushing images.](/docs/extensions/developing/menu) + +The possibilities are endless. You can leverage [our API](/api) to expand your extension's capabilities even further. + +## How to build an extension + +To help you get started, we've provided templates ranging from a minimal "Hello World" example to a full web-view extension. + +Here are some examples from [our templates documentation](/docs/extensions/templates): + +- [Basic "Hello World" example.](https://github.com/podman-desktop/extension-template-minimal) +- [Simple webview template.](https://github.com/podman-desktop/extension-template-webview) +- [Full-stack webview template.](https://github.com/podman-desktop/extension-template-full) + +Have questions or need assistance? Join our community on Discord for support! + +## Next Steps - [Writing a Podman Desktop extension entry point](/docs/extensions/developing) - [Publishing a Podman Desktop extension](/docs/extensions/publish)