인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
배포 및 운영 · SKILL.md

polar-local-environment

polar-local-environment

This skill should be used when setting up or managing Polar local development environment with Docker.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: polar-local-environment description: "This skill should be used when setting up or managing Polar local development environment with Docker." license: MIT metadata: author: polar version: "1.1.0"

Local Environment Skill

Helps manage the Polar local development environment through the dev docker CLI. Use it to start, stop, debug, or reason about the local stack.

The two-part model

dev docker deliberately splits the stack so many worktrees can share one set of heavy infra:

  • Shared infra — one copy per machine, Docker project polar-shared: postgres, redis, minio, tinybird, and optional prometheus/grafana. Postgres and redis publish no host ports; MinIO exposes 9000/9001 for browser uploads. Use dev docker exec <service> ... for services without host ports.
  • Per-instance app stack — one per worktree, project polar-app-<N>: api, worker, web. Only api and web publish host ports, offset per instance so worktrees don't collide.

Knowing this prevents the most common confusion: there is no localhost:5432 for the database (it lives in the shared stack and is reached through dev docker exec db ...). MinIO does expose ports 9000/9001 for browser uploads and console access.

Instance auto-detection

dev docker auto-detects the instance for the current worktree, so -i is rarely needed. Priority:

  1. POLAR_DOCKER_INSTANCE pinned in dev/docker/.env.docker (dev docker set-instance N)
  2. The cross-worktree registry (~/.config/polar/docker-instances.json)
  3. Otherwise the lowest free number, then registered

Run dev docker ports to see the resolved instance and its URLs (add --json for tooling). To wire this worktree into Claude Code's preview, run dev docker launch-json, which writes a per-instance .claude/launch.json with the correct ports (it's gitignored, so regenerate after set-instance).

When to use

  • Start / stop / restart the local environment
  • View logs or debug a service that won't come up
  • Run several isolated worktree instances in parallel
  • Understand the service architecture or find a service's real port
  • Diagnose container or first-boot errors

Quick reference

TaskCommand
Start full stack (background)dev docker up -d
Start and block until healthydev docker up -d --wait
Start in foreground (stream logs)dev docker up --no-detach
Rebuild with fresh base imagesdev docker up -b --pull -d
Show this instance's ports/URLsdev docker ports (--json for tooling)
Write Claude Code preview configdev docker launch-json
Stop app stackdev docker down
Stop app and shared infradev docker down --all
Follow logsdev docker logs -f [service]
Print logs and exitdev docker logs --no-follow [service]
Statusdev docker ps
Restart a servicedev docker restart <service>
Shell into a servicedev docker shell <service>
One-off command in a servicedev docker exec <service> <cmd>
Reset this instancedev docker cleanup -f
Wipe ALL shared datadev docker cleanup --all -f
List every instancedev docker list
With monitoringdev docker up --monitoring -d

Services

ServiceProjectHost port (instance 0 / N)Notes
apipolar-app-<N>8000 / 8100+NFastAPI; /healthz healthcheck
webpolar-app-<N>3000 / 3100+NNext.js; healthchecked
workerpolar-app-<N>noneBackground jobs
dbpolar-sharednone (exec)PostgreSQL; DB polar_dev_<N>
redispolar-sharednone (exec)Redis DB index = N
miniopolar-shared9000, 9001S3; buckets polar-s3-<N>; console at 9001
tinybirdpolar-sharednone (exec)Analytics
prometheus / grafanapolar-sharednone (exec)--monitoring only

Discover the exact host ports for the current worktree with dev docker ports.

Instance port mapping

Only api and web get host ports: Port = Base + Instance (Base 8100 for api, 3100 for web) for instances 1–99. Instance 0 uses the legacy 8000 / 3000.

InstanceAPIWeb
080003000
181013101
281023102
581053105

Everything else is per-instance but not on a host port: database polar_dev_<N>, redis DB index <N>, buckets polar-s3-<N> / polar-s3-public-<N>. Reach them via dev docker exec <service> or docker exec polar-shared-<service>-1.

Rules index

RuleCategoryDescription
service-architectureReferenceService details, ports, healthchecks
start-environmentOperationsStarting the stack (flags, --wait, --pull)
stop-environmentOperationsStopping and cleanup (app vs shared)
manage-instancesOperationsParallel worktree instances
view-logsDebuggingViewing service logs
shell-and-workflowsOperationsShell access and common dev workflows
troubleshootingDebuggingCommon errors and fixes
payment-testingOperationsLogin codes, Stripe webhooks, backoffice
저장한 Skills