ShellRS
ShellRS 是一款免費、開源的 SSH 客戶端,使用 Rust 編寫:主機管理、終端機、WinSCP 風格的 SFTP 與埠轉發,全部於一個 GPU 渲染視窗中,支援 macOS、Windows 與 Linux。
AI 翻譯
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Self-hosted, open-source (Apache 2.0) fleet management for Linux edge devices: deploy, monitor, update, and reach devices via WireGuard and browser SSH.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Self-hosted fleet platform for Linux devices.
MeteorCloud is the control plane, operator console, MQTT data plane, and device agent for managing edge fleets you own. Enroll devices, organize them by type and group, ship artifacts, run commands over MQTT, and keep operator access multi-tenant and auditable — without sending device data to a third-party SaaS.
Website: meteor-edge.com
| You host it | Docker Compose on a VM/EC2, or Helm on a cluster you already run |
| Multi-tenant | Organizations, memberships, RBAC, and optional device-group scopes |
| Device lifecycle | Registration tokens, device-initiated enrollment, heartbeat, inventory |
| MQTT-ready | TLS broker (EMQX), per-device credentials, ACL, ingest, live telemetry |
| Artifacts | OS images, firmware, compose bundles — metadata in Postgres, blobs in filesystem or S3 |
| Replaceable infra | PostgreSQL required; Redis, MQTT, and object storage selected by config |
MeteorCloud is split into three planes. The console is the operator UI; it talks only to the control plane.
| Plane | Path | Role |
|---|---|---|
| Device plane | src/device-plane/agent/ | meteorcli on the device: enroll, heartbeat, inventory, MQTT client |
| Data plane | src/data-plane/ | Platform MQTT gateway: subscribe/publish via EMQX, forward ingest to the control plane |
| Control plane | src/control-plane/ | Identity, tenancy, device registry, artifacts, MQTT policy, operator API, persistence |
┌─────────────────┐ ┌─────────────────┐ ┌──────────────────────┐
│ Device plane │ │ Data plane │ │ Control plane │
│ (meteorcli) │ │ (MQTT gateway) │ │ (API + Postgres) │
└────────┬────────┘ └────────┬────────┘ └──────────┬───────────┘
│ │ │
│ HTTPS enroll / │ │
│ heartbeat / auth ├────────────────────────►│
│────────────────────────────────────────────────►│
│ │ │
│ MQTT telemetry / │ HTTP ingest │
│ status ──► EMQX ────►│────────────────────────►│
│ │ │
│◄── MQTT commands ◄────│◄── HTTP publish ────────│
│ EMQX │ │
Device → cloud (typical path)
More detail: docs/architecture.md.
Compose on your machine. Not for production.
git clone https://github.com/meteor-edge/meteor-cloud.git
cd meteor-cloud
make dev
make seed # [email protected] / dev-password-123
| Surface | URL |
|---|---|
| Console | http://localhost:5173 |
| Control plane | http://localhost:8000 |
| OpenAPI | http://localhost:8000/docs |
| Data plane health | http://localhost:8081/health |
| MQTT TLS | mqtts://localhost:8883 |
| EMQX dashboard (dev) | http://localhost:18083 |
Choose bundled services with COMPOSE_PROFILES in deploy/compose/.env (postgres, redis, minio, mqtt, emqx). Start one module: make dev-control-plane, make dev-data-plane, make dev-console. Stop: make stop.
Kubernetes (local k3d + Helm):
make k8s-up && make k8s-deploy && make k8s-status
See docs/getting-started.md and docs/development.md.
On the server that will host MeteorCloud (on-prem VM or an existing EC2). Ansible installs Docker and starts production Compose (optional WireGuard).
# Ubuntu / Debian: sudo apt-get update && sudo apt-get install -y git make
# RHEL / Rocky / Alma: sudo dnf install -y git make
git clone https://github.com/meteor-edge/meteor-cloud.git
cd meteor-cloud
make up PLATFORM_DOMAIN=fleet.example.com
Create the printed DNS records (fleet.example.com, *.fleet.example.com,
vpn.fleet.example.com) and open https://fleet.example.com. Login and secrets
are printed at the end (~/.meteorcloud/secrets.env). Stop with make down.
Guide: docs/install-quickstart.md · docs/dns.md.
To create a new AWS EC2 from a laptop: make aws-up (docs/aws-deployment.md). Do not run make aws-up on the VM.
Two independent paths; same images and settings.
| Docker Compose + Ansible | Kubernetes + Helm | |
|---|---|---|
| For | One VM, EC2, or on-prem server | An existing cluster (k3s, GKE, EKS, AKS, …) |
| Files | deploy/compose/, deploy/ansible/ | deploy/kubernetes/helm/meteorcloud/ |
| Install | make up on the VM, or ansible-playbook playbooks/site.yml / make aws-up (new EC2) | helm upgrade --install |
| Guide | docs/deployment.md | docs/kubernetes.md |
MeteorCloud does not provision or manage Kubernetes clusters. The Helm chart installs into a cluster you already have. Ansible only prepares servers and runs Compose; it never deploys to Kubernetes. Terraform (infrastructure/terraform/aws) creates the AWS EC2 host for the Compose path.
On a VM you already have: clone, make up. To create a new AWS EC2 from a laptop, make aws-up (or edge-installer apply) runs Terraform then Ansible. Fresh-instance proof: GitHub Actions → EC2 smoke test (docs/aws-ci.md).
| Dependency | Status | Options |
|---|---|---|
| PostgreSQL | Required | Bundled container, or external |
| Artifact storage | Required | Filesystem volume, AWS S3, or any S3-compatible API |
| MQTT broker | Optional | Bundled or external EMQX; off by default |
| Redis | Optional | Shared rate limits across API replicas; in-memory otherwise |
| Kafka, ClickHouse | Not used | Not deployed |
The smallest install runs PostgreSQL, the API, the console, and a reverse proxy (Traefik with Compose, your ingress with Kubernetes).
├── src/
│ ├── control-plane/ # FastAPI (app.*), Dockerfile
│ ├── data-plane/ # MQTT gateway (data_plane.*), Dockerfile
│ └── device-plane/agent/ # meteorcli
├── console/ # operator UI, Dockerfile (nginx)
├── deploy/
│ ├── compose/ # Docker Compose files, .env.example
│ ├── ansible/ # server preparation + Compose deployment
│ └── kubernetes/helm/ # Helm chart
├── infrastructure/
│ ├── terraform/aws/ # EC2 host for the Compose path
│ └── installer/ # edge-installer (Terraform + Ansible on AWS)
├── contracts/ # HTTP JSON between planes
├── scripts/ # smoke tests, certificates, CI helpers
├── docs/
└── Makefile
Start with Getting started, then the full index: docs/README.md. Contributors: CONTRIBUTING.md. Coding agents: AGENTS.md.
| Doc | Topic |
|---|---|
| Getting started | Laptop: make dev + first device |
| Concepts | Three planes, orgs, devices |
| API overview | Control-plane HTTP map |
| meteorcli | Device CLI |
| Architecture | Planes, contracts, git vs deploy vs artifacts |
| Install quickstart | make up on a VM; make aws-up for a new EC2 |
| Deployment · Kubernetes | Production install |
Website: meteor-edge.com.
Copyright © Meteor Edge contributors.
Licensed under the Apache License, Version 2.0.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.