Agent Skillselie222/inbox-zero › cloud-dev-environment

cloud-dev-environment

GitHub

提供 Cursor Cloud VM 环境配置指南,涵盖 Docker 启动、数据库服务初始化、环境变量配置及本地开发服务器启动流程。

.claude/skills/cloud-dev-environment/SKILL.md elie222/inbox-zero

Trigger Scenarios

需要设置或恢复云开发环境 解决 Docker 或数据库连接问题 配置缺失的环境变量

Install

npx skills add elie222/inbox-zero --skill cloud-dev-environment -g -y
More Options

Non-standard path

npx skills add https://github.com/elie222/inbox-zero/tree/main/.claude/skills/cloud-dev-environment -g -y

Use without installing

npx skills use elie222/inbox-zero@cloud-dev-environment

指定 Agent (Claude Code)

npx skills add elie222/inbox-zero --skill cloud-dev-environment -a claude-code -g -y

安装 repo 全部 skill

npx skills add elie222/inbox-zero --all -g -y

预览 repo 内 skill

npx skills add elie222/inbox-zero --list

SKILL.md

Frontmatter
{
    "name": "cloud-dev-environment",
    "description": "Cursor Cloud VM setup and service startup instructions for local development"
}

Cloud Development Environment

Services overview

  • Main app (apps/web): Next.js 16 app (Turbopack). Runs on port 3000.
  • PostgreSQL 16: Primary database. Runs on port 5432 via docker-compose.dev.yml.
  • Redis 7 + serverless-redis-http: Caching/rate-limiting. Redis on port 6380, HTTP proxy on port 8079.

Starting services

  1. Start Docker daemon if needed: sudo dockerd &>/dev/null &, then confirm with docker info (or sudo docker info if the client cannot reach the daemon yet).
  2. Start databases from repo root: docker compose -f docker-compose.dev.yml up -d. If you get permission denied on /var/run/docker.sock, run the same command with sudo docker compose instead of making the socket world-writable.
  3. Run Prisma migrations: cd apps/web && pnpm prisma:migrate:local (uses dotenv -e .env.local; do NOT use bare prisma migrate dev — it won't load .env.local).
  4. Start dev server: pnpm dev from repo root.

Environment file

The app reads apps/web/.env.local. Required non-obvious env vars beyond .env.example defaults:

  • DEFAULT_LLMS (e.g. openai:gpt-5.4-mini) — app crashes at startup without this.
  • GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET — hard-required by env.ts validation. Use Google emulator credentials for local dev (see below).
  • UPSTASH_REDIS_TOKEN must be set to dev_token to match the SRH_TOKEN default in docker-compose.dev.yml.
  • MICROSOFT_WEBHOOK_CLIENT_STATE — required if MICROSOFT_CLIENT_ID is set.

Google emulator for local dev

Use the Google emulator instead of real OAuth credentials:

GOOGLE_CLIENT_ID=emulate-google-client.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=emulate-google-secret
GOOGLE_BASE_URL=http://localhost:4002

Start the emulator: docker compose -f docker-compose.dev.yml --profile google-emulator up -d.

Testing

  • pnpm test runs Vitest unit/integration tests (no DB or external services required).
  • pnpm lint runs Biome. Pre-existing lint warnings/errors in the repo are expected.
  • AI tests (pnpm test-ai) require a real LLM API key and are skipped by default.

Docker in this environment

The cloud VM is a Docker-in-Docker setup. Docker requires fuse-overlayfs storage driver and iptables-legacy. These are configured during initial setup. After snapshot restore, run sudo dockerd &>/dev/null & if Docker daemon is not running.

The VM may not have the Docker Compose v2 plugin pre-installed. If docker compose version fails, install it:

sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -fsSL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

Onboarding flow

After a fresh login via the Google emulator, the app forces an onboarding wizard. Some onboarding buttons require JavaScript click() calls rather than standard browser clicks (React event delegation quirk in headless/automation contexts).

Version History

  • 633a2ab Current 2026-08-20 17:13

Same Skill Collection

.claude/skills/agent-browser/SKILL.md
.claude/skills/changelog/SKILL.md
.claude/skills/code-simplifier/SKILL.md
.claude/skills/create-pr/SKILL.md
.claude/skills/explain-changes/SKILL.md
.claude/skills/fullstack-workflow/SKILL.md
.claude/skills/llm-test/SKILL.md
.claude/skills/llm/SKILL.md
.claude/skills/project-structure/SKILL.md
.claude/skills/qa-label/SKILL.md
.claude/skills/qa-new-flow/SKILL.md
.claude/skills/review-ai-prompt-changes/SKILL.md
.claude/skills/review/SKILL.md
.claude/skills/test-feature/SKILL.md
.claude/skills/testing/SKILL.md
.claude/skills/ui-components/SKILL.md
.claude/skills/update-packages/SKILL.md
clawhub/inbox-zero-api/SKILL.md
.claude/skills/logging/SKILL.md
.claude/skills/prisma/SKILL.md
.claude/skills/qa-run/SKILL.md
.claude/skills/e2e/SKILL.md
.claude/skills/write-tests/SKILL.md
.claude/skills/wait/SKILL.md

Metadata

Files
0
Version
780453c
Hash
756bb07e
Indexed
2026-08-20 17:13

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-30 23:49
浙ICP备14020137号-1 $Гость$