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.io
,api.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와 같은 컨테이너화 도구를 사용하여 쉽게 배포하고 실행할 수 있으며, 클라우드 호스팅 서비스를 통해 빠르게 배포할 수 있는 장점이 있음.