Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/opennaslab/bifrost
Take you to the land of light, the city of freedom(A unified external service management system for NAS).
https://github.com/opennaslab/bifrost
bifrost container ddns docker gateway linux nas nat
Last synced: about 1 month ago
JSON representation
Take you to the land of light, the city of freedom(A unified external service management system for NAS).
- Host: GitHub
- URL: https://github.com/opennaslab/bifrost
- Owner: opennaslab
- License: apache-2.0
- Created: 2023-08-16T13:48:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-30T03:53:28.000Z (about 1 year ago)
- Last Synced: 2023-10-30T04:37:49.579Z (about 1 year ago)
- Topics: bifrost, container, ddns, docker, gateway, linux, nas, nat
- Language: Go
- Homepage:
- Size: 22.4 MB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bifrost
Take you to the land of light, the city of freedom(A unified external service management system for NAS).
## 场景抽象
对于公网服务暴露,存在如下场景:
无公网:
1. 本地安装frpc,本地frpc配置/长期运行
2. 服务器安装frps,或者再添加nginx,服务端配置/长期运行
3. 域名配置/长期运行其他本地和服务端的业务配置和安装
有公网:
1. 本地ngin反向代理配置
2. 无
3. 域名配置从上面可以发现,都是一个一个步骤的抽象,上一个步骤完成,然后执行下一个步骤。所以,本质上是一个工作流的处理,携带着各种参数。
所以,本质上两种资源:步骤,和网站的服务流,服务类由一个一个步骤抽象组成。定义如下:
# demo
步骤1
```yaml
name: FrpcServiceUp
description: xxx
parameter:
in:
server:
type: string
description: xxx
default: xxx
required: true
ports:
type: array
description: xxx
required: true
items:
localPort:
type: string
remotePort:
type: string
out:
configPath:
type: string
image: xxxx
```步骤2
```yaml
name: FrpsServiceUp
description: xxx
parameter:
in:
ip: x1
sshUser: x2
sshPasword: x3
os: ubuntu
out:
configPath: xxx
image: xxxx
```步骤3
```yaml
name: DDNS
parameter:
in:
xxx
out:
xxx
image:xxx
```full workflow demo:
```yaml
name: exposeLocalService
kind: ServiceExpose
description: xxx
configurationSteps:
- use: xxx
name: frpInstall
in:
ip: xxx
xxx: xxx
- use: xxx
in: |
ip: frpInstall.out.xxx
- use: xxx
name: xxx
with:
- xxx: xxx.out.xxx
- use: xxx
with:
-name: xxx
```