Placemark: 웹 기반 지리공간 데이터 편집기(오픈소스)

https://github.com/placemark

GN⁺: 웹 기반 지리 공간 데이터 편집기인 Placemark, 이제 오픈 소스로 전환

Placemark 애플리케이션 소개

  • Placemark는 지리공간 데이터를 가져오기, 생성하기, 내보내기, 시각화하기, 게시하기를 할 수 있는 웹 애플리케이션임.
  • 다양한 지리공간 데이터 형식과 알고리즘 기반의 편집 작업(예: 버퍼링) 및 그리기 기반의 작업을 지원함.
  • 이 도구를 사용하는 YouTube 동영상이 많으며, 아카이브된 웹사이트에는 이전의 마케팅 자료가 있음.

초기 오픈 소스 릴리스 주의사항

  • 이 코드베이스의 초기 오픈 소스 릴리스로, 설정에 대한 도움은 가능하지만, 종단 간 통합 지원은 제공할 수 없음.
  • 복잡한 웹 애플리케이션이며 작성된 환경에서는 작동하지만 모든 환경에서 작동하는 것은 아님(예: Windows에서는 거의 확실히 작동하지 않음).
  • 다른 환경에서 설정을 용이하게 하거나, 기능을 선택적으로 만들거나, 기타 개선사항이나 수정사항에 대한 PR을 환영함.

기술 스택

  • 애플리케이션의 기술 스택에 대한 노트는 docs/architecture.md에서 확인할 수 있음.

Docker를 이용한 실행

  • Docker 파일 예시가 있으며, docs/docker에서 세부사항을 볼 수 있음.

Render에서 실행

  • render.yaml 파일에 의해 구성되며, Render에서 호스팅하는 것이 가장 빠른 실행 방법일 수 있음.
  • Railway, Heroku, Flightcontrol과 같은 유사한 호스팅 설정에서도 작동할 수 있음.

설치

  • 프로젝트는 yarn을 사용하여 구축되었으며, 마지막으로 테스트된 yarn 버전은 1.22.19임.
  • npm이나 다른 패키지 관리자로 설치할 경우 다른 종속성이 발생할 수 있음.

환경 변수

  • 개발 시 .env 파일을 읽고, 생산 환경에서는 환경 변수가 필요함.
  • 시작할 때 환경 변수를 확인하므로, 누락된 변수가 있으면 애플리케이션이 충돌할 수 있음.
  • 필요한 환경 변수 목록은 app/lib/env_server.ts와 app/lib/env_client.ts에서 확인할 수 있음.

필수 및 선택적 환경 변수

  • 필수: GitHub, Replicache
  • 선택적: Posthog, Cloudflare, Postmark, WorkOS, Stripe, CampaignMonitor, Logtail
  • 자체 호스팅 설치에서는 Stripe와 같은 일부 서비스가 필요하지 않을 수 있으며, 이를 선택적으로 만드는 것이 가능함.

인프라

  • Placemark는 애플리케이션(이 저장소)과 Postgres 14(또는 그 이상) 데이터베이스 두 개의 서버에 의존함.

도메인

  • 웹에서 Placemark는 세 개의 도메인 아래에서 제공됨: app.placemark.ioapi.placemark.io, API
  • API는 앱과 동일한 웹 서버에서 제공되며, Cloudflare Worker를 사용하여 api.placemark.io에서 app.placemark.io로 요청을 프록시함.

로컬 SSL 테스트

  • SSL 하에서만 작동하는 기능을 테스트해야 하는 경우에 필요함(예: iPhone에서 지리 위치 테스트).
  • Tailscale의 tailscale cert를 사용하고 인증서를 이 디렉토리로 이동시킨 후 caddy start를 실행함.

Stripe 사용

  • Stripe는 이 프로젝트의 선택적 종속성이 되고 있음.
  • 웹훅 프록시는 ./_scripts/webhook-proxy.js에 있으며, 선택적으로 실행할 수 있음.

GN⁺의 의견

  • Placemark는 지리공간 데이터를 다루는 데 필요한 다양한 기능을 제공하는 강력한 웹 애플리케이션으로, GIS 전문가나 개발자에게 유용함.
  • 오픈 소스로 제공되어 커뮤니티의 기여를 받을 수 있으며, 다양한 환경에서의 사용을 위한 개선이 가능함.
  • Docker와 같은 컨테이너화 도구를 사용하여 쉽게 배포하고 실행할 수 있으며, 클라우드 호스팅 서비스를 통해 빠르게 배포할 수 있는 장점이 있음.

Leave a Comment