피드로 돌아가기
I built a self-hosted AI workspace for macOS — meet Odysee
Dev.toDev.to
Infrastructure

FastAPI 기반 AI 워크스페이스의 pywebview 활용 macOS 네이티브 앱 패키징

I built a self-hosted AI workspace for macOS — meet Odysee

AlexDesign4202026년 6월 5일3intermediate

Context

웹 브라우저 기반의 FastAPI 애플리케이션을 독자적인 macOS 앱 형태로 배포하여 사용자 접근성을 높이려는 요구 발생. 기존 PWA 형태의 한계를 넘어 시스템 트레이 및 독(Dock)에서 실행 가능한 독립적 실행 환경 구축 필요.

Technical Solution

  • pywebview를 활용한 브라우저 크롬 제거 및 네이티브 윈도우 래핑 구조 설계
  • uvicorn 백엔드와 ChromaDB 벡터 스토어를 동시에 제어하는 Shell Launcher 기반의 프로세스 생명주기 관리
  • venv 환경을 직접 구동하는 .app 번들 설계를 통한 바이너리 크기 최소화 및 종속성 관리 효율화
  • FastAPI 백엔드와 Vanilla JS 프론트엔드 간의 단순 HTTP 통신 구조를 유지하며 빌드 단계 제거
  • 런처 스크립트 내 Cleanup Trap 구현을 통한 종료 시 자식 프로세스의 완전한 자원 회수 보장

- 웹 기반 도구를 데스크톱 앱으로 전환 시 pywebview를 통한 가벼운 래퍼 검토 - 셸 스크립트 기반 런처 설계 시 SIGINT/SIGTERM 트랩을 통한 백그라운드 프로세스 정지 로직 필수 포함 - 복잡한 프론트엔드 빌드 도구 없이 Vanilla JS를 활용하여 배포 파이프라인 단순화 가능성 확인

원문 읽기