{"id":21147985,"url":"https://github.com/opennaslab/bifrost","last_synced_at":"2025-08-25T13:25:20.731Z","repository":{"id":196881958,"uuid":"679282587","full_name":"opennaslab/bifrost","owner":"opennaslab","description":"Take you to the land of light, the city of freedom(A unified external service management system for NAS).","archived":false,"fork":false,"pushed_at":"2023-11-08T14:27:52.000Z","size":24072,"stargazers_count":4,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T02:21:35.061Z","etag":null,"topics":["bifrost","container","ddns","docker","gateway","linux","nas","nat"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opennaslab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-16T13:48:38.000Z","updated_at":"2024-04-03T10:01:13.000Z","dependencies_parsed_at":"2023-09-28T02:50:35.094Z","dependency_job_id":"730548f8-7d3c-46ec-aabe-dfb304aeb3cf","html_url":"https://github.com/opennaslab/bifrost","commit_stats":null,"previous_names":["opennaslab/bifrost"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fbifrost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fbifrost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fbifrost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennaslab%2Fbifrost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opennaslab","download_url":"https://codeload.github.com/opennaslab/bifrost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248703198,"owners_count":21148118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bifrost","container","ddns","docker","gateway","linux","nas","nat"],"created_at":"2024-11-20T09:19:47.789Z","updated_at":"2025-04-13T11:11:32.217Z","avatar_url":"https://github.com/opennaslab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bifrost\n\nTake you to the land of light, the city of freedom(A unified external service management system for NAS).\n\n## 场景抽象\n\n对于公网服务暴露，存在如下场景：\n无公网：\n1. 本地安装frpc，本地frpc配置/长期运行\n2. 服务器安装frps，或者再添加nginx，服务端配置/长期运行\n3. 域名配置/长期运行\n\n\n其他本地和服务端的业务配置和安装\n\n\n有公网：\n1. 本地ngin反向代理配置\n2. 无\n3. 域名配置\n\n从上面可以发现，都是一个一个步骤的抽象，上一个步骤完成，然后执行下一个步骤。所以，本质上是一个工作流的处理，携带着各种参数。\n\n所以，本质上两种资源：步骤，和网站的服务流，服务类由一个一个步骤抽象组成。定义如下：\n\n# demo\n步骤1\n```yaml\nname: FrpcServiceUp\ndescription: xxx\nparameter:\n  in:\n    server:\n      type: string\n      description: xxx\n      default: xxx\n      required: true\n    ports:\n      type: array\n      description: xxx\n      required: true\n      items:\n        localPort:\n          type: string\n        remotePort:\n          type: string\n  out:\n    configPath:\n      type: string\nimage: xxxx\n```\n\n步骤2\n```yaml\nname: FrpsServiceUp\ndescription: xxx\nparameter:\n  in:\n    ip: x1\n    sshUser: x2\n    sshPasword: x3\n    os: ubuntu\n  out:\n    configPath: xxx\nimage: xxxx\n```\n\n步骤3\n```yaml\nname: DDNS\nparameter:\n  in:\n    xxx\n  out:\n    xxx\nimage:xxx\n```\n\nfull workflow demo:\n```yaml\nname: exposeLocalService\nkind: ServiceExpose\ndescription: xxx\nconfigurationSteps:\n- use: xxx\n  name: frpInstall\n  in:\n    ip: xxx\n    xxx: xxx\n- use: xxx\n  in: |\n    ip: frpInstall.out.xxx\n- use: xxx\n  name: xxx\n  with:\n    - xxx: xxx.out.xxx\n- use: xxx\n  with:\n    -name: xxx\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennaslab%2Fbifrost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopennaslab%2Fbifrost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennaslab%2Fbifrost/lists"}