diff --git a/blog/2020-2-29-welcome.md b/blog/2020-2-29-welcome.md deleted file mode 100644 index 1602930e..00000000 --- a/blog/2020-2-29-welcome.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -slug: welcome -title: Welcome -author: Rush Tehrani -author_title: CEO @ Onepanel -author_url: https://github.com/rushtehrani -author_image_url: http://1.gravatar.com/avatar/0d1dd8e9d8d8c1198781c5fe8af36184 -tags: [] ---- - -Welcome to Onepanel CE, an open source platform for building highly scalable, distributed and reproducible computer vision workflows on Kubernetes. - -We'll be using this space and Slack to announce new releases of Onepanel CE and make other community announcements. diff --git a/docs/api-sdk/overview.md b/docs/api-sdk/overview.md deleted file mode 100644 index feb15245..00000000 --- a/docs/api-sdk/overview.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: APIs and SDKs -sidebar_label: APIs and SDKs -description: Automate your workflows using Onepanel's APIs or SDKs ---- - -You can currently integrate with Onepanel using either the APIs or the Python SDK. - -Refer to the documentation below to get started: - -- [API docs](https://onepanelio.github.io/core-api-docs) -- [Python SDK docs](https://github.com/onepanelio/python-sdk) and [examples](https://github.com/onepanelio/python-sdk/tree/master/examples) - - - diff --git a/docs/getting-started/concepts/environment-variables.md b/docs/getting-started/concepts/environment-variables.md index f04795c5..062f30de 100644 --- a/docs/getting-started/concepts/environment-variables.md +++ b/docs/getting-started/concepts/environment-variables.md @@ -4,7 +4,7 @@ sidebar_label: Environment variables description: Manage environment variables on Onepanel --- -Environment variables are unique to each namespace and will automatically added to any container in [Workspaces](/docs/getting-started/concepts/workspaces) or [Workflows](/docs/getting-started/concepts/workflows). +Environment variables are unique to each namespace and will be automatically added to any running Workspace or Workflow Task. The following system environment variables are always automatically added to both Workspaces and Workflow containers: @@ -13,3 +13,7 @@ The following system environment variables are always automatically added to bot - `ONEPANEL_DOMAIN` Domain name where the platform is installed. Example: `sub.domain.com` - `ONEPANEL_RESOURCE_NAMESPACE` The namespace where the resource is running. - `ONEPANEL_RESOURCE_UID` The unique ID of the resource in namespace. + +You can add your own environment variables by navigating to the **Settings** menu and clicking **Add environment variable**. + +![](../../../static/img/environment-variables-155310.png) \ No newline at end of file diff --git a/docs/getting-started/concepts/sdk.md b/docs/getting-started/concepts/sdk.md index 8306445b..35c215f3 100644 --- a/docs/getting-started/concepts/sdk.md +++ b/docs/getting-started/concepts/sdk.md @@ -4,10 +4,8 @@ sidebar_label: Python SDK description: Onepanel - Python SDK --- -Onepanel's [Python SDK](https://github.com/onepanelio/python-sdk) can be used to programmatically perform any task that is available through the web UI. +Onepanel's Python SDK can be used to programmatically perform any task that is available through the web UI. It is by default installed in all out of the box Workspaces and Workflows in Onepanel. -Some examples include: +Additionally, you can use the Python SDK to define Workflows in Python and execute them from any environment that supports Python. -- [Define Workflow Templates in Python](https://github.com/onepanelio/python-sdk/blob/master/examples/python-defined-workflow.ipynb) -- [Execute Workflows from Workspaces](https://github.com/onepanelio/python-sdk/blob/master/examples/execute-workflow.ipynb) -- [Automatically launch CVAT annotation Workspaces](https://github.com/onepanelio/templates/blob/master/workflows/auto-cvat/template.yaml) \ No newline at end of file +See [Python SDK](/docs/reference/sdks/python) in **User Guide** for more detailed information. \ No newline at end of file diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index f7407046..13c952aa 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -13,6 +13,7 @@ In this quick start, we will walk you through: 1. Deploying Onepanel to one of the major cloud providers. 2. Labelling your images or video using the integrated annotation Workspace. 3. Training your model with the newly labelled data using the integrated training Workflows. +4. Automatically annotating new data using your newly trained model. Before getting started, take a look at [concepts](/docs/getting-started/concepts/namespaces) to understand the different components in Onepanel. diff --git a/docs/reference/sdks/python.md b/docs/reference/sdks/python.md new file mode 100644 index 00000000..3360debb --- /dev/null +++ b/docs/reference/sdks/python.md @@ -0,0 +1,38 @@ +--- +title: Python SDK +sidebar_label: Python SDK +description: Onepanel - Python SDK +--- + +Onepanel's Python SDK can be used to programmatically perform any task that is available through the web UI. + +Additionally, you can use the Python SDK to [define and execute](https://github.com/onepanelio/python-sdk/blob/master/examples/python-defined-workflow.ipynb) Workflows in Python instead of YAML. + +## Installation +:::important +The Python SDK is already installed in all the Workspace and Workflow templates that are available in Onepanel out of the box. +::: + +The Python SDK can be installed via PyPi as follows: + +```bash +pip install onepanel-sdk +``` + +## Reference + +See [Getting started](https://github.com/onepanelio/python-sdk#getting-started) in the Python SDK repository for sample code and API reference. + +## Defining Workflows in Python + +The Python SDK is integrated with [Couler](https://github.com/couler-proj/couler) making it possible to define Workflows in Python instead of YAML. + +For a complete example of defining a Workflow with data augmentation and training tasks, see [this notebook](https://github.com/onepanelio/python-sdk/blob/master/examples/python-defined-workflow.ipynb). + +## Sample JupyterLab notebooks + +Here are some example notebooks that you can run from a JupyterLab Workspace in Onepanel: + +- [Define Workflows in Python](https://github.com/onepanelio/python-sdk/blob/master/examples/python-defined-workflow.ipynb) +- [Execute Workflows from Workspaces](https://github.com/onepanelio/python-sdk/blob/master/examples/execute-workflow.ipynb) +- [Automatically launch CVAT annotation Workspaces](https://github.com/onepanelio/templates/tree/release-v0.18.0/workflows/auto-cvat) \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 10faed6d..f51211f9 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,6 +1,6 @@ module.exports = { - title: 'The open source, end-to-end vision AI platform', - tagline: 'The open source, production grade, end-to-end vision AI platform with fully integrated modules for model building, automated labeling, data processing, model training and hyperparameter tuning.', + title: 'The open and extensible IDE for computer vision', + tagline: 'The open and extensible integrated development environment (IDE) for computer vision', url: 'https://docs.onepanel.ai', baseUrl: '/', favicon: 'img/favicon.png', @@ -10,24 +10,23 @@ module.exports = { colorMode: { disableSwitch: true, }, - announcementBar: { - id: 'supportus', - content: - 'If you like Onepanel, give it a star on GitHub! ⭐️', - backgroundColor: '#013d6d', - textColor: '#fff', - }, + // announcementBar: { + // id: 'supportus', + // content: + // 'If you like Onepanel, give it a star on GitHub! ⭐️', + // backgroundColor: '#013d6d', + // textColor: '#fff', + // }, navbar: { title: '', logo: { alt: 'Onepanel logo', - src: 'img/icon.png', + src: 'img/icon.svg', }, items: [ {to: 'docs/getting-started/quickstart', label: 'Getting Started', position: 'left'}, {to: 'docs/reference/overview', label: 'User Guide', position: 'left'}, {to: 'docs/deployment/overview', label: 'Operator Manual', position: 'left'}, - {to: 'docs/api-sdk/overview', label: 'APIs and SDKs', position: 'left'}, {href: 'https://github.com/onepanelio/core/releases', label: 'Releases', position: 'left'}, {href: 'https://github.com/onepanelio/core/milestones?direction=asc&sort=due_date&state=open', label: 'Roadmap', position: 'left'}, // {to: 'blog', label: 'Changelog', position: 'left'}, diff --git a/sidebars.js b/sidebars.js index 783dc4d8..e5537467 100644 --- a/sidebars.js +++ b/sidebars.js @@ -140,5 +140,13 @@ module.exports = { 'reference/jupyterlab/language-server', ] }, + { + type: 'category', + label: 'SDKs', + collapsed: false, + items: [ + 'reference/sdks/python', + ] + }, ] }; diff --git a/src/css/custom.css b/src/css/custom.css index 01df54b5..6dd91e3b 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -4,12 +4,14 @@ * work well for content-centric websites. */ +@import url('https://fonts.googleapis.com/css2?family=Questrial&display=swap'); + /* You can override the default Infima variables here. */ :root { --ifm-color-primary: #01579b; --ifm-color-primary-dark: #014e8b; --ifm-color-primary-darker: #014a84; - --ifm-color-primary-darkest: #013d6d; + --ifm-color-primary-darkest: #00233f; --ifm-color-primary-light: #0160ab; --ifm-color-primary-lighter: #0164b2; --ifm-color-primary-lightest: #0171ca; @@ -19,8 +21,16 @@ --ifm-heading-color: var(--ifm-color-primary-darker); --ifm-font-size-base: 16px; --ifm-list-left-padding: 1.25rem; - --ifm-navbar-link-hover-color: rgb(255, 255, 255); - --ifm-navbar-link-color: rgb(255, 255, 255, 0.8); +} + +body { + font-family: 'Questrial', sans-serif; +} + +.hero.hero--primary.heroBanner_src-pages- { + padding: 1.2rem 0 0 0; + --ifm-hero-background-color: #e4ecf2; + --ifm-hero-text-color: var(--ifm-font-color-base); } ol > li::marker { @@ -67,29 +77,74 @@ ol > li::marker { } .button--primary { - background-color: #ff9100; - border-color: #ff9100; + background-color: #f28627; + border-color: #f28627; color: #fff; } +.button--primary:active, +.button--primary:hover, +.button--primary.button--active { + background-color: #e27d25; + border-color: #e27d25; +} + .button--primary.button--outline { background-color: transparent; - border-color: #ff9100; - color: #ff9100; + border-color: var(--ifm-color-primary); + color: var(--ifm-color-primary); } .hero__name { - color: var(--ifm-font-base-color-inverse); + color: var(--ifm-color-primary); font-size: 3rem; } +.hero__name div { + display: inline-block; + color: #fff; + background-color: var(--ifm-color-primary); + font-size: 1rem; + line-height: 1.2rem; + padding: 5px 5px 3px; + border-radius: 4px; + position: relative; + vertical-align: middle; + top: -8px; +} + .hero__title { color: var(--ifm-font-base-color-inverse); font-size: 2rem; } +.hero__subtitle { + font-size: 1.3rem; + color: var(--ifm-color-primary); +} + +.hero__platforms { + font-size: 0.8rem; + color: var(--ifm-color-primary); + margin: 0.2rem; +} + +.hero__platforms img { + vertical-align: middle; + margin-left: 5px; +} + .hero__video { - margin-top: 2rem; + margin: 0 auto; + padding: 1.2rem 0 1.2rem 0; + background-image: url('/img/landing/video-bg.svg'); + background-size: cover; +} + +.hero__video video { + width: 680px; + border: 5px solid #cedde9; + border-radius: 6px; } .navbar--light { @@ -105,10 +160,6 @@ ol > li::marker { padding: 0 var(--ifm-pre-padding); } -.button.button--secondary.button--outline:not(.button--active):not(:hover) { - color: var(--ifm-color-secondary); -} - .ml-1 { margin-left: 10px; } @@ -303,7 +354,7 @@ ol > li::before { left: -26px; height: 26px; width: 26px; - color: var(--ifm-heading-color); + color: var(--ifm-color-primary); font-size: 18px; font-weight: bold; } @@ -312,3 +363,53 @@ ol > li::before { article > div > span.badge--secondary { display: none; } + +section.features_src-pages- { + background-color: #f8fafc; + padding: 0.5rem; +} + +.features_src-pages- h3 { + color: var(--ifm-color-primary); +} + +.features__list ul { + list-style-type: none; + font-size: 0.85rem; + line-height: 1.2rem; +} + +.features__list ul li { + margin-bottom: 1.2rem; +} + +.features__list ul li h4 { + font-size: 0.85rem; + color: var(--ifm-color-primary); + margin-bottom: 4px; +} + +.features_src-pages- .features__arrow-1 { + position: relative; + right: -100px; + height: 20px; + top: 2px; +} + +.features_src-pages- .features__arrow-2 { + position: relative; + right: -100px; + height: 20px; + top: 2px; +} + +.features_src-pages- .features__arrow-3 { + position: relative; + right: -75px; + height: 20px; + top: 2px; +} + +.footer { + background-color: var(--ifm-color-primary-darkest); +} diff --git a/src/pages/index.js b/src/pages/index.js index 10337454..9ceca81d 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -8,108 +8,106 @@ import styles from './styles.module.css'; const features = [ { - title: <>Image and video annotation with automatic pre-annotation, - imageUrl: 'img/landing/ann.png', + title: <>Prepare , + imageUrl: 'img/landing/prepare.svg', description: ( <> - Annotate images and video using CVAT, with object tracking and semi-automatic annotation of bounding boxes and polygon masks. + ), }, - // { - // title: <>Deploy complete aerial imaging pipelines with photogrammetry tools, - // imageUrl: 'img/landing/odm.png', - // description: ( - // <> - // Leverage tools like WebODM with GPUs to accelerate image processing and to perform pre-annotation for object detection. - // - // ), - // }, { - title: <>Build your models with GPU optimized frameworks and IDEs, - imageUrl: 'img/landing/env.png', + title: <>Build , + imageUrl: 'img/landing/build.svg', description: ( <> - Seamlessly switch environments between CPU and GPU machines, preloaded with PyTorch, TensorFlow, JupyterLab, VSCode and more. + ), }, { - title: <>Create pipelines as code for model training and data processing, - imageUrl: 'img/landing/pip.png', + title: <>Train and Tune , + imageUrl: 'img/landing/train.svg', description: ( <> - Build reproducible training and data processing pipelines that can perform parallel or distributed tasks on multiple machines. + ), }, { - title: <>Track experiments and visualize model metrics, - imageUrl: 'img/landing/met.png', + title: <>Deploy and Manage, + imageUrl: 'img/landing/deploy.svg', description: ( <> - Track and visualize model metrics and experiments with TensorBoard or bring your own experiment tracking tools. + ), }, - // { - // title: <>Web-based VNC environments that you can access with your browser, - // imageUrl: 'img/landing/vnc.png', - // description: ( - // <> - // Access and share tools like AirSim, Carla, Gazebo or OpenAI Gym through your browser with VNC enabled workspaces. - // - // ), - // }, - { - title: <>Bring your own tools as reproducible templates, - imageUrl: 'img/landing/mod.png', - description: ( - <> - Easily bring your own specialized cloud-native tools for development, annotation, pipelines and more. - - ), - }, - { - title: <>Integrate with existing systems using APIs and SDKs, - imageUrl: 'img/landing/sdk.png', - description: ( - <> - Extend Onepanel with our powerful REST APIs and SDKs to further automate your pipelines and environments. - - ), - }, - // { - // title: <>Infrastructure and workflows as code, - // imageUrl: 'img/landing/iac.png', - // description: ( - // <> - // Workflows, environments and infrastructure are all defined as code and version controlled, making them reproducible and portable. - // - // ), - // }, - // { - // title: <>Powered by Kubernetes so you can deploy anywhere, - // imageUrl: 'img/landing/k8s.png', - // description: ( - // <> - // Powered by Kubernetes so you can deploy anywhere Kubernetes can run. - // - // ), - // } ]; function Feature({imageUrl, title, description}) { const imgUrl = useBaseUrl(imageUrl); return ( -
+
{imgUrl && (
{title}
)}

{title}

-

{description}

+

{description}

); } @@ -123,27 +121,24 @@ function Home() { description="The open source vision AI platform with fully integrated modules for model building, automated labeling, data processing, model training and hyperparameter tuning.">
-

Onepanel

+

+ Onepanel
CE
+

{/*

{siteConfig.title}

*/}

{siteConfig.tagline}

- DEPLOY ONEPANEL - - - CONTRIBUTE + GET STARTED WITH ONEPANEL
+
+ deploy to aws, azure, gcp, kubernetes +
{/* */}