Colota 1.9: 자신의 서버로 동기화되는 Android GPS 트래커
요약
Android용 오픈소스 GPS 트래커인 Colota v1.9.0이 출시되었습니다. 사용자의 개인 서버로 위치 데이터를 직접 동기화할 수 있으며, mTLS 인증 및 SQLite 데이터베이스 백업 기능을 지원합니다.
핵심 포인트
- 사용자 서버로의 데이터 동기화 및 커스텀 엔드포인트 지원
- mTLS 클라이언트 인증서를 통한 보안 강화
- 암호화된 SQLite 로컬 DB 백업 및 복구 기능 추가
- 지오펜스 및 트래킹 프로필을 통한 배터리 최적화
안녕하세요,
Colota v1.9.0이 출시되었습니다! 이전에 보지 못하신 분들을 위해 설명해 드립니다:
Colota는 Android GPS 트래커 / 위치 기록 (location-history) 앱입니다. 이는 오프라인에서 작동하며, 배터리를 절약하기 위해 GPS 설정을 자동으로 조정하는 지오펜스 (geofences) 및 트래킹 프로필 (tracking profiles)과 같은 기능을 갖춘 모바일 Google Timeline의 대안입니다. 앱 내부에서 매일의 전체 위치 기록을 확인하고 검증할 수 있습니다.
Colota는 Dawarich, Reitti, GeoPulse 등을 기본적으로 지원하며, 페이로드 (payload)를 거의 모든 HTTP 엔드포인트 (endpoint)에 맞출 수 있을 만큼 충분히 커스터마이징할 수 있습니다. 따라서 특정 백엔드 (backend)를 강요하지 않습니다. 단순히 정해진 일정에 따라 파일을 덤프 (dump)하고 싶다면 그 또한 가능합니다. AGPL-3.0 라이선스이며, 광고가 없고, 텔레메트리 (telemetry)가 없으며, 데이터는 오직 귀하의 서버로만 전송됩니다 (또는 어디로도 전송되지 않습니다).
기본적으로 수행하는 유일한 외부 연결은 maps.mxd.codes에서 앱 내 지도를 위한 타일 (tiles)을 가져오는 것입니다. 하지만 이를 귀하가 선택한 타일 서버 (tile server)로 변경할 수도 있습니다.
배경 설명
저는 indieweb과 eat what you cook의 팬이기 때문에, 수년 동안 저만의 Android GPS 트래커 버전을 개발하고 싶었습니다. 특히 정지 상태일 때 대부분의 대안 앱들이 보여주는 배터리 소모량과, 실제로 무엇이 기록되고 전송되었는지에 대한 피드백이 부족하다는 점이 만족스럽지 않았습니다.
그래서 마침내 2025년 말에 작업을 시작하여 2026년 초에 공개하기로 결심했습니다.
새로운 기능
지난 게시물 이후 추가된 몇 가지 주요 사항은 다음과 같습니다:
- 중대한 변경 사항 (Breaking): 우선 이번 릴리스에는 더욱 엄격해진 TLS 신뢰(trust)와 관련된 중대한 변경 사항이 있습니다. Android 설정 -> 암호화 및 자격 증명(Encryption & credentials)을 통해 사용자가 설치한 CA는 더 이상 Colota에서 신뢰되지 않습니다. 만약 사용자의 동기화 엔드포인트(sync endpoint)가 이전에 시스템 설정을 통해 신뢰했던 자체 서명(self-signed) 또는 사설 CA(private-CA) 인증서를 사용한다면, 새로운 mTLS 설정 -> 신뢰할 수 있는 서버 CA(Trusted Server CA) 흐름을 통해 CA를 다시 가져오기 전까지 동기화가 실패할 것입니다. 공개적으로 신뢰받는 인증서(Let's Encrypt 등)는 영향을 받지 않습니다.
- 또한, mTLS 클라이언트 인증서를 사용하여 서버에 인증할 수 있습니다. OS 키스토어(keystore)에서 선택하거나 .p12 파일을 가져올 수 있습니다.
- 드디어 로컬 SQLite DB의 백업을 생성할 수 있습니다. 백업은 내보내기 중에 선택한 비밀번호로 암호화되므로, 잊어버리지 않도록 주의하세요. 백업에는 모든 위치, 설정 및 자격 증명이 포함되어 있어 새로운 기기로 쉽게 마이그레이션하거나 안심하고 백업을 보관할 수 있습니다.
- 동기화 조건: 모든 네트워크, 모든 Wi-Fi, 특정 SSID 또는 VPN 전용으로 설정할 수 있습니다.
- 지오펜스(geofence) 일시 중지 구역 내에 있을 때 정지 상태의 하트비트(Stationary heartbeat)를 전송하여, Home Assistant 등이 사용자가 여전히 그곳에 있음을 알 수 있게 합니다.
- 딥링크(deep-link)를 통해 트래킹 프로필과 지오펜스를 공유하거나, 설정을 위한 QR 코드를 생성할 수 있습니다.
- 다른 앱에서 마이그레이션하기 위해 GeoJSON, Google Timeline 또는 GPX 등의 데이터를 앱으로 가져올 수 있습니다. 가져온 위치 데이터는 선택적으로 백엔드로 전송되도록 다시 큐에 추가(requeued)할 수 있습니다.
Colota-forwarder
Dawarich, Reitti, GeoPulse 중에서 결정하지 못하겠나요? 그냥 모두 실행한 다음 Colota를 colota-forwarder로 지정하세요. 이는 동일한 페이로드(payload)를 대상별 형식 변환과 함께 모든 서비스로 뿌려주는 작은 Docker 서비스입니다. 또한 OwnTracks 형식의 입력도 수락하므로, OwnTracks 앱을 위한 단일 엔드포인트로도 사용할 수 있습니다.
감사 인사
마지막으로, 이슈(issue)와 제안(suggestion)을 제출해 주신 모든 분께 진심으로 감사드립니다. 여러분이 없었다면 Colota가 지난 몇 달 동안 이처럼 발전할 수 없었을 것입니다!
현재 두 가지 버전을 다운로드할 수 있습니다.
- Google Play store: Fused Location Provider를 사용하여 Google API를 활용합니다. GrapheneOS의 샌드박스(sandboxed) 버전 및 microG와도 호환됩니다.
- FOSS 버전: Android의 네이티브 GPS 프로바이더(provider)를 사용합니다. F-Droid 및 IzzyOnDroid에서 이용 가능합니다.
- 소스 코드: https://github.com/dietrichmax/colota
- 문서: https://colota.app
언제나 그렇듯 여러분의 피드백은 큰 도움이 됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기