diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cc798650..860b99fe 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-22.04 timeout-minutes: 30 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: setup go uses: actions/setup-go@v4 with: @@ -28,3 +28,20 @@ jobs: run: | echo '{ "cookie_key_pair": "RmdxSzJhWUxEMmtpV0F3aHdqWStnQ0Yva0E3V0JrSGlDUGZCK3NWNTFKZz0=", "google_api_key":"DUMMY", "google_map_id":"DUMMY"}' > secrets.json ./ci.sh + + test-docs: + name: Docs + runs-on: ubuntu-22.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@v3 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + extended: true + - name: Build docs + run: hugo --source docs --minify \ No newline at end of file diff --git a/README.md b/README.md index 5e21e289..832250db 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,20 @@ -# Oinari +# Oinari(オイナリ) -Oinari(オイナリ) is the PoC project using distributed algorithms. In this program, by connecting users' browsers and collaborating with each other, it is possible to diffuse the data with little use of the server. +## Overview +Oinari is a distributed operating system targeting XR (particularly MR) and IoT. Despite being referred to as an operating system, it does not require installation on specific devices; instead, it operates as a node in the system accessible through [www.oinari.io](https://www.oinari.io). -## Commands +Applications running on Oinari run on the Nodes that are part of the system, i.e., the user's device, rather than in close geographic proximity to the terminal, as in Fog computing or Edge computing. The output of the application is also reflected in other geographically nearby Nodes, specifically, objects are rendered in XR space. Therefore, Oinari's space is not limited by server resources and is scalable. Also, because programs run in geographic proximity, it is expected to improve the operational responsiveness of the application. -Prepare keys for embedding and build this project. +Applications on Oinari can continue to run on other Nodes even if some Nodes are down. Applications developed using the specialized API will have migration capabilities and will continue to run regardless of whether the Node is alive or dead. Applications are WebAssembly and language-independent (although currently only APIs for the Go language is only available). -```sh -$ cat secrets.json -{ - "cookie_key_pair": "", - "github_client_id": "", - "github_client_secret": "", - "google_api_key": "", - "google_map_id": "" -} +## Getting Started -$ make setup -$ make build -``` +You can try Oinari working as a web service by accessing [www.oinari.io](https://www.oinari.io). Please refer to the [User's Guide]() for login and simple usage. To develop and run an application using Oinari's features, please refer to the [Development Guide](). + +## Documentation + +Documentation can be browsed online [here](https://www.oinari.io/docs/). ## License -Apache License 2.0 \ No newline at end of file +Oinari is licensed under the Apache License 2.0. Check the [LICENSE](https://github.com/llamerada-jp/oinari/blob/main/LICENSE) for details. \ No newline at end of file diff --git a/docs/assets/_custom.scss b/docs/assets/_custom.scss index dea01100..96b967ab 100644 --- a/docs/assets/_custom.scss +++ b/docs/assets/_custom.scss @@ -14,6 +14,13 @@ body::before { z-index: 1; } +.book-brand img { + -ms-interpolation-mode: nearest-neighbor; + image-rendering: -webkit-optimize-contrast; + image-rendering: -moz-crisp-edges; + image-rendering: pixelated; +} + .markdown a:visited { color: #D9972F; } diff --git a/docs/content/_index.en.md b/docs/content/_index.en.md new file mode 100644 index 00000000..c37fca15 --- /dev/null +++ b/docs/content/_index.en.md @@ -0,0 +1,23 @@ +--- +title: Welcome +type: docs +--- + +# Oinari(オイナリ) + +## Overview +Oinari is a distributed operating system targeting XR (particularly MR) and IoT. Despite being referred to as an operating system, it does not require installation on specific devices; instead, it operates as a node in the system accessible through [www.oinari.io](https://www.oinari.io). + +Applications running on Oinari run on the Nodes that are part of the system, i.e., the user's device, rather than in close geographic proximity to the terminal, as in Fog computing or Edge computing. The output of the application is also reflected in other geographically nearby Nodes, specifically, objects are rendered in XR space. Therefore, Oinari's space is not limited by server resources and is scalable. Also, because programs run in geographic proximity, it is expected to improve the operational responsiveness of the application. + +Applications on Oinari can continue to run on other Nodes even if some Nodes are down. Applications developed using the specialized API will have migration capabilities and will continue to run regardless of whether the Node is alive or dead. Applications are WebAssembly and language-independent (although currently only APIs for the Go language is only available). + +For a more detailed description and technical background, please refer to the [concept]({{< relref "posts/concept.md" >}}) page. + +## Getting Started + +You can try Oinari working as a web service by accessing [www.oinari.io](https://www.oinari.io). Please refer to the [User tutorial]({{< relref "posts/user_tutorial.md" >}}) for login and simple usage. To develop and run an application using Oinari's features, please refer to the [Developer tutorial]({{< relref "posts/developer_tutorial.md" >}}). + +## License + +Oinari is licensed under the Apache License 2.0. Check the [LICENSE](https://github.com/llamerada-jp/oinari/blob/main/LICENSE) for details. \ No newline at end of file diff --git a/docs/content/_index.ja.md b/docs/content/_index.ja.md new file mode 100644 index 00000000..5ce059b8 --- /dev/null +++ b/docs/content/_index.ja.md @@ -0,0 +1,27 @@ +--- +title: ようこそ +type: docs +--- + +# Oinari(オイナリ) + +## 概要 + +Oinari は XR (特に MR) や IoT をターゲットにした分散オペレーティングシステムです。 +オペレーティングシステムといっても、具体的なデバイスにインストールする必要はなく、[www.oinari.io](https://www.oinari.io) へアクセスすることでシステムのノードとして動きます。 + +Oinari 上で動くアプリケーションは、Fog computing や Edge computing のように端末の近いところ、というよりシステムを構成する Node、つまり利用者のデバイス上で動きます。アプリケーションの実行結果は地理的に近いほかの Node にも結果が反映、具体的には XR 空間にオブジェクトがレンダリングされます。そのため、Oinari の空間はサーバリソースに制限を受けずに拡張可能です。またプログラムが地理的に近いところで動くため、アプリケーションの操作レスポンスの向上を期待しています。 + +Oinari 上のアプリケーションは特定の Node が停止しても他の Node で動き続けることができます。専用の API に沿って作られたアプリケーションにはマイグレーション機能が付与され、Node の生死に関わらず実行され続けます。アプリケーションは WebAssembly であり、プログラミング言語に依存しません(ただし、現在提供しているのは Go 言語向けの API だけです)。 + +より詳しい説明、技術的背景は[コンセプト]({{< relref "posts/concept.md" >}})のページを参照してください。 + +## 使い方 + +Web サービスとして稼働している Oinari は [www.oinari.io](https://www.oinari.io) へアクセスして試すことができます。ログインから簡単な使い方については[利用チュートリアル]({{< relref "posts/user_tutorial.md" >}})を参照してください。 +Oinari の機能を利用したアプリケーションを開発、実際に動かすには[開発チュートリアル]({{< relref "posts/developer_tutorial.md" >}})を参照してください。 + +## ライセンス + +Oinari は Apache License 2.0 で開発されています。 +詳細は添付の [LICENSE](https://github.com/llamerada-jp/oinari/blob/main/LICENSE) を参照してください。 \ No newline at end of file diff --git a/docs/content/menu/index.en.md b/docs/content/menu/index.en.md new file mode 100644 index 00000000..a3dac932 --- /dev/null +++ b/docs/content/menu/index.en.md @@ -0,0 +1,10 @@ +--- +headless: true +--- + +- [Concept]({{< relref "posts/concept.md" >}}) +- [User tutorial]({{< relref "posts/user_tutorial.md" >}}) +- [Developer tutorial]({{< relref "posts/developer_tutorial.md" >}}) +- [API reference]({{< relref "posts/api_reference.md" >}}) +- Internals + - [Crosslink]({{< relref "posts/internal/crosslink.md" >}}) \ No newline at end of file diff --git a/docs/content/menu/index.ja.md b/docs/content/menu/index.ja.md new file mode 100644 index 00000000..4cf930aa --- /dev/null +++ b/docs/content/menu/index.ja.md @@ -0,0 +1,10 @@ +--- +headless: true +--- + +- [コンセプト]({{< relref "posts/concept.md" >}}) +- [利用チュートリアル]({{< relref "posts/user_tutorial.md" >}}) +- [開発チュートリアル]({{< relref "posts/developer_tutorial.md" >}}) +- [API reference(En)]({{< relref "posts/api_reference.md" >}}) +- Internals(En) + - [Crosslink]({{< relref "posts/internal/crosslink.md" >}}) \ No newline at end of file diff --git a/docs/content/menu/index.md b/docs/content/menu/index.md deleted file mode 100644 index 5dd9925a..00000000 --- a/docs/content/menu/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -headless: true ---- - -- Internals - - [Crosslink]({{< relref "/posts/internal/crosslink" >}}) \ No newline at end of file diff --git a/docs/content/posts/api_reference.en.md b/docs/content/posts/api_reference.en.md new file mode 100644 index 00000000..792baebb --- /dev/null +++ b/docs/content/posts/api_reference.en.md @@ -0,0 +1,6 @@ +--- +title: API Reference +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/api_reference.ja.md b/docs/content/posts/api_reference.ja.md new file mode 120000 index 00000000..ad1bd84a --- /dev/null +++ b/docs/content/posts/api_reference.ja.md @@ -0,0 +1 @@ +api_reference.en.md \ No newline at end of file diff --git a/docs/content/posts/concept.en.md b/docs/content/posts/concept.en.md new file mode 100644 index 00000000..17772a20 --- /dev/null +++ b/docs/content/posts/concept.en.md @@ -0,0 +1,6 @@ +--- +title: Concept +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/concept.ja.md b/docs/content/posts/concept.ja.md new file mode 100644 index 00000000..598e83c1 --- /dev/null +++ b/docs/content/posts/concept.ja.md @@ -0,0 +1,6 @@ +--- +title: コンセプト +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/developer_tutorial.en.md b/docs/content/posts/developer_tutorial.en.md new file mode 100644 index 00000000..8616800d --- /dev/null +++ b/docs/content/posts/developer_tutorial.en.md @@ -0,0 +1,6 @@ +--- +title: Application developer tutorial +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/developer_tutorial.ja.md b/docs/content/posts/developer_tutorial.ja.md new file mode 100644 index 00000000..792bc328 --- /dev/null +++ b/docs/content/posts/developer_tutorial.ja.md @@ -0,0 +1,6 @@ +--- +title: アプリケーション開発者チュートリアル +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/internal/crosslink.md b/docs/content/posts/internal/crosslink.en.md similarity index 100% rename from docs/content/posts/internal/crosslink.md rename to docs/content/posts/internal/crosslink.en.md diff --git a/docs/content/posts/internal/crosslink.ja.md b/docs/content/posts/internal/crosslink.ja.md new file mode 120000 index 00000000..202e338d --- /dev/null +++ b/docs/content/posts/internal/crosslink.ja.md @@ -0,0 +1 @@ +crosslink.en.md \ No newline at end of file diff --git a/docs/content/posts/user_tutorial.en.md b/docs/content/posts/user_tutorial.en.md new file mode 100644 index 00000000..f912ed39 --- /dev/null +++ b/docs/content/posts/user_tutorial.en.md @@ -0,0 +1,6 @@ +--- +title: User tutorial +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/content/posts/user_tutorial.ja.md b/docs/content/posts/user_tutorial.ja.md new file mode 100644 index 00000000..82c2bbcb --- /dev/null +++ b/docs/content/posts/user_tutorial.ja.md @@ -0,0 +1,6 @@ +--- +title: 利用チュートリアル +type: docs +--- + +TODO \ No newline at end of file diff --git a/docs/hugo.yaml b/docs/hugo.yaml index 7f539eee..2264bfe2 100644 --- a/docs/hugo.yaml +++ b/docs/hugo.yaml @@ -1,11 +1,9 @@ -baseURL: 'https://www.oinari.app/' +baseURL: 'https://www.oinari.io/docs/' title: 'Oinari' theme: 'hugo-book' enableGitInfo: true -languageCode: 'en-us' - menu: after: - name: 'Github' @@ -15,5 +13,21 @@ menu: params: BookTheme: 'auto' BookMenuBundle: '/menu' + BookLogo: 'logo.png' BookRepo: https://github.com/llamerada-jp/oinari/docs - customCss: 'css/custom.css' \ No newline at end of file + customCss: 'css/custom.css' + +defaultContentLanguage: en +defaultContentLanguageInSubdir: false + +languages: + en: + languageName: English + disabled: false + languageCode: 'en' + weight: 1 + ja: + languageName: 日本語 + disabled: false + languageCode: 'ja' + weight: 2 \ No newline at end of file diff --git a/docs/static/favicon.png b/docs/static/favicon.png new file mode 100644 index 00000000..c3290586 Binary files /dev/null and b/docs/static/favicon.png differ diff --git a/docs/static/logo.png b/docs/static/logo.png new file mode 100644 index 00000000..c3290586 Binary files /dev/null and b/docs/static/logo.png differ