Merge pull request 'complete beOS Pro rebrand and add native verification' (#1) from beos-rebrand-native-ci into main
Reviewed-on: #1
85
.gitea/workflows/native-verification.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
name: Native Verification
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release-*
|
||||
paths:
|
||||
- .gitea/workflows/native-verification.yaml
|
||||
- daemon/**
|
||||
- framework/app-service/**
|
||||
- docs/**
|
||||
- build/verify-native-in-container.sh
|
||||
pull_request:
|
||||
paths:
|
||||
- .gitea/workflows/native-verification.yaml
|
||||
- daemon/**
|
||||
- framework/app-service/**
|
||||
- docs/**
|
||||
- build/verify-native-in-container.sh
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
docs-build:
|
||||
name: Build Docs
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: docs
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
- name: Install docs dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build docs
|
||||
run: npm run build
|
||||
|
||||
appservice-native-build:
|
||||
name: Build App-Service Native
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24.11'
|
||||
|
||||
- name: Install native dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y btrfs-progs libbtrfs-dev
|
||||
|
||||
- name: Build app-service
|
||||
run: go build ./...
|
||||
working-directory: framework/app-service
|
||||
|
||||
daemon-native-build:
|
||||
name: Build Daemon Native
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24.11'
|
||||
|
||||
- name: Install native dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libudev-dev libpcap-dev
|
||||
|
||||
- name: Build daemon
|
||||
run: go build ./cmd/...
|
||||
working-directory: daemon
|
||||
@@ -24,9 +24,9 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y btrfs-progs libbtrfs-dev
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-go@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24.6'
|
||||
go-version: '1.24.11'
|
||||
- run: make build
|
||||
working-directory: framework/app-service
|
||||
|
||||
88
.github/workflows/native-verification.yaml
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
name: Native Verification
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- 'release-*'
|
||||
paths:
|
||||
- '.github/workflows/native-verification.yaml'
|
||||
- 'daemon/**'
|
||||
- 'framework/app-service/**'
|
||||
- 'docs/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/native-verification.yaml'
|
||||
- 'daemon/**'
|
||||
- 'framework/app-service/**'
|
||||
- 'docs/**'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
docs-build:
|
||||
name: Build Docs
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: docs
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
cache: npm
|
||||
cache-dependency-path: docs/package-lock.json
|
||||
|
||||
- name: Install docs dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build docs
|
||||
run: npm run build
|
||||
|
||||
appservice-native-build:
|
||||
name: Build App-Service Native
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24.11'
|
||||
|
||||
- name: Install native dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y btrfs-progs libbtrfs-dev
|
||||
|
||||
- name: Build app-service
|
||||
run: go build ./...
|
||||
working-directory: framework/app-service
|
||||
|
||||
daemon-native-build:
|
||||
name: Build Daemon Native
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24.11'
|
||||
|
||||
- name: Install native dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libudev-dev libpcap-dev
|
||||
|
||||
- name: Build daemon
|
||||
run: go build ./cmd/...
|
||||
working-directory: daemon
|
||||
88
README.md
@@ -1,16 +1,9 @@
|
||||
<div align="center">
|
||||
|
||||
# Olares: An Open-Source Personal Cloud to </br>Reclaim Your Data<!-- omit in toc -->
|
||||
# beOS Pro: A Self-Hosted Server Platform You Control<!-- omit in toc -->
|
||||
|
||||
[](#)<br/>
|
||||
[](https://github.com/beclab/olares/commits/main)
|
||||

|
||||
[](https://github.com/beclab/olares/releases)
|
||||
[](https://github.com/beclab/Olares/stargazers)
|
||||
[](https://discord.gg/olares)
|
||||
[](https://github.com/beclab/olares/blob/main/LICENSE)
|
||||
|
||||
<a href="https://trendshift.io/repositories/15376" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15376" alt="beclab%2FOlares | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
[](./LICENSE)
|
||||
|
||||
<p>
|
||||
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
|
||||
@@ -21,67 +14,52 @@
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://olares.com">Website</a> ·
|
||||
<a href="https://docs.olares.com">Documentation</a> ·
|
||||
<a href="https://www.olares.com/larepass">Download LarePass</a> ·
|
||||
<a href="https://github.com/beclab/apps">Olares Apps</a> ·
|
||||
<a href="https://space.olares.com">Olares Space</a>
|
||||
<a href="./README.md">Overview</a> ·
|
||||
<a href="./docs">Docs Source</a> ·
|
||||
<a href="./apps">Applications</a> ·
|
||||
<a href="./cli">CLI</a> ·
|
||||
<a href="./daemon">Daemon</a>
|
||||
</p>
|
||||
|
||||
>*The modern internet built on public clouds is increasingly threatening your personal data privacy. As reliance on services like ChatGPT, Midjourney, and Facebook grows, so does the risk to your digital autonomy. Your data lives on their servers, subject to their terms, tracking, and potential censorship.*
|
||||
>
|
||||
>*It's time for a change.*
|
||||
|
||||

|
||||
We believe you have a fundamental right to control your digital life. The most effective way to uphold this right is by hosting your data locally, on your own hardware.
|
||||
beOS Pro is a local-first server platform for running your own applications, storage, AI workloads, and internal services on hardware you control.
|
||||
|
||||
Olares is an **open-source personal cloud operating system** designed to empower you to own and manage your digital assets locally. Instead of relying on public cloud services, you can deploy powerful open-source alternatives locally on Olares, such as Ollama for hosting LLMs, ComfyUI for image generation, and Perplexica for private, AI-driven search and reasoning. Imagine the power of the cloud, but with you in complete command.
|
||||
This fork is being refactored to remove mandatory dependency on vendor-managed activation, DNS, CDN, and remote control-plane services. The goal is straightforward: install on bare metal or on top of an existing Linux server, finish setup locally, and operate it without connecting to any external beOS-operated infrastructure unless you explicitly configure optional providers.
|
||||
|
||||
> 🌟 *Star us to receive instant notifications about new releases and updates.*
|
||||
|
||||
## Architecture
|
||||
|
||||
Just as Public clouds offer IaaS, PaaS, and SaaS layers, Olares provides open-source alternatives to each of these layers.
|
||||
beOS Pro is structured as a host bootstrap layer, a Kubernetes orchestration layer, and a containerized platform/application layer.
|
||||
|
||||

|
||||
For the current architecture source, start with `docs/developer/concepts/system-architecture.md`.
|
||||
|
||||
For detailed description of each component, refer to [Olares architecture](https://docs.olares.com/developer/concepts/system-architecture.html).
|
||||
|
||||
> 🔍 **How is Olares different from traditional NAS?**
|
||||
> 🔍 **How is beOS Pro different from a traditional NAS?**
|
||||
>
|
||||
> Olares focuses on building an all-in-one self-hosted personal cloud experience. Its core features and target users differ significantly from traditional Network Attached Storage (NAS) systems, which primarily focus on network storage. For more details, see [Compare Olares and NAS](https://blog.olares.com/compare-olares-and-nas/).
|
||||
> beOS Pro focuses on running a full self-hosted server platform, not just network-attached storage. It combines host bootstrap, Kubernetes orchestration, apps, storage, and AI services in one stack.
|
||||
|
||||
## Features
|
||||
|
||||
Olares offers a wide array of features designed to enhance security, ease of use, and development flexibility:
|
||||
beOS Pro offers a wide array of features designed to enhance security, ease of use, and development flexibility:
|
||||
|
||||
- **Enterprise-grade security**: Simplified network configuration using Tailscale, Headscale, Cloudflare Tunnel, and FRP.
|
||||
- **Secure and permissionless application ecosystem**: Sandboxing ensures application isolation and security.
|
||||
- **Unified file system and database**: Automated scaling, backups, and high availability.
|
||||
- **Single sign-on**: Log in once to access all applications within Olares with a shared authentication service.
|
||||
- **Single sign-on**: Log in once to access all applications within the platform with a shared authentication service.
|
||||
- **AI capabilities**: Comprehensive solution for GPU management, local AI model hosting, and private knowledge bases while maintaining data privacy.
|
||||
- **Built-in applications**: Includes file manager, sync drive, vault, reader, app market, settings, and dashboard.
|
||||
- **Seamless anywhere access**: Access your devices from anywhere using dedicated clients for mobile, desktop, and browsers.
|
||||
- **Development tools**: Comprehensive development tools for effortless application development and porting.
|
||||
|
||||
Here are some screenshots from the UI for a sneak peek:
|
||||
|
||||
| **Desktop–Streamlined and familiar portal** | **Files–A secure home to your data**
|
||||
| :--------: | :-------: |
|
||||
|  |  |
|
||||
| **Vault–1Password alternative**|**Market–App ecosystem in your control** |
|
||||
|  |  |
|
||||
|**Wise–Your digital secret garden** | **Settings–Manage Olares efficiently** |
|
||||
|  |  |
|
||||
|**Dashboard–Constant system monitoring** | **Profile–Your unique homepage** |
|
||||
|  |  |
|
||||
| **Studio–Develop, debug, and deploy**|**Control Hub–Manage Kubernetes clusters easily** |
|
||||
|  | |
|
||||
The repository includes a full application suite covering desktop shell, files, vault, market, settings, dashboard, studio, and control hub.
|
||||
|
||||
|
||||
## Key use cases
|
||||
|
||||
Here is why and where you can count on Olares for private, powerful, and secure sovereign cloud experience:
|
||||
Here is where beOS Pro is a strong fit:
|
||||
|
||||
🤖 **Edge AI**: Run cutting-edge open AI models locally, including large language models, computer vision, and speech recognition. Create private AI services tailored to your data for enhanced functionality and privacy. <br>
|
||||
|
||||
@@ -93,7 +71,7 @@ Here is why and where you can count on Olares for private, powerful, and secure
|
||||
|
||||
🏡 **Smart Home Hub**: Create a central control point for your IoT devices and home automation. <br>
|
||||
|
||||
🤝 **User-owned decentralized social media**: Easily install decentralized social media apps such as Mastodon, Ghost, and WordPress on Olares, allowing you to build a personal brand without the risk of being banned or paying platform commissions.<br>
|
||||
🤝 **User-owned publishing and communities**: Easily install apps such as Mastodon, Ghost, and WordPress without depending on third-party platforms.<br>
|
||||
|
||||
📚 **Learning platform**: Explore self-hosting, container orchestration, and cloud technologies hands-on.
|
||||
|
||||
@@ -101,43 +79,39 @@ Here is why and where you can count on Olares for private, powerful, and secure
|
||||
|
||||
### System compatibility
|
||||
|
||||
Olares has been tested and verified on the following Linux platforms:
|
||||
beOS Pro has been tested and verified on the following Linux platforms:
|
||||
|
||||
- Ubuntu 24.04 LTS or later
|
||||
- Debian 11 or later
|
||||
|
||||
### Set up Olares
|
||||
To get started with Olares on your own device, follow the [Getting Started Guide](https://docs.olares.com/manual/get-started/) for step-by-step instructions.
|
||||
### Set up beOS Pro
|
||||
To get started, review the install and architecture sources in this repository, especially `docs/manual/get-started/` and `docs/developer/concepts/system-architecture.md`.
|
||||
|
||||
## Project navigation
|
||||
This section lists the main directories in the Olares repository:
|
||||
This section lists the main directories in the repository:
|
||||
|
||||
* **[`apps`](./apps)**: Contains the code for system applications, primarily for `larepass`.
|
||||
* **[`cli`](./cli)**: Contains the code for `olares-cli`, the command-line interface tool for Olares.
|
||||
* **[`daemon`](./daemon)**: Contains the code for `olaresd`, the system daemon process.
|
||||
* **[`apps`](./apps)**: Contains the code for the built-in applications and user shell.
|
||||
* **[`cli`](./cli)**: Contains the code for `beos-cli`, the command-line interface tool.
|
||||
* **[`daemon`](./daemon)**: Contains the code for `beosd`, the system daemon process.
|
||||
* **[`docs`](./docs)**: Contains documentation for the project.
|
||||
* **[`framework`](./framework)**: Contains the Olares system services.
|
||||
* **[`framework`](./framework)**: Contains the core system services.
|
||||
* **[`infrastructure`](./infrastructure)**: Contains code related to infrastructure components such as computing, storage, networking, and GPUs.
|
||||
* **[`platform`](./platform)**: Contains code for cloud-native components like databases and message queues.
|
||||
* **`vendor`**: Contains code from third-party hardware vendors.
|
||||
|
||||
## Contributing to Olares
|
||||
## Contributing to beOS Pro
|
||||
|
||||
We are welcoming contributions in any form:
|
||||
|
||||
- If you want to develop your own applications on Olares, refer to:<br>
|
||||
https://docs.olares.com/developer/develop/
|
||||
- If you want to develop your own applications on beOS Pro, start with the code in `apps/`, `framework/`, and `platform/`.
|
||||
|
||||
|
||||
- If you want to help improve Olares, refer to:<br>
|
||||
https://docs.olares.com/developer/contribute/olares.html
|
||||
- If you want to help improve beOS Pro, open issues and pull requests in this fork.
|
||||
|
||||
## Community & contact
|
||||
|
||||
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions). Best for sharing feedback and asking questions.
|
||||
* [**GitHub Issues**](https://github.com/beclab/olares/issues). Best for filing bugs you encounter using Olares and submitting feature proposals.
|
||||
* [**Discord**](https://discord.gg/olares). Best for sharing anything Olares.
|
||||
* Use your fork's issue tracker and discussion channels for support and development planning.
|
||||
|
||||
## Special thanks
|
||||
|
||||
The Olares project has incorporated numerous third-party open source projects, including: [Kubernetes](https://kubernetes.io/), [Kubesphere](https://github.com/kubesphere/kubesphere), [Padloc](https://padloc.app/), [K3S](https://k3s.io/), [JuiceFS](https://github.com/juicedata/juicefs), [MinIO](https://github.com/minio/minio), [Envoy](https://github.com/envoyproxy/envoy), [Authelia](https://github.com/authelia/authelia), [Infisical](https://github.com/Infisical/infisical), [Dify](https://github.com/langgenius/dify), [Seafile](https://github.com/haiwen/seafile),[HeadScale](https://headscale.net/), [tailscale](https://tailscale.com/), [Redis Operator](https://github.com/spotahome/redis-operator), [Nitro](https://nitro.jan.ai/), [RssHub](http://rsshub.app/), [predixy](https://github.com/joyieldInc/predixy), [nvshare](https://github.com/grgalex/nvshare), [LangChain](https://www.langchain.com/), [Quasar](https://quasar.dev/), [TrustWallet](https://trustwallet.com/), [Restic](https://restic.net/), [ZincSearch](https://zincsearch-docs.zinc.dev/), [filebrowser](https://filebrowser.org/), [lego](https://go-acme.github.io/lego/), [Velero](https://velero.io/), [s3rver](https://github.com/jamhall/s3rver), [Citusdata](https://www.citusdata.com/).
|
||||
beOS Pro incorporates numerous third-party open source projects, including Kubernetes, KubeSphere, K3s, JuiceFS, MinIO, Envoy, Authelia, Infisical, Seafile, Headscale, Tailscale, Restic, Velero, and many others used throughout this stack.
|
||||
|
||||
88
README_CN.md
@@ -1,16 +1,16 @@
|
||||
<div align="center">
|
||||
|
||||
# Olares:助您重获数据主权的开源个人云
|
||||
# beOS Pro:助您重获数据主权的开源个人云
|
||||
|
||||
[](#)<br/>
|
||||
[](https://github.com/beclab/olares/commits/main)
|
||||
[](https://github.com/beclab/olares/commits/main)
|
||||

|
||||
[](https://github.com/beclab/olares/releases)
|
||||
[](https://github.com/beclab/Olares/stargazers)
|
||||
[](https://github.com/beclab/olares/releases)
|
||||
[](https://github.com/beclab/beOS Pro/stargazers)
|
||||
[](https://discord.gg/olares)
|
||||
[](https://github.com/beclab/olares/blob/main/LICENSE)
|
||||
|
||||
<a href="https://trendshift.io/repositories/15376" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15376" alt="beclab%2FOlares | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
<a href="https://trendshift.io/repositories/15376" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15376" alt="beclab%2FbeOS Pro | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
|
||||
<p>
|
||||
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
|
||||
@@ -21,46 +21,46 @@
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://olares.com">网站</a> ·
|
||||
<a href="https://docs.olares.com">文档</a> ·
|
||||
<a href="https://www.olares.cn/larepass">下载 LarePass</a> ·
|
||||
<a href="https://github.com/beclab/apps">Olares 应用</a> ·
|
||||
<a href="https://space.olares.com">Olares Space</a>
|
||||
<a href="https://beos.local">网站</a> ·
|
||||
<a href="https://docs.beos.local">文档</a> ·
|
||||
<a href="https://www.beos.local/larepass">下载 beOS Pro app</a> ·
|
||||
<a href="https://github.com/beclab/apps">beOS Pro 应用</a> ·
|
||||
<a href="https://space.beos.local">Remote Space</a>
|
||||
</p>
|
||||
|
||||
> *基于公有云构建的现代互联网日益威胁着您的个人数据隐私。随着您对 ChatGPT、Midjourney 和脸书等服务的依赖加深,您对数字自主权的掌控也在减弱。您的数据存储在他人服务器上,受其条款约束,被追踪并审查。*
|
||||
>
|
||||
> *是时候做出改变了。*
|
||||
|
||||

|
||||

|
||||
|
||||
我们坚信,**您拥有掌控自己数字生活的基本权利**。维护这一权利最有效的方式,就是将您的数据托管在本地,在您自己的硬件上。
|
||||
|
||||
Olares 是一款开源个人云操作系统,旨在让您能够轻松在本地拥有并管理自己的数字资产。您无需再依赖公有云服务,而可以在 Olares 上本地部署强大的开源平替服务或应用,例如可以使用 Ollama 托管大语言模型,使用 ComfyUI 生成图像,以及使用 Perplexica 打造本地化、注重隐私的 AI 搜索与问答体验。Olares 让您坐拥云计算的强大威力,又能完全将其置于自己掌控之下。
|
||||
beOS Pro 是一款开源个人云操作系统,旨在让您能够轻松在本地拥有并管理自己的数字资产。您无需再依赖公有云服务,而可以在 beOS Pro 上本地部署强大的开源平替服务或应用,例如可以使用 Ollama 托管大语言模型,使用 ComfyUI 生成图像,以及使用 Perplexica 打造本地化、注重隐私的 AI 搜索与问答体验。beOS Pro 让您坐拥云计算的强大威力,又能完全将其置于自己掌控之下。
|
||||
|
||||
> 为 Olares 点亮 🌟 以及时获取新版本和更新的通知。
|
||||
> 为 beOS Pro 点亮 🌟 以及时获取新版本和更新的通知。
|
||||
|
||||
## 系统架构
|
||||
|
||||
公有云具有基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等层级。Olares 为这些层级提供了开源替代方案。
|
||||
公有云具有基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等层级。beOS Pro 为这些层级提供了开源替代方案。
|
||||
|
||||

|
||||

|
||||
|
||||
详细描述请参考 [Olares 架构](https://docs.olares.cn/zh/developer/concepts/system-architecture.html)文档。
|
||||
详细描述请参考 [beOS Pro 架构](https://docs.beos.local/zh/developer/concepts/system-architecture.html)文档。
|
||||
|
||||
>🔍**Olares 和 NAS 有什么不同?**
|
||||
>🔍**beOS Pro 和 NAS 有什么不同?**
|
||||
>
|
||||
> Olares 致力于打造一站式的自托管个人云体验。其核心功能与用户定位,均与专注于网络存储的传统 NAS 有着显著的不同,详情请参考 [Olares 与 NAS 对比](https://blog.olares.com/compare-olares-and-nas/)。
|
||||
> beOS Pro 致力于打造一站式的自托管个人云体验。其核心功能与用户定位,均与专注于网络存储的传统 NAS 有着显著的不同,详情请参考 [beOS Pro 与 NAS 对比](https://blog.beos.local/compare-olares-and-nas/)。
|
||||
|
||||
|
||||
## 功能特性
|
||||
|
||||
Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及开发的灵活性:
|
||||
beOS Pro 提供了一系列功能,旨在提升安全性、使用便捷性以及开发的灵活性:
|
||||
|
||||
- **企业级安全**:使用 Tailscale、Headscale、Cloudflare Tunnel 和 FRP 简化网络配置,确保安全连接。
|
||||
- **安全且无需许可的应用生态系统**:应用通过沙箱化技术实现隔离,保障应用运行的安全性。
|
||||
- **统一文件系统和数据库**:提供自动扩展、数据备份和高可用性功能,确保数据的持久安全。
|
||||
- **单点登录**:用户仅需一次登录,即可访问 Olares 中所有应用的共享认证服务。
|
||||
- **单点登录**:用户仅需一次登录,即可访问 beOS Pro 中所有应用的共享认证服务。
|
||||
- **AI 功能**:包括全面的 GPU 管理、本地 AI 模型托管及私有知识库,同时严格保护数据隐私。
|
||||
- **内置应用程序**:涵盖文件管理器、同步驱动器、密钥管理器、阅读器、应用市场、设置和面板等,提供全面的应用支持。
|
||||
- **无缝访问**:通过移动端、桌面端和网页浏览器客户端,从全球任何地方访问设备。
|
||||
@@ -70,19 +70,19 @@ Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及
|
||||
|
||||
| **桌面:熟悉高效的访问入口** | **文件管理器:安全存储数据**
|
||||
| :--------: | :-------: |
|
||||
|  |  |
|
||||
|  |  |
|
||||
| **Vault:密码无忧管理**|**市场:可控的应用生态系统** |
|
||||
|  |  |
|
||||
|**Wise:数字后花园** | **设置:高效管理 Olares** |
|
||||
|  |  |
|
||||
|**仪表盘:持续监控 Olares** | **Profile:独特的个人主页** |
|
||||
|  |  |
|
||||
|  |  |
|
||||
|**Wise:数字后花园** | **设置:高效管理 beOS Pro** |
|
||||
|  |  |
|
||||
|**仪表盘:持续监控 beOS Pro** | **Profile:独特的个人主页** |
|
||||
|  |  |
|
||||
| **Studio:一站式开发、调试和部署**|**控制面板:轻松管理 Kubernetes 集群** |
|
||||
|  | |
|
||||
|  | |
|
||||
|
||||
## 使用场景
|
||||
|
||||
在以下场景中,Olares 为您带来私密、强大且安全的私有云体验:
|
||||
在以下场景中,beOS Pro 为您带来私密、强大且安全的私有云体验:
|
||||
|
||||
🤖**本地 AI 助手**:在本地部署运行顶级开源 AI 模型,涵盖语言处理、图像生成和语音识别等领域。根据个人需求定制 AI 助手,确保数据隐私和控制权均处于自己手中。<br>
|
||||
|
||||
@@ -94,7 +94,7 @@ Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及
|
||||
|
||||
🏡**智能家居中心**:将所有智能设备和自动化系统集中在一个易于管理的控制中心,实现家庭智能化的简便操作。<br>
|
||||
|
||||
🤝**独立的社交媒体平台**:在 Olares 上部署去中心化社交媒体应用,如 Mastodon、Ghost 和 WordPress,自由建立和扩展个人品牌,无需担忧封号或支付额外费用。<br>
|
||||
🤝**独立的社交媒体平台**:在 beOS Pro 上部署去中心化社交媒体应用,如 Mastodon、Ghost 和 WordPress,自由建立和扩展个人品牌,无需担忧封号或支付额外费用。<br>
|
||||
|
||||
📚**学习探索**:深入学习自托管服务、容器技术和云计算,并上手实践。<br>
|
||||
|
||||
@@ -102,23 +102,23 @@ Olares 提供了一系列功能,旨在提升安全性、使用便捷性以及
|
||||
|
||||
### 系统兼容性
|
||||
|
||||
Olares 已在以下 Linux 平台完成测试与验证:
|
||||
beOS Pro 已在以下 Linux 平台完成测试与验证:
|
||||
|
||||
- Ubuntu 24.04 LTS 及以上版本
|
||||
- Debian 11 及以上版本
|
||||
|
||||
### 安装 Olares
|
||||
### 安装 beOS Pro
|
||||
|
||||
参考[快速上手指南](https://docs.olares.cn/zh/manual/get-started/)安装并激活 Olares。
|
||||
参考[快速上手指南](https://docs.beos.local/zh/manual/get-started/)安装并激活 beOS Pro。
|
||||
|
||||
## 项目目录
|
||||
Olares 代码库中的主要目录如下:
|
||||
beOS Pro 代码库中的主要目录如下:
|
||||
|
||||
* **[`apps`](./apps)**: 用于存放系统应用,主要是 `larepass` 的代码。
|
||||
* **[`cli`](./cli)**: 用于存放 `olares-cli`(Olares 的命令行界面工具)的代码。
|
||||
* **[`cli`](./cli)**: 用于存放 `olares-cli`(beOS Pro 的命令行界面工具)的代码。
|
||||
* **[`daemon`](./daemon)**: 用于存放 `olaresd`(系统守护进程)的代码。
|
||||
* **[`docs`**](./docs)**: 用于存放 Olares 项目的文档。
|
||||
* **[`framework`](./framework)**: 用来存放 Olares 系统服务代码。
|
||||
* **[`docs`**](./docs)**: 用于存放 beOS Pro 项目的文档。
|
||||
* **[`framework`](./framework)**: 用来存放 beOS Pro 系统服务代码。
|
||||
* **[`infrastructure`](./infrastructure)**: 用于存放计算,存储,网络,GPU 等基础设施的代码。
|
||||
* **[`platform`](./platform)**: 用于存放数据库、消息队列等云原生组件的代码。
|
||||
* **`vendor`**: 用于存放来自第三方硬件供应商的代码。
|
||||
@@ -127,19 +127,19 @@ Olares 代码库中的主要目录如下:
|
||||
|
||||
我们欢迎任何形式的贡献!
|
||||
|
||||
- 如果您想在 Olares 上开发自己的应用,请参考:<br>
|
||||
https://docs.olares.com/developer/develop/
|
||||
- 如果您想在 beOS Pro 上开发自己的应用,请参考:<br>
|
||||
https://docs.beos.local/developer/develop/
|
||||
|
||||
|
||||
- 如果您想帮助改进 Olares,请参考:<br>
|
||||
https://docs.olares.com/developer/contribute/olares.html
|
||||
- 如果您想帮助改进 beOS Pro,请参考:<br>
|
||||
https://docs.beos.local/developer/contribute/olares.html
|
||||
|
||||
## 社区支持
|
||||
|
||||
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions) - 讨论 Olares 使用过程中的疑问。
|
||||
* [**GitHub Issues**](https://github.com/beclab/olares/issues) - 报告 Olares 的遇到的问题或提出功能改进建议。
|
||||
* [**Discord**](https://discord.gg/olares) - 日常交流,分享经验,或讨论与 Olares 相关的任何主题。
|
||||
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions) - 讨论 beOS Pro 使用过程中的疑问。
|
||||
* [**GitHub Issues**](https://github.com/beclab/olares/issues) - 报告 beOS Pro 的遇到的问题或提出功能改进建议。
|
||||
* [**Discord**](https://discord.gg/olares) - 日常交流,分享经验,或讨论与 beOS Pro 相关的任何主题。
|
||||
|
||||
## 特别感谢
|
||||
|
||||
Olares 项目整合了许多第三方开源项目,包括:[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。
|
||||
beOS Pro 项目整合了许多第三方开源项目,包括:[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。
|
||||
|
||||
86
README_JP.md
@@ -1,16 +1,16 @@
|
||||
<div align="center">
|
||||
|
||||
# Olares: ローカルAIのためのオープンソース主権クラウドOS<!-- omit in toc -->
|
||||
# beOS Pro: ローカルAIのためのオープンソース主権クラウドOS<!-- omit in toc -->
|
||||
|
||||
[](#)<br/>
|
||||
[](https://github.com/beclab/olares/commits/main)
|
||||
[](https://github.com/beclab/olares/commits/main)
|
||||

|
||||
[](https://github.com/beclab/olares/releases)
|
||||
[](https://github.com/beclab/Olares/stargazers)
|
||||
[](https://github.com/beclab/olares/releases)
|
||||
[](https://github.com/beclab/beOS Pro/stargazers)
|
||||
[](https://discord.gg/olares)
|
||||
[](https://github.com/beclab/olares/blob/main/LICENSE)
|
||||
|
||||
<a href="https://trendshift.io/repositories/15376" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15376" alt="beclab%2FOlares | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
<a href="https://trendshift.io/repositories/15376" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15376" alt="beclab%2FbeOS Pro | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||
|
||||
<p>
|
||||
<a href="./README.md"><img alt="Readme in English" src="https://img.shields.io/badge/English-FFFFFF"></a>
|
||||
@@ -21,44 +21,44 @@
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://olares.com">ウェブサイト</a> ·
|
||||
<a href="https://docs.olares.com">ドキュメント</a> ·
|
||||
<a href="https://www.olares.com/larepass">LarePassをダウンロード</a> ·
|
||||
<a href="https://github.com/beclab/apps">Olaresアプリ</a> ·
|
||||
<a href="https://space.olares.com">Olares Space</a>
|
||||
<a href="https://beos.local">ウェブサイト</a> ·
|
||||
<a href="https://docs.beos.local">ドキュメント</a> ·
|
||||
<a href="https://www.beos.local/larepass">beOS Pro appをダウンロード</a> ·
|
||||
<a href="https://github.com/beclab/apps">beOS Proアプリ</a> ·
|
||||
<a href="https://space.beos.local">Remote Space</a>
|
||||
</p>
|
||||
|
||||
> *パブリッククラウドを基盤とする現代のインターネットは、あなたの個人データのプライバシーをますます脅かしています。ChatGPT、Midjourney、Facebookといったサービスへの依存が深まるにつれ、デジタル主権に対するあなたのコントロールも弱まっています。あなたのデータは他者のサーバーに保存され、その利用規約に縛られ、追跡され、検閲されているのです。*
|
||||
>
|
||||
>*今こそ、変革の時です。*
|
||||
|
||||

|
||||

|
||||
|
||||
私たちは、あなたが自身のデジタルライフをコントロールする基本的な権利を有すると確信しています。この権利を守る最も効果的な方法は、あなたのデータをローカルの、あなた自身のハードウェア上でホストすることです。
|
||||
|
||||
Olaresは、あなたが自身のデジタル資産をローカルで所有し管理できるように設計された、オープンソースのパーソナルクラウドOSです。パブリッククラウドサービスに依存する代わりに、Olares上で強力なオープンソースの代替をローカルにデプロイできます。例えば、LLMのホスティングにはOllama、画像生成にはComfyUI、そしてプライバシーを重視したAI駆動の検索と推論にはPerplexicaを利用できます。クラウドの力をそのままに、主導権は常にあなたの手に。
|
||||
beOS Proは、あなたが自身のデジタル資産をローカルで所有し管理できるように設計された、オープンソースのパーソナルクラウドOSです。パブリッククラウドサービスに依存する代わりに、beOS Pro上で強力なオープンソースの代替をローカルにデプロイできます。例えば、LLMのホスティングにはOllama、画像生成にはComfyUI、そしてプライバシーを重視したAI駆動の検索と推論にはPerplexicaを利用できます。クラウドの力をそのままに、主導権は常にあなたの手に。
|
||||
> 🌟 *新しいリリースや更新についての通知を受け取るために、スターを付けてください。*
|
||||
|
||||
## アーキテクチャ
|
||||
|
||||
パブリッククラウドは、IaaS (Infrastructure as a Service)、PaaS (Platform as a Service)、SaaS (Software as a Service) といったサービスレイヤーで構成されています。Olaresは、これら各レイヤーに対するオープンソースの代替ソリューションを提供しています。
|
||||
パブリッククラウドは、IaaS (Infrastructure as a Service)、PaaS (Platform as a Service)、SaaS (Software as a Service) といったサービスレイヤーで構成されています。beOS Proは、これら各レイヤーに対するオープンソースの代替ソリューションを提供しています。
|
||||
|
||||

|
||||

|
||||
|
||||
各コンポーネントの詳細については、[Olares アーキテクチャ](https://docs.olares.com/developer/concepts/system-architecture.html)(英語版)をご参照ください。
|
||||
各コンポーネントの詳細については、[beOS Pro アーキテクチャ](https://docs.beos.local/developer/concepts/system-architecture.html)(英語版)をご参照ください。
|
||||
|
||||
> 🔍**OlaresとNASの違いは何ですか?**
|
||||
> 🔍**beOS ProとNASの違いは何ですか?**
|
||||
>
|
||||
> Olaresは、ワンストップのセルフホスティング・パーソナルクラウド体験の実現を目指しています。そのコア機能とユーザーの位置付けは、ネットワークストレージに特化した従来のNASとは大きく異なります。詳細は、[OlaresとNASの比較](https://blog.olares.com/compare-olares-and-nas/)(英語版)をご参照ください。
|
||||
> beOS Proは、ワンストップのセルフホスティング・パーソナルクラウド体験の実現を目指しています。そのコア機能とユーザーの位置付けは、ネットワークストレージに特化した従来のNASとは大きく異なります。詳細は、[beOS ProとNASの比較](https://blog.beos.local/compare-olares-and-nas/)(英語版)をご参照ください。
|
||||
|
||||
## 機能
|
||||
|
||||
Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上させるための幅広い機能を提供します:
|
||||
beOS Proは、セキュリティ、使いやすさ、開発の柔軟性を向上させるための幅広い機能を提供します:
|
||||
|
||||
- **エンタープライズグレードのセキュリティ**: Tailscale、Headscale、Cloudflare Tunnel、FRPを使用してネットワーク構成を簡素化します。
|
||||
- **安全で許可のないアプリケーションエコシステム**: サンドボックス化によりアプリケーションの分離とセキュリティを確保します。
|
||||
- **統一ファイルシステムとデータベース**: 自動スケーリング、バックアップ、高可用性を提供します。
|
||||
- **シングルサインオン**: 一度ログインするだけで、Olares内のすべてのアプリケーションに共有認証サービスを使用してアクセスできます。
|
||||
- **シングルサインオン**: 一度ログインするだけで、beOS Pro内のすべてのアプリケーションに共有認証サービスを使用してアクセスできます。
|
||||
- **AI機能**: GPU管理、ローカルAIモデルホスティング、プライベートナレッジベースの包括的なソリューションを提供し、データプライバシーを維持します。
|
||||
- **内蔵アプリケーション**: ファイルマネージャー、同期ドライブ、ボールト、リーダー、アプリマーケット、設定、ダッシュボードを含みます。
|
||||
- **どこからでもシームレスにアクセス**: モバイル、デスクトップ、ブラウザ用の専用クライアントを使用して、どこからでもデバイスにアクセスできます。
|
||||
@@ -68,19 +68,19 @@ Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上
|
||||
|
||||
| **デスクトップ:馴染みやすく効率的なアクセスポイント** | **ファイルマネージャー:データを安全に保管** |
|
||||
| :--------: | :-------: |
|
||||
|  |  |
|
||||
|  |  |
|
||||
| **Vault:安心のパスワード管理**|**マーケット:コントロール可能なアプリエコシステム** |
|
||||
|  |  |
|
||||
| **Wise:あなただけのデジタルガーデン** | **設定:Olaresを効率的に管理** |
|
||||
|  |  |
|
||||
| **ダッシュボード:Olaresを継続的に監視** | **プロフィール:ユニークなパーソナルページ** |
|
||||
|  |  |
|
||||
|  |  |
|
||||
| **Wise:あなただけのデジタルガーデン** | **設定:beOS Proを効率的に管理** |
|
||||
|  |  |
|
||||
| **ダッシュボード:beOS Proを継続的に監視** | **プロフィール:ユニークなパーソナルページ** |
|
||||
|  |  |
|
||||
| **Studio:開発、デバッグ、デプロイをワンストップで**|**コントロールパネル:Kubernetesクラスターを簡単に管理** |
|
||||
|  | |
|
||||
|  | |
|
||||
|
||||
## なぜOlaresなのか?
|
||||
## なぜbeOS Proなのか?
|
||||
|
||||
以下の理由とシナリオで、Olaresはプライベートで強力かつ安全な主権クラウド体験を提供します:
|
||||
以下の理由とシナリオで、beOS Proはプライベートで強力かつ安全な主権クラウド体験を提供します:
|
||||
|
||||
🤖 **エッジAI**: 最先端のオープンAIモデルをローカルで実行し、大規模言語モデル、コンピュータビジョン、音声認識などを含みます。データに合わせてプライベートAIサービスを作成し、機能性とプライバシーを向上させます。<br>
|
||||
|
||||
@@ -92,7 +92,7 @@ Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上
|
||||
|
||||
🏡 **スマートホームハブ**: IoTデバイスやホームオートメーションの中央制御ポイントを作成します。<br>
|
||||
|
||||
🤝 **ユーザー所有の分散型ソーシャルメディア**: Mastodon、Ghost、WordPressなどの分散型ソーシャルメディアアプリをOlaresに簡単にインストールし、プラットフォームの手数料やアカウント停止のリスクなしに個人ブランドを構築します。<br>
|
||||
🤝 **ユーザー所有の分散型ソーシャルメディア**: Mastodon、Ghost、WordPressなどの分散型ソーシャルメディアアプリをbeOS Proに簡単にインストールし、プラットフォームの手数料やアカウント停止のリスクなしに個人ブランドを構築します。<br>
|
||||
|
||||
📚 **学習プラットフォーム**: セルフホスティング、コンテナオーケストレーション、クラウド技術を実践的に学びます。
|
||||
|
||||
@@ -100,44 +100,44 @@ Olaresは、セキュリティ、使いやすさ、開発の柔軟性を向上
|
||||
|
||||
### システム互換性
|
||||
|
||||
Olaresは以下のLinuxプラットフォームで動作検証を完了しています:
|
||||
beOS Proは以下のLinuxプラットフォームで動作検証を完了しています:
|
||||
|
||||
- Ubuntu 24.04 LTS 以降
|
||||
- Debian 11 以降
|
||||
|
||||
### Olaresのセットアップ
|
||||
自分のデバイスでOlaresを始めるには、[はじめにガイド](https://docs.olares.com/manual/get-started/)に従ってステップバイステップの手順を確認してください。
|
||||
### beOS Proのセットアップ
|
||||
自分のデバイスでbeOS Proを始めるには、[はじめにガイド](https://docs.beos.local/manual/get-started/)に従ってステップバイステップの手順を確認してください。
|
||||
|
||||
|
||||
## プロジェクトナビゲーションx
|
||||
このセクションでは、Olares リポジトリ内の主要なディレクトリをリストアップしています:
|
||||
このセクションでは、beOS Pro リポジトリ内の主要なディレクトリをリストアップしています:
|
||||
|
||||
* **[`apps`](./apps)**: システムアプリケーションのコードが含まれており、主に `larepass` 用です。
|
||||
* **[`cli`](./cli)**: Olares のコマンドラインインターフェースツールである `olares-cli` のコードが含まれています。
|
||||
* **[`cli`](./cli)**: beOS Pro のコマンドラインインターフェースツールである `olares-cli` のコードが含まれています。
|
||||
* **[`daemon`](./daemon)**: システムデーモンプロセスである `olaresd` のコードが含まれています。
|
||||
* **[`docs`](./docs)**: プロジェクトのドキュメントが含まれています。
|
||||
* **[`framework`](./framework)**: Olares システムサービスが含まれています。
|
||||
* **[`framework`](./framework)**: beOS Pro システムサービスが含まれています。
|
||||
* **[`infrastructure`](./infrastructure)**: コンピューティング、ストレージ、ネットワーキング、GPU などのインフラストラクチャコンポーネントに関連するコードが含まれています。
|
||||
* **[`platform`](./platform)**: データベースやメッセージキューなどのクラウドネイティブコンポーネントのコードが含まれています。
|
||||
* **`vendor`**: サードパーティのハードウェアベンダーからのコードが含まれています。
|
||||
|
||||
## Olaresへの貢献
|
||||
## beOS Proへの貢献
|
||||
|
||||
あらゆる形での貢献を歓迎します:
|
||||
|
||||
- Olaresで独自のアプリケーションを開発したい場合は、以下を参照してください:<br>
|
||||
https://docs.olares.com/developer/develop/
|
||||
- beOS Proで独自のアプリケーションを開発したい場合は、以下を参照してください:<br>
|
||||
https://docs.beos.local/developer/develop/
|
||||
|
||||
|
||||
- Olaresの改善に協力したい場合は、以下を参照してください:<br>
|
||||
https://docs.olares.com/developer/contribute/olares.html
|
||||
- beOS Proの改善に協力したい場合は、以下を参照してください:<br>
|
||||
https://docs.beos.local/developer/contribute/olares.html
|
||||
|
||||
## コミュニティと連絡先
|
||||
|
||||
* [**GitHub Discussion**](https://github.com/beclab/olares/discussions). フィードバックの共有や質問に最適です。
|
||||
* [**GitHub Issues**](https://github.com/beclab/olares/issues). Olaresの使用中に遭遇したバグの報告や機能提案の提出に最適です。
|
||||
* [**Discord**](https://discord.gg/olares). Olaresに関するあらゆることを共有するのに最適です。
|
||||
* [**GitHub Issues**](https://github.com/beclab/olares/issues). beOS Proの使用中に遭遇したバグの報告や機能提案の提出に最適です。
|
||||
* [**Discord**](https://discord.gg/olares). beOS Proに関するあらゆることを共有するのに最適です。
|
||||
|
||||
## 特別な感謝
|
||||
|
||||
Olaresプロジェクトは、次のような多数のサードパーティオープンソースプロジェクトを統合しています:[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。
|
||||
beOS Proプロジェクトは、次のような多数のサードパーティオープンソースプロジェクトを統合しています:[Kubernetes](https://kubernetes.io/)、[Kubesphere](https://github.com/kubesphere/kubesphere)、[Padloc](https://padloc.app/)、[K3S](https://k3s.io/)、[JuiceFS](https://github.com/juicedata/juicefs)、[MinIO](https://github.com/minio/minio)、[Envoy](https://github.com/envoyproxy/envoy)、[Authelia](https://github.com/authelia/authelia)、[Infisical](https://github.com/Infisical/infisical)、[Dify](https://github.com/langgenius/dify)、[Seafile](https://github.com/haiwen/seafile)、[HeadScale](https://headscale.net/)、 [tailscale](https://tailscale.com/)、[Redis Operator](https://github.com/spotahome/redis-operator)、[Nitro](https://nitro.jan.ai/)、[RssHub](http://rsshub.app/)、[predixy](https://github.com/joyieldInc/predixy)、[nvshare](https://github.com/grgalex/nvshare)、[LangChain](https://www.langchain.com/)、[Quasar](https://quasar.dev/)、[TrustWallet](https://trustwallet.com/)、[Restic](https://restic.net/)、[ZincSearch](https://zincsearch-docs.zinc.dev/)、[filebrowser](https://filebrowser.org/)、[lego](https://go-acme.github.io/lego/)、[Velero](https://velero.io/)、[s3rver](https://github.com/jamhall/s3rver)、[Citusdata](https://www.citusdata.com/)。
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Olares Apps
|
||||
# beOS Pro Apps
|
||||
|
||||
## Overview
|
||||
|
||||
This directory contains the code for system applications, primarily for LarePass. The following are the pre-installed system applications that offer tools for managing files, knowledge, passwords, and the system itself.
|
||||
This directory contains the code for the beOS Pro system applications. The following are the pre-installed applications that provide files, knowledge, passwords, settings, monitoring, and development tools.
|
||||
|
||||
## System Applications Overview
|
||||
|
||||
@@ -16,8 +16,8 @@ This directory contains the code for system applications, primarily for LarePass
|
||||
| Profile | An app to customize the user's profile page. |
|
||||
| Settings | A system configuration application. |
|
||||
| Dashboard | An app for monitoring system resource usage. |
|
||||
| Control Hub | The console for Olares, providing precise and autonomous control over the system and its environment. |
|
||||
| Studio | A development tool for building and deploying Olares applications. |
|
||||
| Control Hub | The console for beOS Pro, providing precise and autonomous control over the system and its environment. |
|
||||
| Studio | A development tool for building and deploying beOS Pro applications. |
|
||||
|
||||
|
||||
# Local Development Guide
|
||||
@@ -62,7 +62,7 @@ sudo nano /etc/hosts
|
||||
2. Add the following content at the end of the file:
|
||||
|
||||
```
|
||||
127.0.0.1 test.xxx.olares.com
|
||||
127.0.0.1 test.xxx.beos.local
|
||||
```
|
||||
|
||||
3. Save the file and exit
|
||||
@@ -84,7 +84,7 @@ sudo nano /etc/hosts
|
||||
3. Add the following content at the end of the file:
|
||||
|
||||
```
|
||||
127.0.0.1 test.xxx.olares.com
|
||||
127.0.0.1 test.xxx.beos.local
|
||||
```
|
||||
|
||||
4. Save the file (`Ctrl + S`)
|
||||
@@ -99,7 +99,7 @@ ipconfig /flushdns
|
||||
|
||||
## Step 2: Install Dependencies
|
||||
|
||||
Run in the project root directory (`olares-app`):
|
||||
Run in the project root directory (`beos-app`):
|
||||
|
||||
```bash
|
||||
npm install
|
||||
@@ -110,12 +110,12 @@ npm install
|
||||
Create or edit the `.env` file in the `packages/app` directory and add the following content:
|
||||
|
||||
```env
|
||||
ACCOUNT_DOMAIN=xxx.olares.com
|
||||
DEV_DOMAIN=test.xxx.olares.com
|
||||
ACCOUNT_DOMAIN=xxx.beos.local
|
||||
DEV_DOMAIN=test.xxx.beos.local
|
||||
```
|
||||
|
||||
> **Note**:
|
||||
> - `ACCOUNT_DOMAIN`: Your Olares account domain, used for API proxy
|
||||
> - `ACCOUNT_DOMAIN`: Your beOS account domain, used for API proxy
|
||||
> - `DEV_DOMAIN`: Local development server domain, must match the domain configured in the hosts file
|
||||
|
||||
## Step 4: Start the Project
|
||||
@@ -145,18 +145,18 @@ After successful startup, visit in your browser (replace port according to the p
|
||||
|
||||
| Project | URL |
|
||||
|---------|-----|
|
||||
| Desktop | `https://test.xxx.olares.com:1090` |
|
||||
| Files | `https://test.xxx.olares.com:5090` |
|
||||
| Settings | `https://test.xxx.olares.com:9000` |
|
||||
| Market | `https://test.xxx.olares.com:8080` |
|
||||
| Vault | `https://test.xxx.olares.com:8090` |
|
||||
| Wise | `https://test.xxx.olares.com:8100` |
|
||||
| Dashboard | `https://test.xxx.olares.com:9003` |
|
||||
| Control Hub | `https://test.xxx.olares.com:9002` |
|
||||
| Share | `https://test.xxx.olares.com:5070` |
|
||||
| Editor | `https://test.xxx.olares.com:9100` |
|
||||
| Preview | `https://test.xxx.olares.com:9001` |
|
||||
| Studio | `https://test.xxx.olares.com:9001` |
|
||||
| Desktop | `https://test.xxx.beos.local:1090` |
|
||||
| Files | `https://test.xxx.beos.local:5090` |
|
||||
| Settings | `https://test.xxx.beos.local:9000` |
|
||||
| Market | `https://test.xxx.beos.local:8080` |
|
||||
| Vault | `https://test.xxx.beos.local:8090` |
|
||||
| Wise | `https://test.xxx.beos.local:8100` |
|
||||
| Dashboard | `https://test.xxx.beos.local:9003` |
|
||||
| Control Hub | `https://test.xxx.beos.local:9002` |
|
||||
| Share | `https://test.xxx.beos.local:5070` |
|
||||
| Editor | `https://test.xxx.beos.local:9100` |
|
||||
| Preview | `https://test.xxx.beos.local:9001` |
|
||||
| Studio | `https://test.xxx.beos.local:9001` |
|
||||
|
||||
> **Note**: Since a self-signed certificate is used, the browser may display an insecure connection warning. Click "Advanced" and select "Proceed" to continue.
|
||||
|
||||
@@ -164,8 +164,8 @@ After successful startup, visit in your browser (replace port according to the p
|
||||
|
||||
| Variable | Description | Example |
|
||||
|----------|-------------|---------|
|
||||
| `ACCOUNT_DOMAIN` | Account domain (for API proxy) | `xxx.olares.com` |
|
||||
| `DEV_DOMAIN` | Development server domain | `test.xxx.olares.com` |
|
||||
| `ACCOUNT_DOMAIN` | Account domain (for API proxy) | `xxx.beos.local` |
|
||||
| `DEV_DOMAIN` | Development server domain | `test.xxx.beos.local` |
|
||||
|
||||
## FAQ
|
||||
|
||||
@@ -216,4 +216,4 @@ npm run build:<project>
|
||||
| **Wise** | `dist/spa` |
|
||||
| **Studio** | `dist/spa` |
|
||||
|
||||
> **Note**: Build outputs for Wise and Studio are located in `dist/spa` directory, not under `dist/apps/`.
|
||||
> **Note**: Build outputs for Wise and Studio are located in `dist/spa` directory, not under `dist/apps/`.
|
||||
|
||||
4
apps/packages/app/package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "@olares/app",
|
||||
"name": "@didvault/app",
|
||||
"version": "1.6.25",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@olares/app",
|
||||
"name": "@didvault/app",
|
||||
"version": "1.6.25",
|
||||
"dependencies": {
|
||||
"@bytetrade/barcode-scanner": "^7.0.1",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "@didvault/app",
|
||||
"version": "1.6.25",
|
||||
"description": "An Open-Source Personal Cloud to Reclaim Your Data",
|
||||
"productName": "Olares App",
|
||||
"author": "Olares <billpengpeng@gmail.com>",
|
||||
"description": "beOS Pro self-hosted application suite",
|
||||
"productName": "beOS Pro",
|
||||
"author": "beOS Pro",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build:vault": "APPLICATION=VAULT PLATFORM=WEB quasar build",
|
||||
|
||||
15
apps/packages/app/public/legal/privacy-policy.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>beOS Pro Privacy Policy</title>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>beOS Pro Privacy Policy</h1>
|
||||
<p>This installation is configured for self-hosted operation.</p>
|
||||
<p>Review and replace this placeholder with your own privacy policy before distribution.</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
15
apps/packages/app/public/legal/privacy-policy.zh.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>beOS Pro 隐私政策</title>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>beOS Pro 隐私政策</h1>
|
||||
<p>当前安装以自托管方式运行。</p>
|
||||
<p>在对外分发之前,请将此占位文件替换为你自己的隐私政策。</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
15
apps/packages/app/public/legal/service-agreement.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>beOS Pro Service Agreement</title>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>beOS Pro Service Agreement</h1>
|
||||
<p>This installation is configured for self-hosted operation.</p>
|
||||
<p>Review and replace this placeholder with your own service agreement before distribution.</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
15
apps/packages/app/public/legal/service-agreement.zh.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>beOS Pro 服务协议</title>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>beOS Pro 服务协议</h1>
|
||||
<p>当前安装以自托管方式运行。</p>
|
||||
<p>在对外分发之前,请将此占位文件替换为你自己的服务协议。</p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileIcon, getFileType } from '@bytetrade/core';
|
||||
import { getFileIcon, getFileType } from 'src/utils/beos-core';
|
||||
import axios from 'axios';
|
||||
import { useUserStore } from 'src/stores/user';
|
||||
import {
|
||||
|
||||
@@ -9,12 +9,7 @@ import {
|
||||
import { getAppPlatform } from '../../application/platform';
|
||||
|
||||
import { useDataStore } from '../../stores/data';
|
||||
import {
|
||||
TermiPassState,
|
||||
TermiPassStateInfo,
|
||||
useTermipassStore
|
||||
} from 'src/stores/termipass';
|
||||
import { Store } from 'pinia';
|
||||
import { useBeOSAppStore } from 'src/stores/beosApp';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getRequestErrorMessage } from 'src/utils/notifyRedefinedUtil';
|
||||
|
||||
@@ -63,17 +58,7 @@ class Fetch {
|
||||
|
||||
// private instanceWeb: AxiosInstance;
|
||||
|
||||
private termipassStore: Store<
|
||||
'termipass',
|
||||
TermiPassState,
|
||||
{
|
||||
isLocal(): boolean;
|
||||
isP2P(): boolean;
|
||||
isDER(): boolean;
|
||||
isDirect(): boolean;
|
||||
totalStatus(): TermiPassStateInfo | undefined;
|
||||
}
|
||||
>;
|
||||
private beosAppStore: ReturnType<typeof useBeOSAppStore>;
|
||||
|
||||
constructor() {
|
||||
this.init();
|
||||
@@ -102,7 +87,7 @@ class Fetch {
|
||||
|
||||
if (
|
||||
getAppPlatform().isClient &&
|
||||
this.termipassStore.totalStatus?.isError !== UserStatusActive.active
|
||||
this.beosAppStore.totalStatus?.isError !== UserStatusActive.active
|
||||
) {
|
||||
console.error('Request blocked');
|
||||
return Promise.reject(new Error('Request blocked'));
|
||||
@@ -157,7 +142,7 @@ class Fetch {
|
||||
url: string,
|
||||
config?: AxiosRequestConfig
|
||||
): Promise<T> {
|
||||
this.termipassStore = useTermipassStore();
|
||||
this.beosAppStore = useBeOSAppStore();
|
||||
const response: AxiosResponse<T> = await this.instance.get(url, config);
|
||||
return response.data;
|
||||
}
|
||||
@@ -167,7 +152,7 @@ class Fetch {
|
||||
data?: any,
|
||||
config?: AxiosRequestConfig
|
||||
): Promise<AxiosResponse<T>> {
|
||||
this.termipassStore = useTermipassStore();
|
||||
this.beosAppStore = useBeOSAppStore();
|
||||
return this.instance.post(url, data, config);
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import {
|
||||
TransferStatus,
|
||||
TransferFront
|
||||
} from 'src/utils/interface/transfer';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import md5 from 'js-md5';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
// import urlFormat from '../../utils/url';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -30,7 +30,7 @@ import {
|
||||
import { createURL, getNotifyMsg } from '../utils';
|
||||
import { encodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { filterPcvPath } from '../common/common';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import {
|
||||
TransferFront
|
||||
} from 'src/utils/interface/transfer';
|
||||
import * as files from './utils';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { filterPcvPath } from '../common/common';
|
||||
import md5 from 'js-md5';
|
||||
import { useDataStore } from 'src/stores/data';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { useFilesStore, FileItem } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { filterPcvPath } from './../common/common';
|
||||
|
||||
@@ -27,7 +27,7 @@ import { filterPcvPath, filterPcvPath2 } from '../common/common';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { encodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { IUploadCloudParams } from 'src/platform/interface/electron/interface';
|
||||
import { useUserStore } from 'src/stores/user';
|
||||
import { Router } from 'vue-router';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { useFilesStore, FileItem } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { filterPcvPath } from './../common/common';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { formatGd } from './filesFormat';
|
||||
import {
|
||||
move,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { DriveType } from 'src/utils/interface/files';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { format } from './filesFormat';
|
||||
import { DriveMenuType } from './type';
|
||||
import { useOperateinStore, CopyStoragesType } from 'src/stores/operation';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// import { getFileType } from '@bytetrade/core';
|
||||
// import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { GoogleDriveFileItem } from './type';
|
||||
import { extensionByMimeType } from './utils';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import Origin from './../origin';
|
||||
import { MenuItem } from 'src/utils/contact';
|
||||
import { OPERATE_ACTION } from 'src/utils/contact';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { getParams } from 'src/utils/utils';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { formatGd } from './filesFormat';
|
||||
import { createURL } from '../utils';
|
||||
import {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { DriveType } from 'src/utils/interface/files';
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
TransferStatus,
|
||||
TransferFront
|
||||
} from 'src/utils/interface/transfer';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import md5 from 'js-md5';
|
||||
import * as files from './utils';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { DriveType } from 'src/utils/interface/files';
|
||||
|
||||
@@ -12,7 +12,7 @@ import { TransferItem, TransferFront } from 'src/utils/interface/transfer';
|
||||
import { createURL, getPurePath } from '../utils';
|
||||
import { encodeUrl, decodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { filterPcvPath } from '../common/common';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { appendPath } from '../path';
|
||||
|
||||
@@ -362,7 +362,7 @@ export function getDownloadUrl(item: FileItem, params = {}) {
|
||||
const store = useDataStore();
|
||||
const baseURL = store.baseURL();
|
||||
|
||||
if (item.isDir && process.env.APPLICATION === 'LAREPASS') {
|
||||
if (item.isDir && process.env.APPLICATION === 'BEOS') {
|
||||
return getStreamListUrl(item);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import { createDir } from './utils';
|
||||
import { encodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import * as files from './utils';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { filterPcvPath } from '../common/common';
|
||||
import { CommonUrlApiType } from '../common/utils';
|
||||
import { appendPath } from '../path';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { useFilesStore } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -26,7 +26,7 @@ import { filterPcvPath } from '../common/common';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { encodeUrl, decodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { IUploadCloudParams } from 'src/platform/interface/electron/interface';
|
||||
import { useUserStore } from 'src/stores/user';
|
||||
import { Router } from 'vue-router';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, useFilesStore } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { formatGd } from './filesFormat';
|
||||
import { createURL, getPurePath } from '../utils';
|
||||
import url from 'src/utils/url';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { DriveType } from 'src/utils/interface/files';
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import * as filesUtil from '../common/utils';
|
||||
import { CommonUrlApiType, formatAppDataNode } from '../common/utils';
|
||||
import { TransferFront, TransferItem } from 'src/utils/interface/transfer';
|
||||
import { appendPath } from '../path';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
|
||||
export default class ExternalDataAPI extends DriveDataAPI {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, useFilesStore } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { format } from './filesFormat';
|
||||
import { DriveMenuType, GoogleDriveFileItem } from './type';
|
||||
import { useOperateinStore, CopyStoragesType } from 'src/stores/operation';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// import { getFileType } from '@bytetrade/core';
|
||||
// import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { GoogleDriveFileItem } from './type';
|
||||
import { extensionByMimeType } from './utils';
|
||||
@@ -6,7 +6,7 @@ import { DriveType } from 'src/utils/interface/files';
|
||||
import { encodeUrl } from 'src/utils/encode';
|
||||
import { appendPath } from '../path';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
|
||||
export function format(
|
||||
data: {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { CommonFetch } from '../../fetch';
|
||||
import { CommonUrlApiType, commonUrlPrefix } from '../common/utils';
|
||||
import { appendPath } from '../path';
|
||||
import { getApplication } from 'src/application/base';
|
||||
import { compareOlaresVersion } from '@bytetrade/core';
|
||||
import { compareBeOSVersion } from 'src/utils/beos-core';
|
||||
import { useUserStore } from 'src/stores/user';
|
||||
|
||||
export function formatResourcesUrl(url: string) {
|
||||
@@ -33,7 +33,7 @@ const getCloudAccounts = async () => {
|
||||
const userStore = useUserStore();
|
||||
if (
|
||||
userStore.current_user?.os_version &&
|
||||
compareOlaresVersion(
|
||||
compareBeOSVersion(
|
||||
userStore.current_user?.os_version,
|
||||
supportApiNewVersion
|
||||
).compare < 0
|
||||
|
||||
@@ -13,7 +13,7 @@ import { createURL, getPurePath } from '../../utils';
|
||||
import { encodeUrl } from 'src/utils/encode';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import * as files from './utils';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import {
|
||||
driveTypeByFileTypeAndFileExtend,
|
||||
filterPcvPath
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, useFilesStore } from 'src/stores/files';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import Origin from './../origin';
|
||||
import { MenuItem } from 'src/utils/contact';
|
||||
import { OPERATE_ACTION } from 'src/utils/contact';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { getParams } from 'src/utils/utils';
|
||||
import { getextension } from 'src/utils/utils';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DriveDataAPI } from './../index';
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { formatGd } from './filesFormat';
|
||||
import { createURL, getPurePath } from '../utils';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { getFileType } from '@bytetrade/core';
|
||||
import { getFileType } from 'src/utils/beos-core';
|
||||
import { FileItem, FileResType, useFilesStore } from 'src/stores/files';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { DriveType } from 'src/utils/interface/files';
|
||||
|
||||
@@ -3,9 +3,9 @@ const globalConfig = {
|
||||
url:
|
||||
process.env.NODE_ENV === 'development' ? '' : process.env.PUBLIC_URL || '',
|
||||
isOfficial: !!(process.env.PUBLIC_URL && process.env.PUBLIC_URL.length > 0),
|
||||
install_en_docs: 'https://docs.olares.com/manual/get-started/?redirect=false',
|
||||
install_en_docs: 'https://docs.beos.local/manual/get-started/?redirect=false',
|
||||
install_zh_docs:
|
||||
'https://docs.olares.com/zh/manual/get-started/?redirect=false'
|
||||
'https://docs.beos.local/zh/manual/get-started/?redirect=false'
|
||||
};
|
||||
|
||||
export default globalConfig;
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useCenterStore } from 'src/stores/market/center';
|
||||
import { MarketSource } from 'src/constant/constants';
|
||||
import axios from 'axios';
|
||||
import globalConfig from 'src/api/market/config';
|
||||
import { GolbalHost } from '@bytetrade/core';
|
||||
import { GolbalHost } from 'src/utils/beos-core';
|
||||
|
||||
export interface MarketRequest {
|
||||
id: string;
|
||||
|
||||
@@ -4,11 +4,11 @@ import {
|
||||
BackupPlan,
|
||||
BackupPlanDetail,
|
||||
BackupPolicy,
|
||||
OlaresSpaceRegion
|
||||
RemoteSpaceRegion
|
||||
} from '../../constant';
|
||||
import { useBackupStore } from '../../stores/settings/backup';
|
||||
|
||||
export async function getOlaresSpaceRegion(): Promise<OlaresSpaceRegion[]> {
|
||||
export async function getRemoteSpaceRegion(): Promise<RemoteSpaceRegion[]> {
|
||||
const backupStore = useBackupStore();
|
||||
const result: any = await axios.get(
|
||||
backupStore.baseUrl + '/apis/backup/v1/regions'
|
||||
|
||||
@@ -5,9 +5,9 @@ import { useAppStore } from '../stores/desktop/app';
|
||||
import { useUpgradeStore } from '../stores/desktop/upgrade';
|
||||
import { WebPlatform } from '../utils/desktop/platform';
|
||||
import { useWebsocketManager2Store } from 'src/stores/websocketManager2';
|
||||
import { useDevice, onDeviceChange, DeviceType } from '@bytetrade/core';
|
||||
import { useDevice, onDeviceChange, DeviceType } from 'src/utils/beos-core';
|
||||
import { WebsocketSharedWorkerEnum } from 'src/websocket/interface';
|
||||
import { MessageTopic } from '@bytetrade/core';
|
||||
import { MessageTopic } from 'src/utils/beos-core';
|
||||
import { bus } from 'src/utils/bus';
|
||||
import { commonInterceptValue } from 'src/utils/response';
|
||||
import { useNotificationStore } from 'src/stores/desktop/notification';
|
||||
|
||||
@@ -8,7 +8,7 @@ import { useFilesCopyStore } from 'src/stores/files-copy';
|
||||
import { watch } from 'vue';
|
||||
import { RouteLocationNormalizedLoaded } from 'vue-router';
|
||||
import { useDeviceStore } from 'src/stores/settings/device';
|
||||
import { DeviceType } from '@bytetrade/core';
|
||||
import { DeviceType } from 'src/utils/beos-core';
|
||||
|
||||
export class FilesApplication extends NormalApplication {
|
||||
applicationName = 'files';
|
||||
|
||||
@@ -107,6 +107,4 @@ export interface NativeAppPlatform extends AppPlatform {
|
||||
getQuasar(): QVueGlobals | undefined;
|
||||
|
||||
getRouter(): Router | undefined;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -83,11 +83,11 @@ export interface AppPlatform extends Platform, PlatformExtension {
|
||||
facebook: {
|
||||
appId: string;
|
||||
clientToken: string;
|
||||
},
|
||||
};
|
||||
google: {
|
||||
webClientId: string;
|
||||
iOSClientId: string;
|
||||
androidClientId: string;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { NormalApplication } from './base';
|
||||
import { useTokenStore } from '../stores/token';
|
||||
import { CurrentView } from '../utils/constants';
|
||||
import { useDevice, onDeviceChange } from '@bytetrade/core';
|
||||
import { useDevice, onDeviceChange } from 'src/utils/beos-core';
|
||||
|
||||
export class LoginApplication extends NormalApplication {
|
||||
applicationName = 'login';
|
||||
|
||||
@@ -10,7 +10,7 @@ import { bus, BUS_EVENT, busEmit } from '../utils/bus';
|
||||
import { useUserStore } from '../stores/market/user';
|
||||
import { useMenuStore } from '../stores/market/menu';
|
||||
import globalConfig from 'src/api/market/config';
|
||||
import { DeviceType } from '@bytetrade/core';
|
||||
import { DeviceType } from 'src/utils/beos-core';
|
||||
import { NormalApplication } from './base';
|
||||
import { supportLanguages } from '../i18n';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
|
||||
@@ -17,7 +17,7 @@ import { WebsocketSharedWorkerEnum } from 'src/websocket/interface';
|
||||
import { bus } from 'src/utils/bus';
|
||||
import qs from 'qs';
|
||||
import { notifyFailed } from 'src/utils/settings/btNotify';
|
||||
import { DeviceType } from '@bytetrade/core';
|
||||
import { DeviceType } from 'src/utils/beos-core';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useCookieStore } from 'src/stores/settings/cookie';
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { busEmit, NetworkErrorMode } from 'src/utils/bus';
|
||||
import { WebsocketSharedWorkerEnum } from 'src/websocket/interface';
|
||||
import { registerTranslateMethod } from '@didvault/sdk/src/util';
|
||||
import { i18n } from 'src/boot/i18n';
|
||||
import { GolbalHost } from '@bytetrade/core';
|
||||
import { GolbalHost } from 'src/utils/beos-core';
|
||||
|
||||
export class VaultApplication extends NormalApplication {
|
||||
applicationName = 'vault';
|
||||
|
||||
@@ -97,7 +97,7 @@ import {
|
||||
Encoder,
|
||||
bytetrade,
|
||||
DeviceType
|
||||
} from '@bytetrade/core';
|
||||
} from 'src/utils/beos-core';
|
||||
import { WindowInfo, AppClickInfo, MessageData } from './type/types';
|
||||
import { bus } from '../../utils/bus';
|
||||
import { useAppStore } from '../../stores/desktop/app';
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
import { DeviceType } from '@bytetrade/core';
|
||||
import { DeviceType } from 'src/utils/beos-core';
|
||||
import PcHome from './IndexPage.vue';
|
||||
import LandscapeScreenIndex from './LandscapeScreenIndex.vue';
|
||||
import MobileHome from './mobile/IndexPage.vue';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<q-page class="column items-center justify-center">
|
||||
<img src="../../assets/desktop/landscape.svg" />
|
||||
<p class="title q-mt-lg">Olares</p>
|
||||
<p class="title q-mt-lg">beOS Pro</p>
|
||||
<p class="content">{{ t('landscape_message') }}</p>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
@@ -82,7 +82,7 @@ import {
|
||||
Category,
|
||||
Encoder,
|
||||
bytetrade
|
||||
} from '@bytetrade/core';
|
||||
} from 'src/utils/beos-core';
|
||||
import { WindowInfo, AppClickInfo, MessageData } from '../type/types';
|
||||
import { bus } from '../../../utils/bus';
|
||||
import { useAppStore } from '../../../stores/desktop/app';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { get, isEmpty, last, set, isArray, flatten, isUndefined } from 'lodash';
|
||||
import { getLocalTime, _capitalize } from '.';
|
||||
import { getValueByUnit, getSuitableUnit } from '@bytetrade/core';
|
||||
import { getValueByUnit, getSuitableUnit } from 'src/utils/beos-core';
|
||||
export {
|
||||
getValueByUnit,
|
||||
getZeroValues,
|
||||
getSuitableUnit,
|
||||
getSuitableValue,
|
||||
UnitKey
|
||||
} from '@bytetrade/core';
|
||||
} from 'src/utils/beos-core';
|
||||
|
||||
export const getFormatTime = (ms: string, showDay: boolean) =>
|
||||
getLocalTime(Number(ms))
|
||||
|
||||
@@ -55,7 +55,7 @@ const options = [
|
||||
];
|
||||
const initOption = {
|
||||
key: 'sub1',
|
||||
label: `${AppDetailStore.user.username}’s Olares`,
|
||||
label: `${AppDetailStore.user.username}’s beOS Pro`,
|
||||
children: options
|
||||
};
|
||||
const items = ref([initOption]);
|
||||
|
||||
@@ -207,14 +207,14 @@ const fetchData = (showLoading = true, autofresh = false) => {
|
||||
const sortApps = computed(() => {
|
||||
const target = get(monitoringData.value, `${selected.value.sortBy}`, []);
|
||||
const data = target.map((item) => {
|
||||
const isOlaresApp = item.name === OLARES_APP;
|
||||
const isBeOSApp = item.name === OLARES_APP;
|
||||
const firstEntrance = get(item, 'entrances[0]', {});
|
||||
const firstEntranceFormat = isOlaresApp
|
||||
const firstEntranceFormat = isBeOSApp
|
||||
? { ...firstEntrance, title: item.title, icon: item.icon }
|
||||
: firstEntrance;
|
||||
return {
|
||||
...item,
|
||||
entrances: isOlaresApp
|
||||
entrances: isBeOSApp
|
||||
? [{ ...firstEntrance, icon: item.icon }]
|
||||
: item.entrances,
|
||||
currentEntrance: item.currentEntrance
|
||||
|
||||
@@ -85,7 +85,7 @@ import { getNameSpacePodsList } from '@apps/control-panel-common/src/network';
|
||||
import MyImg from '@apps/control-panel-common/src/components/MyImg.vue';
|
||||
import trafficIcon from '@apps/dashboard/assets/traffic.svg';
|
||||
import pods2Icon from '@apps/dashboard/assets/pods2.svg';
|
||||
import { getSuitableUnit, getValueByUnit } from '@bytetrade/core';
|
||||
import { getSuitableUnit, getValueByUnit } from 'src/utils/beos-core';
|
||||
|
||||
interface Props {
|
||||
namespace: string;
|
||||
|
||||
@@ -235,7 +235,7 @@ const options = computed(() => {
|
||||
|
||||
const options = clusterOptions.value.concat(defaultOptions);
|
||||
|
||||
return FanStore.isOlaresOneDevice ? options.concat(fanOptions) : options;
|
||||
return FanStore.isBeOSOneDevice ? options.concat(fanOptions) : options;
|
||||
});
|
||||
|
||||
const gpuData = ref();
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
:title="$t('USER_RESOURCES', { name: appDetail.user.username })"
|
||||
>
|
||||
<template #avatar>
|
||||
<OlaresAvatar class="terminu-avatar-wrapper" />
|
||||
<BeOSAvatar class="terminu-avatar-wrapper" />
|
||||
</template>
|
||||
<UserResource
|
||||
:data="userResourcesData"
|
||||
@@ -92,7 +92,7 @@ import { useAppDetailStore } from '@apps/dashboard/src/stores/AppDetail';
|
||||
import Analytics from './AnalyticsPage.vue';
|
||||
import { get, last } from 'lodash';
|
||||
import PageBackground from '@apps/dashboard/components/PageBackground.vue';
|
||||
import OlaresAvatar from '@apps/dashboard/src/containers/OlaresAvatar.vue';
|
||||
import BeOSAvatar from '@apps/dashboard/src/containers/BeOSAvatar.vue';
|
||||
import { useResourcesStore } from '@apps/dashboard/src/stores/Resource';
|
||||
import { Locker } from '@apps/dashboard/src/types/main';
|
||||
import { timeParams } from '../../../controlPanelCommon/config/resource.common';
|
||||
|
||||
@@ -40,8 +40,7 @@ export const useFanStore = defineStore('FanStore', {
|
||||
|
||||
getters: {
|
||||
gpu_fan_speed_ratio: (state) => state.data.gpu_fan_speed,
|
||||
isOlaresOneDevice: (state) =>
|
||||
state.systemStatus?.device_name === 'Olares One'
|
||||
isBeOSOneDevice: (state) => state.systemStatus?.device_name === 'beOS One'
|
||||
},
|
||||
actions: {
|
||||
init() {
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
>
|
||||
<div class="file-item">
|
||||
<img
|
||||
v-if="prop.node.label === 'OlaresManifest.yaml'"
|
||||
v-if="prop.node.label === 'BeOSManifest.yaml'"
|
||||
class="q-mx-xs"
|
||||
src="../../assets/olares-icon.svg"
|
||||
/>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
<div
|
||||
class="text-subtitle1 text-teal-pressed deploy-text row items-center justify-start"
|
||||
@click="codingInOlares"
|
||||
@click="codingInBeOS"
|
||||
>
|
||||
<q-icon class="q-mr-sm" name="sym_r_box_edit" size="24px" />
|
||||
<span>{{ t('docker.coding') }}</span>
|
||||
@@ -50,7 +50,7 @@ import { BtNotify, NotifyDefinedType } from '@bytetrade/ui';
|
||||
import { useDockerStore } from './../stores/docker';
|
||||
import { pushToSystem } from './../utils/utils';
|
||||
import CreateApp from '../components/dialog/CreateApp.vue';
|
||||
import CodingInOlares from '../components/dialog/CodingInOlares.vue';
|
||||
import CodingInBeOS from '../components/dialog/CodingInBeOS.vue';
|
||||
import { useDevelopingApps } from '@apps/studio/src/stores/app';
|
||||
|
||||
const { t } = useI18n();
|
||||
@@ -91,9 +91,9 @@ const createApp = async () => {
|
||||
});
|
||||
};
|
||||
|
||||
const codingInOlares = () => {
|
||||
const codingInBeOS = () => {
|
||||
$q.dialog({
|
||||
component: CodingInOlares,
|
||||
component: CodingInBeOS,
|
||||
componentProps: {
|
||||
minMemory: 256
|
||||
}
|
||||
|
||||
@@ -48,9 +48,9 @@
|
||||
<div class="link-more text-body1 text-ink-2">
|
||||
{{ t('home_visit_1') }}
|
||||
<a
|
||||
href="https://docs.olares.com/zh/manual/overview.html"
|
||||
href="https://docs.beos.local/zh/manual/overview.html"
|
||||
target="_blank"
|
||||
>docs.olares.com</a
|
||||
>docs.beos.local</a
|
||||
>
|
||||
{{ t('home_visit_2') }}
|
||||
</div>
|
||||
|
||||
@@ -55,22 +55,22 @@ export const useMenuStore = defineStore('studio-menu', {
|
||||
{
|
||||
id: 1,
|
||||
message: 'Studio Tutorial',
|
||||
link: 'https://docs.olares.com/developer/develop/tutorial/'
|
||||
link: 'https://docs.beos.local/developer/develop/tutorial/'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
message: 'Understand Olares Application Chart',
|
||||
link: 'https://docs.olares.com/developer/develop/package/chart.html'
|
||||
message: 'Understand beOS Application Chart',
|
||||
link: 'https://docs.beos.local/developer/develop/package/chart.html'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
message: 'OlaresManifest configuration guide',
|
||||
link: 'https://docs.olares.com/developer/develop/package/manifest.html'
|
||||
message: 'BeOSManifest configuration guide',
|
||||
link: 'https://docs.beos.local/developer/develop/package/manifest.html'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
message: 'How to submit an application',
|
||||
link: 'https://docs.olares.com/developer/develop/submit/'
|
||||
link: 'https://docs.beos.local/developer/develop/submit/'
|
||||
}
|
||||
]
|
||||
} as DataState;
|
||||
|
||||
@@ -10,7 +10,7 @@ export async function pushToSystem(app_name, router, value?: string) {
|
||||
namespace = value;
|
||||
} else {
|
||||
const url = window.location.origin;
|
||||
// const url = 'https://studio.zhaohuaiyuan.olares.cn/';
|
||||
|
||||
const olaresId =
|
||||
url.split('.')[1] == 'local' ? url.split('.')[2] : url.split('.')[1];
|
||||
namespace = app_name + '-dev-' + olaresId;
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -109,7 +109,7 @@ export default boot(({ app }) => {
|
||||
}
|
||||
);
|
||||
|
||||
const termipassResponseInterceptor = (response: AxiosResponse) => {
|
||||
const beosResponseInterceptor = (response: AxiosResponse) => {
|
||||
if (
|
||||
!response ||
|
||||
(response.status != 200 && response.status != 201) ||
|
||||
@@ -166,7 +166,7 @@ export default boot(({ app }) => {
|
||||
|
||||
app.config.globalProperties.$axios.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
return termipassResponseInterceptor(response);
|
||||
return beosResponseInterceptor(response);
|
||||
},
|
||||
(error: any) => {
|
||||
const errorMessage = getRequestErrorMessage(error);
|
||||
|
||||
@@ -12,7 +12,7 @@ export default boot(async ({ app }) => {
|
||||
app.use(VueLazyload);
|
||||
app.use(BaseComponents);
|
||||
app.use(BtCustomDialog, {
|
||||
defaultOkClass: 'larepass-global-ok-button'
|
||||
defaultOkClass: 'beos-global-ok-button'
|
||||
});
|
||||
BtNotify.init(Notify);
|
||||
BtDialog.init(Dialog);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
class="user_status"
|
||||
:class="
|
||||
configIconClass(
|
||||
termipassStore.totalStatus?.isError || UserStatusActive.normal
|
||||
beosAppStore.totalStatus?.isError || UserStatusActive.normal
|
||||
)
|
||||
"
|
||||
></div>
|
||||
@@ -20,12 +20,12 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useUserStore } from '../../stores/user';
|
||||
import { useTermipassStore } from '../../stores/termipass';
|
||||
import { useBeOSAppStore } from '../../stores/beosApp';
|
||||
import { UserStatusActive } from '../../utils/checkTerminusState';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const termipassStore = useTermipassStore();
|
||||
const beosAppStore = useBeOSAppStore();
|
||||
|
||||
const configIconClass = (active: UserStatusActive) => {
|
||||
if (active == UserStatusActive.error) {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
class="user_status"
|
||||
:class="
|
||||
configIconClass(
|
||||
termipassStore.totalStatus?.isError || UserStatusActive.normal
|
||||
beosAppStore.totalStatus?.isError || UserStatusActive.normal
|
||||
)
|
||||
"
|
||||
></div>
|
||||
@@ -26,12 +26,12 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useUserStore } from '../../stores/user';
|
||||
import { useTermipassStore } from '../../stores/termipass';
|
||||
import { useBeOSAppStore } from '../../stores/beosApp';
|
||||
import { UserStatusActive } from '../../utils/checkTerminusState';
|
||||
import AccountList from 'src/pages/Mobile/AccountListPlugin.vue';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const termipassStore = useTermipassStore();
|
||||
const beosAppStore = useBeOSAppStore();
|
||||
|
||||
const configIconClass = (active: UserStatusActive) => {
|
||||
if (active == UserStatusActive.error) {
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { getFileIcon } from '@bytetrade/core';
|
||||
import { getFileIcon } from 'src/utils/beos-core';
|
||||
import { computed, PropType } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { enableThumbs } from '../../utils/constants';
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
: t(
|
||||
'This password is only used for unlocking {AppName} on this device',
|
||||
{
|
||||
AppName: 'LarePass'
|
||||
AppName: 'beOS Pro'
|
||||
}
|
||||
)
|
||||
}}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
: t(
|
||||
'This password is only used for unlocking {AppName} on this device',
|
||||
{
|
||||
AppName: 'LarePass'
|
||||
AppName: 'beOS Pro'
|
||||
}
|
||||
)
|
||||
}}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<div class="q-mt-md text-ink-3 text-body3">
|
||||
{{
|
||||
t(
|
||||
"After being selected, LarePass will follow the device's system settings to switch theme modes"
|
||||
"After being selected, beOS Pro will follow the device's system settings to switch theme modes"
|
||||
)
|
||||
}}
|
||||
</div>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
<div class="tabs-items row items-center justify-evenly">
|
||||
<div
|
||||
v-for="(item, index) in termipassStore.tabItems"
|
||||
v-for="(item, index) in beosAppStore.tabItems"
|
||||
:key="item.identify"
|
||||
:style="`width:calc((100% - 20px)/${termipassStore.tabItems.length})`"
|
||||
:style="`width:calc((100% - 20px)/${beosAppStore.tabItems.length})`"
|
||||
@click="updateCurrent(index)"
|
||||
class="tab-item column justify-end items-center"
|
||||
>
|
||||
@@ -66,7 +66,7 @@ import { getRequireImage } from '../../utils/imageUtils';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useFilesStore } from './../../stores/files';
|
||||
import { useTermipassStore } from '../../stores/termipass';
|
||||
import { useBeOSAppStore } from '../../stores/beosApp';
|
||||
|
||||
const props = defineProps({
|
||||
current: {
|
||||
@@ -80,7 +80,7 @@ const emit = defineEmits(['updateCurrent']);
|
||||
|
||||
const $router = useRouter();
|
||||
|
||||
const termipassStore = useTermipassStore();
|
||||
const beosAppStore = useBeOSAppStore();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
@@ -91,14 +91,14 @@ const updateCurrent = (index: number) => {
|
||||
if (index === props.current) {
|
||||
return;
|
||||
}
|
||||
if (termipassStore.tabItems[index].tabChanged) {
|
||||
const result = termipassStore.tabItems[index].tabChanged();
|
||||
if (beosAppStore.tabItems[index].tabChanged) {
|
||||
const result = beosAppStore.tabItems[index].tabChanged();
|
||||
if (result) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (termipassStore.tabItems[index].to) {
|
||||
$router.replace(termipassStore.tabItems[index].to);
|
||||
if (beosAppStore.tabItems[index].to) {
|
||||
$router.replace(beosAppStore.tabItems[index].to);
|
||||
return;
|
||||
}
|
||||
emit('updateCurrent', index);
|
||||
|
||||
@@ -114,7 +114,7 @@ import { getRequireImage } from '../../utils/imageUtils';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useFilesStore } from '../../stores/files';
|
||||
import { useTermipassStore } from '../../stores/termipass';
|
||||
import { useBeOSAppStore } from '../../stores/beosApp';
|
||||
import menuActionIcon from 'src/assets/plugin/menu-action.svg';
|
||||
import menuActionIconDark from 'src/assets/plugin/menu-action-dark.svg';
|
||||
import BtTooltip from 'src/components/base/BtTooltip.vue';
|
||||
@@ -140,11 +140,11 @@ const $q = useQuasar();
|
||||
|
||||
const itemList = computed(() => {
|
||||
if (!userStore.current_user?.isLargeVersion12 && process.env.IS_BEX) {
|
||||
return termipassStore.tabItems.filter(
|
||||
return beosAppStore.tabItems.filter(
|
||||
(item) => !tabsIgnore.includes(item.identify)
|
||||
);
|
||||
} else {
|
||||
return termipassStore.tabItems;
|
||||
return beosAppStore.tabItems;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -152,11 +152,11 @@ const actionIcon = computed(() => {
|
||||
return $q.dark.isActive ? menuActionIconDark : menuActionIcon;
|
||||
});
|
||||
|
||||
const termipassStore = useTermipassStore();
|
||||
const beosAppStore = useBeOSAppStore();
|
||||
|
||||
const tabItemOption = computed(() => {
|
||||
const top = termipassStore.tabItems.slice(0, -1);
|
||||
const bottom = termipassStore.tabItems.slice(-1);
|
||||
const top = beosAppStore.tabItems.slice(0, -1);
|
||||
const bottom = beosAppStore.tabItems.slice(-1);
|
||||
return {
|
||||
top,
|
||||
bottom
|
||||
@@ -172,14 +172,14 @@ const updateCurrent = (index: number) => {
|
||||
if (index === props.current) {
|
||||
return;
|
||||
}
|
||||
if (termipassStore.tabItems[index].tabChanged) {
|
||||
const result = termipassStore.tabItems[index].tabChanged();
|
||||
if (beosAppStore.tabItems[index].tabChanged) {
|
||||
const result = beosAppStore.tabItems[index].tabChanged();
|
||||
if (result) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (termipassStore.tabItems[index].to) {
|
||||
$router.replace(termipassStore.tabItems[index].to);
|
||||
if (beosAppStore.tabItems[index].to) {
|
||||
$router.replace(beosAppStore.tabItems[index].to);
|
||||
return;
|
||||
}
|
||||
emit('updateCurrent', index);
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
<template>
|
||||
<div
|
||||
v-if="
|
||||
termipassStore.totalStatus?.isError == UserStatusActive.error ||
|
||||
beosAppStore.totalStatus?.isError == UserStatusActive.error ||
|
||||
$slots.errorcontent
|
||||
"
|
||||
class="error-content text-body3 row items-center justify-center q-py-sm"
|
||||
>
|
||||
<q-icon name="sym_r_error" size="20px" class="q-mr-sm" />
|
||||
<div v-if="!$slots.errorcontent" style="max-width: calc(100% - 70px)">
|
||||
<div v-if="termipassStore.totalStatus?.description">
|
||||
<div v-if="termipassStore.totalStatus.descriptionEx">
|
||||
<div v-if="beosAppStore.totalStatus?.description">
|
||||
<div v-if="beosAppStore.totalStatus.descriptionEx">
|
||||
{{
|
||||
termipassStore.totalStatus.description.split(
|
||||
termipassStore.totalStatus.descriptionEx
|
||||
beosAppStore.totalStatus.description.split(
|
||||
beosAppStore.totalStatus.descriptionEx
|
||||
)[0]
|
||||
}}
|
||||
<span class="jump-subline-item" @click="itemClick">
|
||||
{{ termipassStore.totalStatus.descriptionEx }}
|
||||
{{ beosAppStore.totalStatus.descriptionEx }}
|
||||
</span>
|
||||
{{
|
||||
termipassStore.totalStatus.description.split(
|
||||
termipassStore.totalStatus.descriptionEx
|
||||
beosAppStore.totalStatus.description.split(
|
||||
beosAppStore.totalStatus.descriptionEx
|
||||
).length > 1
|
||||
? termipassStore.totalStatus.description.split(
|
||||
termipassStore.totalStatus.descriptionEx
|
||||
? beosAppStore.totalStatus.description.split(
|
||||
beosAppStore.totalStatus.descriptionEx
|
||||
)[1]
|
||||
: ''
|
||||
}}
|
||||
</div>
|
||||
<div v-else>
|
||||
{{ termipassStore.totalStatus.description }}
|
||||
{{ beosAppStore.totalStatus.description }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -43,8 +43,8 @@
|
||||
import { UserStatusActive } from '../../utils/checkTerminusState';
|
||||
import { getPlatform } from '@didvault/sdk/src/core';
|
||||
import { TerminusCommonPlatform } from '../../platform/terminusCommon/terminalCommonPlatform';
|
||||
import { useTermipassStore } from '../../stores/termipass';
|
||||
const termipassStore = useTermipassStore();
|
||||
import { useBeOSAppStore } from '../../stores/beosApp';
|
||||
const beosAppStore = useBeOSAppStore();
|
||||
|
||||
const itemClick = () => {
|
||||
const platform = getPlatform() as unknown as TerminusCommonPlatform;
|
||||
|
||||