diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml new file mode 100644 index 0000000..46b78f3 --- /dev/null +++ b/.github/workflows/website-deploy.yml @@ -0,0 +1,83 @@ +name: Website + +on: + pull_request: + branches: + - main + - base + paths: + - packages/website/** + - packages/client/src/styles/variables.scss + - package.json + - package-lock.json + - tsconfig.website.json + - vite.config.website.ts + - .github/workflows/website-deploy.yml + release: + types: + - published + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: website-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + build: + name: Build website + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: npm + cache-dependency-path: package-lock.json + + - name: Install dependencies + run: npm ci --ignore-scripts + + - name: Type-check website + run: npx vue-tsc -p tsconfig.website.json --noEmit + + - name: Build website + run: npm run build:website + + - name: Prepare SSH + if: github.event_name == 'release' || github.event_name == 'workflow_dispatch' + env: + WEBSITE_SSH_KEY: ${{ secrets.WEBSITE_SSH_KEY }} + WEBSITE_SSH_KNOWN_HOSTS: ${{ secrets.WEBSITE_SSH_KNOWN_HOSTS }} + run: | + test -n "$WEBSITE_SSH_KEY" + mkdir -p ~/.ssh + chmod 700 ~/.ssh + printf '%s\n' "$WEBSITE_SSH_KEY" > ~/.ssh/website_deploy_key + chmod 600 ~/.ssh/website_deploy_key + if [ -n "$WEBSITE_SSH_KNOWN_HOSTS" ]; then + printf '%s\n' "$WEBSITE_SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + fi + + - name: Deploy website + if: github.event_name == 'release' || github.event_name == 'workflow_dispatch' + env: + WEBSITE_SSH_USER: ${{ secrets.WEBSITE_SSH_USER }} + WEBSITE_SSH_PORT: ${{ secrets.WEBSITE_SSH_PORT }} + run: | + SSH_USER="${WEBSITE_SSH_USER:-root}" + SSH_PORT="${WEBSITE_SSH_PORT:-22}" + command -v rsync >/dev/null || { + sudo apt-get update + sudo apt-get install -y rsync + } + rsync -az --delete \ + -e "ssh -i ~/.ssh/website_deploy_key -p ${SSH_PORT} -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new" \ + dist/website/ \ + "$SSH_USER@154.3.33.232:/var/www/ekkolearnai.com/current/" diff --git a/README.md b/README.md index 747da51..85aa20c 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,14 @@
- A full-featured web dashboard for Hermes Agent.
+ A full-featured desktop app and web dashboard for Hermes Agent.
Manage AI chat sessions, monitor usage & costs, configure platform channels,
schedule cron jobs, browse skills — all from a clean, responsive web interface.
+ Download Hermes Studio Desktop
+ ·
npm install -g hermes-web-ui && hermes-web-ui start
- Hermes Agent 的全功能 Web 管理面板。
+ Hermes Agent 的全功能桌面应用和 Web 管理面板。
管理 AI 聊天会话、监控用量与成本、配置平台渠道、
管理定时任务、浏览技能 —— 全部在一个简洁响应式的 Web 界面中完成。
+ 下载 Hermes Studio 桌面版
+ ·
npm install -g hermes-web-ui && hermes-web-ui start
{{ installCmd }}