From fd5196cdc98d3d02e200eab1690befd12cd3b13f Mon Sep 17 00:00:00 2001 From: MICUROWS <47475807+TScci@users.noreply.github.com> Date: Thu, 7 Sep 2023 17:53:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20portainer-ce=20?= =?UTF-8?q?=E5=BA=94=E7=94=A8=20(#355)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add portainer-ce * push * Add license scan report and status Signed off by: fossabot --------- Co-authored-by: root Co-authored-by: fossabot --- README.md | 6 ++++ apps/portainer-ce/README.md | 34 ++++++++++++++++++++ apps/portainer-ce/data.yml | 20 ++++++++++++ apps/portainer-ce/latest/data.yml | 17 ++++++++++ apps/portainer-ce/latest/docker-compose.yml | 19 +++++++++++ apps/portainer-ce/logo.png | Bin 0 -> 8609 bytes 6 files changed, 96 insertions(+) create mode 100644 apps/portainer-ce/README.md create mode 100644 apps/portainer-ce/data.yml create mode 100644 apps/portainer-ce/latest/data.yml create mode 100644 apps/portainer-ce/latest/docker-compose.yml create mode 100644 apps/portainer-ce/logo.png diff --git a/README.md b/README.md index 363d5b4e7..be9654009 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # appstore +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FTScci%2Fappstore.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FTScci%2Fappstore?ref=badge_shield) + [1Panel](https://github.com/1Panel-dev/1Panel) 应用商店的官方存储库,包含了所有可以在 [1Panel](https://github.com/1Panel-dev/1Panel) 应用商店安装的应用程序。 [如何提交自己想要的应用](https://github.com/1Panel-dev/appstore/wiki/%E5%A6%82%E4%BD%95%E6%8F%90%E4%BA%A4%E8%87%AA%E5%B7%B1%E6%83%B3%E8%A6%81%E7%9A%84%E5%BA%94%E7%94%A8) + + +## License +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FTScci%2Fappstore.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FTScci%2Fappstore?ref=badge_large) \ No newline at end of file diff --git a/apps/portainer-ce/README.md b/apps/portainer-ce/README.md new file mode 100644 index 000000000..30e0886cd --- /dev/null +++ b/apps/portainer-ce/README.md @@ -0,0 +1,34 @@ +## About Portainer + +Portainer Community Edition (CE) is our foundation. With over half a million regular users, CE is a powerful, open source toolset that allows you to easily build and manage containers in Docker, Docker Swarm, Kubernetes and Azure ACI. + +Portainer hides the complexity of managing containers behind an easy-to-use UI. By removing the need to use the CLI, write YAML or understand manifests, Portainer makes deploying apps and troubleshooting problems so easy that anyone can do it. + +## Portainer architecture + +- **Overview of Portainer architecture** + +Portainer consists of two elements: the Portainer Server and the Portainer Agent. Both run as lightweight containers on your existing containerized infrastructure. The Portainer Agent should be deployed to each node in your cluster and configured to report back to the Portainer Server container. + +A single Portainer Server will accept connections from any number of Portainer Agents, providing the ability to manage multiple clusters from one centralized interface. To do this, the Portainer Server container requires data persistence. The Portainer Agents are stateless, with data being shipped back to the Portainer Server container. + +![The Portainer architecture](https://2914113074-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiZWHJxqQsgWYd9sI88sO%2Fuploads%2FZDidVsHkkHwy97bVrRdM%2Fportainer-architecture-detailed.png?alt=media&token=a31751c5-f5d2-47ca-be2e-0d7f20f182ef) + +- We don't currently support running multiple instances of the Portainer Server container to manage the same clusters. We recommend running the Portainer Server on a specific management node, with Portainer Agents deployed across the remaining nodes. + +- **Agent vs Edge Agent** + +In standard deployments, the central Portainer Server instance and any environments it manages are assumed to be on the same network, that is, Portainer Server and the Portainer Agents are able to seamlessly communicate with one another. However, in configurations where the remote environments are on a completely separate network to Portainer Server, say, across the internet, historically we would have been unable to centrally manage these devices. + +With the new Edge Agent, we altered the architecture. Rather than the Portainer Server needing seamless access to the remote environment, only the remote environments need to be able to access the Portainer Server. This communication is performed over an encrypted TLS tunnel. This is important in Internet-connected configurations where there is no desire to expose the Portainer Agent to the internet. + +- **Security and compliance** + +Portainer runs exclusively on your servers, within your network, behind your own firewalls. As a result, we do not currently hold any SOC or PCI/DSS compliance because we do not host any of your infrastructure. You can even run Portainer completely disconnected (air-gapped) without any impact on functionality. + +While we do (optionally) collect anonymous usage analytics from Portainer installations, we remain compliant with GDPR. Data collection can be disabled when you install the product, or at any time after that. If your installation is air-gapped, collection will silently fail without any adverse effects. + +## Quick Start +- [Official Website](https://www.portainer.io/) +- [Document](https://docs.portainer.io/) +- [Dockerhub](https://hub.docker.com/r/portainer/portainer-ce/tags) \ No newline at end of file diff --git a/apps/portainer-ce/data.yml b/apps/portainer-ce/data.yml new file mode 100644 index 000000000..6b0c3c41c --- /dev/null +++ b/apps/portainer-ce/data.yml @@ -0,0 +1,20 @@ +name: Portainer-CE +tags: + - 工具 +title: 图形界面容器管理工具 +type: 工具 +description: +additionalProperties: + key: portainer-ce + name: Portainer-CE + tags: + - Tool + shortDescZh: 图形界面容器管理工具 + shortDescEn: GUI container management tools + type: tool + crossVersionUpdate: true + limit: 1 + recommend: 0 + website: https://www.portainer.io/ + github: https://github.com/portainer/portainer + document: https://docs.portainer.io/ \ No newline at end of file diff --git a/apps/portainer-ce/latest/data.yml b/apps/portainer-ce/latest/data.yml new file mode 100644 index 000000000..9195e39d3 --- /dev/null +++ b/apps/portainer-ce/latest/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 9000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: 8000 + envKey: PORT_API + labelEn: Port + labelZh: API 端口 + required: true + rule: paramPort + type: number diff --git a/apps/portainer-ce/latest/docker-compose.yml b/apps/portainer-ce/latest/docker-compose.yml new file mode 100644 index 000000000..d53d9e2f5 --- /dev/null +++ b/apps/portainer-ce/latest/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3' +services: + portainer-ce: + container_name: ${CONTAINER_NAME} + ports: + - ${PANEL_APP_PORT_HTTP}:9000 + - ${PORT_API}:8000 + restart: always + networks: + - 1panel-network + volumes: + - ./data:/data + - /var/run/docker.sock:/var/run/docker.sock + image: portainer/portainer-ce:latest + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/portainer-ce/logo.png b/apps/portainer-ce/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7c96acc5982ea8739449b4c1a17409ce33aa0685 GIT binary patch literal 8609 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 literal 0 KcmV+b0RR6000031