diff --git a/README.md b/README.md index 0c6c2c2..7faae7d 100644 --- a/README.md +++ b/README.md @@ -2,40 +2,31 @@ This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. -### Installation +## Requirements -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` +- Node.js version 18.0 or above (which can be checked by running `node -v`). You can use [nvm](https://github.com/nvm-sh/nvm) for managing multiple Node versions on a single machine installed. + - When installing Node.js, you are recommended to check all checkboxes related to dependencies. -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +For more information, please refer to the [official documentation](https://docusaurus.io/docs/installation). -### Build +## Install the dependencies -``` -$ yarn build +```bash +npm install ``` -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment +### Run Local Development -Using SSH: - -``` -$ USE_SSH=true yarn deploy +```bash +npm start ``` -Not using SSH: +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. -``` -$ GIT_USER= yarn deploy +## Build for Production + +```bash +npm build ``` -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. +This command generates static content into the `build` directory and can be served using any static contents hosting service. diff --git a/docs/api_related.md b/docs/api_docs.md similarity index 89% rename from docs/api_related.md rename to docs/api_docs.md index 91bdacd..dd40939 100644 --- a/docs/api_related.md +++ b/docs/api_docs.md @@ -1,3 +1,7 @@ +--- +sidebar_position: 5 +--- + # API Docs #### Discover the functionalities offered by our platform through our API documentation: diff --git a/docs/api_requests_flow.md b/docs/api_requests_flow.md new file mode 100644 index 0000000..42c7e09 --- /dev/null +++ b/docs/api_requests_flow.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 3 +--- + +# API Request Flows + +## App Package + +### POST + +![New App Package](./images/new_app_pkg.png) + +### GET (List) + +![List App Packages](./images/list_app_pkgs.png) + +## App Package/{app_pkg_id} + +### GET (Individual Package) + +![Get App Package](./images/get_app_pkg.png) + +### PUT + +![Update App Package](./images/update_app_pkg.png) + +### DELETE + +![Delete App Package](./images/delete_app_pkg.png) + +## App Package/{app_pkg_id}/instantiate + +### Instantiate + +![Instantiate App Package](./images/instantiate_app_pkg.png) + +### Terminate + +![Terminate App Package](./images/terminate_app_pkg.png) diff --git a/docs/appd_fields.md b/docs/appd_fields.md deleted file mode 100644 index 90c3800..0000000 --- a/docs/appd_fields.md +++ /dev/null @@ -1,304 +0,0 @@ -# MEC App Descriptor Fields - -- mec-appd - - id (**_value_**: mandatory) - - name (**_value_**: mandatory) - - provider (**_value_**: mandatory) - - soft-version (**_value_**: mandatory) - - version (**_value_**: mandatory) - - mec-version (**_value_**: mandatory) - - info-name (**_value_**: non-mandatory) - - description (**_value_**: mandatory) - -- virtual-compute - - id (**_value_**: mandatory) - - logical-node-reqs - - id (**_array_**: non-mandatory) - - logical-node-requirement-details (**_value_**: non-mandatory) - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - request-additional-capabilities - - name (**_array_**: non-mandatory) - - support-mandatory (**_value_**: non-mandatory) - - min-requested-additional-capability-version (**_value_**: non-mandatory) - - preferred-requested-additional-capability-version (**_value_**: non-mandatory) - - target-performance-parameters - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - compute-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - - virtual-memory - - mem-size (**_value_**: mandatory) - - mem-oversubscription-policy (**_value_**: non-mandatory) - - vdu-mem-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - numa-enabled (**_value_**: mandatory) - - - virtual-cpu - - architecture (**_value_**: non-mandatory) - - cpu-count (**_value_**: mandatory) - - cpu-clock (**_value_**: non-mandatory) - - cpu-oversubscription-policy (**_value_**: non-mandatory) - - vdu-cpu-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - cpu-pinning - - pinning-policy (**_value_**: non-mandatory) - - pinning-rule - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - - virtual-disk - - id (**_value_**: non-mandatory) - - size-of-storage (**_value_**: non-mandatory) - - vdu-storage-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - rdma-enabled (**_value_**: non-mandatory) - - sw-image-id (**_value_**: non-mandatory) - -- sw-image - - id (**_value_**: mandatory) - - name (**_value_**: mandatory) - - version (**_value_**: mandatory) - - checksum (**_value_**: mandatory) - - container-format (**_value_**: mandatory) - - disk-format (**_value_**: non-mandatory) - - min-disk (**_value_**: non-mandatory) - - min-ram (**_value_**: non-mandatory) - - size (**_value_**: mandatory) - - sw-image (**_value_**: mandatory) - - operating-system (**_value_**: non-mandatory) - - supported-virtualisation-environment (**_array_**: non-mandatory) - -- virtual-storage: - - id (**_array_**: mandatory) - - type-of-storage (**_value_**: mandatory) - - block-storage - - size-of-storage (**_value_**: mandatory) - - vdu-storage-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - rdma-enabled (**_value_**: non-mandatory) - - sw-image-id (**_value_**: non-mandatory) - - object-storage - - max-size-of-storage (**_value_**: non-mandatory) - - file-storage - - size-of-storage (**_value_**: non-mandatory) - - file-system-protocol (**_value_**: non-mandatory) - - int-virtual-link-id (**_value_**: non-mandatory) - - nfvi-maintenance-info - - impact-notification-lead-time (**_value_**: non-mandatory) - - is-impact-mitigation-requested (**_value_**: non-mandatory) - - supported-migration-time (**_value_**: non-mandatory) - - max-undetectable-interruption-time (**_value_**: non-mandatory) - - min-recovery-time-between-impacts (**_value_**: non-mandatory) - - max-number-of-impacted-instances - - id (**_array_**: non-mandatory) - - group-size (**_value_**: non-mandatory) - - max-number-of-impacted-instances (**_value_**: non-mandatory) - -- ext-cpd - - id (**_array_**: non-mandatory) - - k8s-cluster-net (**_value_**: non-mandatory) - - virtual-network-interface-requirements - - id (**_array_**: non-mandatory) - - name (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - support-mandatory (**_value_**: non-mandatory) - - network-interface-requirements - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - - niclo-requirements - - id (**_array_**: non-mandatory) - - logical-node-requirement-details - - key (**_value_**: non-mandatory) - - value (**_value_**: non-mandatory) - - layer-protocol (**_array_**: non-mandatory) - - cp-role (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - trunk-mode (**_value_**: non-mandatory) - - security-group-rule-id (**_array_**: non-mandatory) - - cp-protocol - - associated-layer-protocol (**_array_**: non-mandatory) - - address-data - - id (**_array_**: non-mandatory) - - address-type (**_value_**: non-mandatory) - - l2-address-data (**_value_**: non-mandatory) - - l3-address-data - - ip-address-assignment (**_value_**: non-mandatory) - - ip-address-type (**_value_**: non-mandatory) - - number-of-ip-addresses (**_value_**: non-mandatory) - - floating-ip-activated (**_value_**: non-mandatory) - - fixed-ip-address (**_value_**: non-mandatory) - -- service-required - - name (**_array_**: non-mandatory) - - category - - href (**_value_**: non-mandatory) - - id (**_value_**: non-mandatory) - - name (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - transport-dependencies - - id (**_array_**: non-mandatory) - - transport - - name (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - type (**_value_**: non-mandatory) - - protocol (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - security - - oauth2-info - - grant-types (**_array_**: non-mandatory) - - token-endpoint (**_value_**: non-mandatory) - - serializers (**_array_**: non-mandatory) - - labels (**_array_**: non-mandatory) - - requested-permissions (**_array_**: non-mandatory) - -- service-optional - - name (**_array_**: non-mandatory) - - category - - href (**_value_**: non-mandatory) - - id (**_value_**: non-mandatory) - - name (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - version - - transport-dependencies - - id (**_array_**: non-mandatory) - - transport - - name (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - type (**_value_**: non-mandatory) - - protocol (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - security - - oauth2-info - - grant-types (**_array_**: non-mandatory) - - token-endpoint (**_value_**: non-mandatory) - - serializers (**_array_**: non-mandatory) - - labels (**_array_**: non-mandatory) - - requested-permissions (**_array_**: non-mandatory) - -- service-produced - - name (**_array_**: non-mandatory) - - category - - href (**_value_**: non-mandatory) - - id (**_value_**: non-mandatory) - - name (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - transports-supported - - id (**_array_**: non-mandatory) - - transport - - name (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - type (**_value_**: non-mandatory) - - protocol (**_value_**: non-mandatory) - - version (**_array_**: non-mandatory) - - security (**_array_**: non-mandatory) - - oauth2-info - - grant-types (**_array_**: non-mandatory) - - token-endpoint (**_value_**: non-mandatory) - - serializers (**_array_**: non-mandatory) - - labels (**_array_**: non-mandatory) - -- feature-required - - name (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - -- feature-optional - - name (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - -- transport-dependencies - - id (**_array_**: non-mandatory) - - transport - - name (**_value_**: non-mandatory) - - description (**_value_**: non-mandatory) - - type (**_value_**: non-mandatory) - - protocol (**_value_**: non-mandatory) - - version (**_value_**: non-mandatory) - - security (**_value_**: non-mandatory) - - oauth2-info - - grant-types (**_array_**: non-mandatory) - - token-endpoint (**_value_**: non-mandatory) - - serializers (**_array_**: non-mandatory) - - labels (**_array_**: non-mandatory) - -- traffic-rule - - id (**_array_**: non-mandatory) - - filter-type (**_value_**: non-mandatory) - - priority (**_value_**: non-mandatory) - - traffic-filter - - id (**_array_**: non-mandatory) - - src-address (**_value_**: non-mandatory) - - dst-address (**_value_**: non-mandatory) - - src-port (**_value_**: non-mandatory) - - dst-port (**_value_**: non-mandatory) - - protocol (**_value_**: non-mandatory) - - tag (**_value_**: non-mandatory) - - uri (**_value_**: non-mandatory) - - packet-label (**_value_**: non-mandatory) - - src-tunnel-address (**_value_**: non-mandatory) - - tgt-tunnel-address (**_value_**: non-mandatory) - - tgt-tunnel-address (**_value_**: non-mandatory) - - src-tunnel-port (**_value_**: non-mandatory) - - dst-tunnel-port (**_value_**: non-mandatory) - - qci (**_value_**: non-mandatory) - - dscp (**_value_**: non-mandatory) - - tc (**_value_**: non-mandatory) - - action (**_value_**: non-mandatory) - - dst-interface - - id (**_array_**: non-mandatory) - - interface-type (**_value_**: non-mandatory) - - tunnel-info - - tunnel-type (**_value_**: non-mandatory) - - tunnel-dst-address (**_value_**: non-mandatory) - - tunnel-src-address (**_value_**: non-mandatory) - - src-mac-address (**_value_**: non-mandatory) - - dst-mac-address (**_value_**: non-mandatory) - - dst-ip-address (**_value_**: non-mandatory) - -- dns-rule - - id (**_array_**: non-mandatory) - - domain-name (**_value_**: non-mandatory) - - ip-address-type (**_value_**: non-mandatory) - - ip-address (**_value_**: non-mandatory) - - ttl (**_value_**: non-mandatory) - -- latency - - max-latency (**_value_**: non-mandatory) - -- terminate-app-instance-op-config - - min-graceful-termination-timeout (**_value_**: non-mandatory) - - max-recommended-graceful-termination-timeout (**_value_**: non-mandatory) - - vnf-parameters - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - -- change-app-instance-state-op-config - - min-graceful-stop-timeout (**_value_**: non-mandatory) - - max-recommended-graceful-stop-timeout (**_value_**: non-mandatory) - - vnf-parameters - - key (**_array_**: non-mandatory) - - value (**_value_**: non-mandatory) - -- user-context-transfer-capability - - stateful-application (**_value_**: non-mandatory) - - user-context-transfer-support (**_value_**: non-mandatory) - -- network-policy - - steered-network (**_value_**: non-mandatory) - - cellular-network (**_value_**: non-mandatory) - - wifi-network (**_value_**: non-mandatory) - - fixed-access-network (**_value_**: non-mandatory) - -- artifacts - - name (**_array_**: non-mandatory) - - description (**_value_**: non-mandatory) - - type (**_value_**: non-mandatory) - - file (**_value_**: non-mandatory) \ No newline at end of file diff --git a/docs/mec_app.md b/docs/create_mec_app_descriptor.md similarity index 97% rename from docs/mec_app.md rename to docs/create_mec_app_descriptor.md index 54ad506..d7b292a 100644 --- a/docs/mec_app.md +++ b/docs/create_mec_app_descriptor.md @@ -1,3 +1,7 @@ +--- +sidebar_position: 6 +--- + # Create a MEC App Descriptor 1. Create the application diff --git a/docs/demonstration_app.md b/docs/demonstration_app.md new file mode 100644 index 0000000..f898150 --- /dev/null +++ b/docs/demonstration_app.md @@ -0,0 +1,27 @@ +--- +sidebar_position: 4 +--- + +# Demonstration App + +> [Demo App Link Here](https://github.com/PedroDSFerreira/video-object-detection) + +![Example Image](./images/demo_app.png) + +## Purpose: + +This application is used to showcase the onboarding of MEC App. + +## Overview: + +Object detection client-server application: Server receives a video stream from the client. Using YOLOv3, the server processes the video stream and returns the number of detected objects and their position for each frame. + +## Infrastructure: + +The application operates within a Containerized Network Function (CNF), which is a form of Virtualized Network Function (VNF). In this setup, the virtualized hardware runs inside a container on its machine. + +**Deployment**: The Demo App is containerized using Docker and is managed by Kubernetes, a container orchestration platform. This setup ensures scalability, reliability, and efficient resource utilization. + +## More Information: + +For detailed documentation and access to the codebase, visit the [GitHub repository](https://github.com/PedroDSFerreira/video-object-detection). \ No newline at end of file diff --git a/docs/images/infrastructure.png b/docs/images/infrastructure.png new file mode 100644 index 0000000..914a7fa Binary files /dev/null and b/docs/images/infrastructure.png differ diff --git a/docs/images/osm_mec_architecture.drawio.png b/docs/images/osm_mec_architecture.drawio.png deleted file mode 100644 index 99a024d..0000000 Binary files a/docs/images/osm_mec_architecture.drawio.png and /dev/null differ diff --git a/docs/infrastructure.md b/docs/infrastructure.md new file mode 100644 index 0000000..a274616 --- /dev/null +++ b/docs/infrastructure.md @@ -0,0 +1,77 @@ +--- +sidebar_position: 2 +--- + +# Infrastructure + +## Project Goals + +- Create a CFS Portal enabling the instantiation, termination and monitoring of MEC Apps. + +- Develop an MEC Application Orchestrator capable of deploying MEC Apps as VNFs through OSM platform. + +- Create a video processing application to showcase the project's functionalities. + +## Architecture + +[Project Diagram](./images/infrastructure.png) + +### CFS Portal + +The CFS Portal is the UI for interacting with the system. + +- Dashboard: Overview of the system + +- App Catalog: View and create MEC Apps + +- MEC Instances: View and update instantiated MEC Apps + +- VIM Accounts: View and create VIM Accounts + +### OSS + +The Operations Support System is responsible for redirecting the user requests to MEAO. + +### MEAO +The MEC Application Orchestrator is responsible for: + +- Instantiating, updating, and terminating MEC Apps. + +- Deploying MEC Apps as VNFs. + +- Monotoring MEC Apps. + +## Interaction Between Components + +### API + +The API enables communication between the CFS Portal and OSS, as well as allowing users to make requests directly to the API instead of using the CFS Portal. + +### Kafka + +Kafka enables communication between OSS and MEAO. + +The Kafka topics available are: +- new_app_pkg +- instantiate_app_pkg +- update_app_pkg +- terminate_app_pkg +- delete_app_pkg +- responses + +### MongoDB + +Mongo Database is used to storage of file descriptors. + +Document fields are: + +- app_id +- name +- provider +- version +- mec-version +- info-name +- description +- appd +- ns_pkg_id +- vnf_pkg_id \ No newline at end of file diff --git a/docs/intro.md b/docs/intro.md index 9af8fe0..17c7954 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -3,7 +3,7 @@ sidebar_position: 1 slug: / --- -# Getting Started +# Get Started ## Requirements @@ -51,11 +51,9 @@ slug: / ## CFS Portal ### Add MEC App to Catalog -After [creating a MEC App Descriptor](mec_app.md), go to `App Catalog` and upload descriptor: +After [creating a MEC App Descriptor](create_mec_app_descriptor.md), go to `App Catalog` and upload descriptor: ![Example Image](./images/dashboard.png)

![Example Image](./images/app_catalog.png) - - diff --git a/docs/mec_appd_fields.md b/docs/mec_appd_fields.md new file mode 100644 index 0000000..a483569 --- /dev/null +++ b/docs/mec_appd_fields.md @@ -0,0 +1,9 @@ +--- +sidebar_position: 7 +--- + +# MEC App Descriptor Fields + +> **_NOTE:_** The fields are used as described in [ETSI GS MEC 010-2 V2.2.1](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.02.01_60/gs_MEC01002v020201p.pdf). + +You can find the fields used in the mec app descriptor [here](https://atnog.github.io/osm-mec/mec-app-descriptor-parameters). diff --git a/docs/project.md b/docs/project.md deleted file mode 100644 index 557794c..0000000 --- a/docs/project.md +++ /dev/null @@ -1,135 +0,0 @@ -# Project - - -## Project Goals - -- Create a CFS Portal enabling the instantiation, termination and monitoring of MEC Apps. - -- Develop an MEC Application Orchestrator capable of deploying MEC Apps as VNFs through OSM platform. - -- Create a video processing application to showcase the project's functionalities. - - -## Main Components - -![Project Diagram](./images/osm_mec_architecture.drawio.png) - - -### CFS Portal - -The CFS Portal is the UI for interacting with the system. - -- Dashboard: Overview of the system - -- App Catalog: View and create MEC Apps - -- MEC Instances: View and update instantiated MEC Apps - -- VIM Accounts: View and create VIM Accounts - - -### OSS - -The Operations Support System is responsible to redirect the user requests to MEAO. - - -### MEAO - -The MEC Application Orchestrator is responsible for: - -- Instantiating, updating, and terminating MEC Apps. - -- Deploying MEC Apps as VNFs. - -- Monotoring MEC Apps. - -## Interaction Between Components - -### API - -The API enables communication between the CFS Portal and OSS, as well as allowing users to make requests directly to the API instead of using the CFS Portal. - -### Kafka - -Kafka enables communication between OSS and MEAO. - -The Kafka topics available are: -- new_app_pkg -- instantiate_app_pkg -- update_app_pkg -- terminate_app_pkg -- delete_app_pkg -- responses - - -### MongoDB - -Mongo Database is used to storage of file descriptors. - -Document fields are: -- app_id -- name -- provider -- version -- mec-version -- info-name -- description -- appd -- ns_pkg_id -- vnf_pkg_id - - -## Requests Process Flow - -### App Package - -#### POST -![New App Package](./images/new_app_pkg.png) - -#### GET (List) -![List App Packages](./images/list_app_pkgs.png) - -### App Package/`{app_pkg_id}` - -#### GET (Individual Package) -![Get App Package](./images/get_app_pkg.png) - - -#### PUT -![Update App Package](./images/update_app_pkg.png) - - -#### DELETE -![Delete App Package](./images/delete_app_pkg.png) - -### App Package/`{app_pkg_id}`/instantiate - -#### Instantiate -![Instantiate App Package](./images/instantiate_app_pkg.png) - -#### Terminate - -![Terminate App Package](./images/terminate_app_pkg.png) - - - - -## [Demonstration App](https://github.com/PedroDSFerreira/video-object-detection) - -![Example Image](./images/demo_app.png) - -### Purpose: -This application is used to showcase the onboarding of MEC App. - -### Overview: -**Object detection client-server application:** -Server receives a video stream from the client. Using YOLOv3, the server processes the video stream and returns the number of detected objects and their position for each frame. - -### Infrastructure: -The application operates within a Containerized Network Function (CNF), which is a form of Virtualized Network Function (VNF). In this setup, the virtualized hardware runs inside a container on its machine. - -**Deployment:** -The Demo App is containerized using Docker and is managed by Kubernetes, a container orchestration platform. This setup ensures scalability, reliability, and efficient resource utilization. - -### More Information: -For detailed documentation and access to the codebase, visit the [GitHub repository](https://github.com/PedroDSFerreira/video-object-detection). \ No newline at end of file diff --git a/docs/tutorial-basics/_category_.json b/docs/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55..0000000 --- a/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/docs/tutorial-basics/congratulations.md b/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a0..0000000 --- a/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/docs/tutorial-basics/create-a-blog-post.md b/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 550ae17..0000000 --- a/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much as you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/docs/tutorial-basics/create-a-document.md b/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index c22fe29..0000000 --- a/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: 'Hi!' -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -export default { - tutorialSidebar: [ - 'intro', - // highlight-next-line - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], -}; -``` diff --git a/docs/tutorial-basics/create-a-page.md b/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index 20e2ac3..0000000 --- a/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from 'react'; -import Layout from '@theme/Layout'; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

-
- ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/docs/tutorial-basics/deploy-your-site.md b/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee0..0000000 --- a/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/docs/tutorial-basics/markdown-features.mdx b/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 35e0082..0000000 --- a/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - -````md -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` -```` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - -```md -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: -``` - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/docs/tutorial-extras/_category_.json b/docs/tutorial-extras/_category_.json deleted file mode 100644 index a8ffcc1..0000000 --- a/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3, - "link": { - "type": "generated-index" - } -} diff --git a/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164..0000000 Binary files a/docs/tutorial-extras/img/docsVersionDropdown.png and /dev/null differ diff --git a/docs/tutorial-extras/img/localeDropdown.png b/docs/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc..0000000 Binary files a/docs/tutorial-extras/img/localeDropdown.png and /dev/null differ diff --git a/docs/tutorial-extras/manage-docs-versions.md b/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index ccda0b9..0000000 --- a/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/docs/tutorial-extras/translate-your-site.md b/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index b5a644a..0000000 --- a/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/docusaurus.config.js b/docusaurus.config.js index bbcea0c..a76787c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -4,23 +4,23 @@ // There are various equivalent ways to declare your Docusaurus config. // See: https://docusaurus.io/docs/api/docusaurus-config -import {themes as prismThemes} from 'prism-react-renderer'; +import { themes as prismThemes } from 'prism-react-renderer'; /** @type {import('@docusaurus/types').Config} */ const config = { title: 'OSM-MEC', tagline: 'MEC Apps through NFV Orchestration', - favicon: 'img/icons8-favicon-32.png', + favicon: 'img/osm-mec_logo.ico', // Set the production url of your site here - url: 'https://SamuTheCoder.github.io/', + url: 'https://ATNoG.github.io/', // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' baseUrl: '/osm-mec-wiki/', // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. - organizationName: 'SamuTheCoder', // Usually your GitHub org/user name. + organizationName: 'ATNoG', // Usually your GitHub org/user name. projectName: 'osm-mec-wiki', // Usually your repo name. onBrokenLinks: 'throw', @@ -45,7 +45,7 @@ const config = { // Please change this to your repo. // Remove this to remove the "edit this page" links. editUrl: - 'https://github.com/SamuTheCoder/osm-mec-wiki/tree/main/', + 'https://github.com/ATNoG/osm-mec-wiki/tree/main/', }, blog: false, theme: { @@ -64,11 +64,10 @@ const config = { title: 'OSM-MEC', logo: { alt: 'My Site Logo', - src: 'img/icons8-favicon-32.png', + src: 'img/osm-mec_logo.ico', }, - //items: [ - - //], + // items: [ + // ], }, footer: { style: 'dark', @@ -96,7 +95,7 @@ const config = { items: [ { label: 'GitHub', - href: 'https://github.com/PedroDSFerreira/osm-mec', + href: 'https://github.com/ATNoG/osm-mec', }, ], }, diff --git a/sidebars.js b/sidebars.js index 4563327..e965641 100644 --- a/sidebars.js +++ b/sidebars.js @@ -20,10 +20,12 @@ const sidebars = { tutorialSidebar: [ 'intro', - 'project', - 'api_related', - 'mec_app', - 'appd_fields', + 'infrastructure', + 'api_requests_flow', + 'demonstration_app', + 'api_docs', + 'create_mec_app_descriptor', + 'mec_appd_fields', ], }; diff --git a/src/css/custom.css b/src/css/custom.css index 2bc6a4c..af0fa2e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -6,25 +6,25 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; + --ifm-color-primary: #7e57c2; + --ifm-color-primary-dark: #673ab7; + --ifm-color-primary-darker: #5e35b1; + --ifm-color-primary-darkest: #512da8; + --ifm-color-primary-light: #9575cd; + --ifm-color-primary-lighter: #b39ddb; + --ifm-color-primary-lightest: #d1c4e9; --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); + --docusaurus-highlighted-code-line-bg: rgba(128, 0, 128, 0.1); /* subtle purple highlight */ } /* For readability concerns, you should choose a lighter palette in dark mode. */ [data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); + --ifm-color-primary: #9c27b0; + --ifm-color-primary-dark: #8e24aa; + --ifm-color-primary-darker: #7b1fa2; + --ifm-color-primary-darkest: #6a1b9a; + --ifm-color-primary-light: #ab47bc; + --ifm-color-primary-lighter: #ce93d8; + --ifm-color-primary-lightest: #e1bee7; + --docusaurus-highlighted-code-line-bg: rgba(128, 0, 128, 0.3); /* more pronounced purple highlight for dark mode */ } diff --git a/static/img/osm-mec_logo.ico b/static/img/osm-mec_logo.ico new file mode 100644 index 0000000..5cba585 Binary files /dev/null and b/static/img/osm-mec_logo.ico differ