다크팩토리
← 목록으로
헤르츠··5분 읽기

TREK: 내 서버에서 돌리는 오픈소스 여행 플래너, 왜 하루 만에 별 112개를 받았나

데이터 주권 + 실시간 협업 + AI — Wanderlog의 셀프호스팅 대안이 트렌딩에 오른 이유

TREK: 내 서버에서 돌리는 오픈소스 여행 플래너, 왜 하루 만에 별 112개를 받았나

여행 일정을 짤 때 Wanderlog나 Notion에 의존하는가? 그 데이터는 남의 서버에 있다. 구독 정책이 바뀌는 순간 플랜이 잠기거나 사라질 수 있다. TREK은 이 불편함을 정면으로 겨냥한다 — Docker 이미지 하나로 설치하고 데이터는 내 서버에만 남는다.

오늘 하루 +112 스타, 총 6,592개. 단순한 인기 급등이 아니라, 셀프호스팅 운동이 여행 앱 카테고리까지 번진 신호다.

이게 뭔가

TREK은 자기 서버에 설치하는 여행 플래너 웹앱이다. 비개발자에게 쉽게 설명하면: 구글 지도 + Wanderlog + 가계부를 합쳐서, 내 집 컴퓨터(또는 VPS)에서 돌아가는 것. 친구와 실시간으로 같이 편집할 수 있고 스마트폰 홈 화면에 앱처럼 설치(PWA)도 된다.

TypeScript로 만들어졌고 Docker Hub에 이미지가 올라와 있어 기술적 진입장벽이 낮다. 데모 사이트에서 설치 없이 먼저 써볼 수 있다.

왜 지금 뜨는가

세 가지 흐름이 교차하고 있다.

① 셀프호스팅 르네상스. Immich(사진), Actual Budget(가계부), Paperless-ngx(문서)에 이어 여행 플래너에도 "내 데이터는 내가 갖겠다"는 수요가 올라왔다. AGPL-3.0 라이선스는 이 철학을 법적으로 보장한다.

② SaaS 피로. Wanderlog가 2024년 프리미엄 기능을 유료 전환하면서 무료 플랜 제한이 생겼다. 대안을 찾던 사용자들이 오픈소스로 이동하는 중이다.

③ 기능 완성도. 지도·예산·짐 목록·여행 일지·AI·SSO(Single Sign-On)까지 — 한 프로젝트에서 이만한 기능셋을 갖춘 셀프호스팅 여행 앱은 드물었다. README의 60초 데모 GIF가 소셜 미디어에서 빠르게 퍼진 것도 한몫했다.

핵심 기능

기능설명
인터랙티브 지도동선·POI(관심 장소) 핀 추가, 루트 시각화
실시간 공동 편집WebSocket 기반, 여러 명이 동시에 일정 수정
예산 트래커지출 항목별 입력·합계, 환율 처리
짐 목록체크박스형 패킹 리스트, 템플릿 지원
여행 일지여행 중 기록 남기기
AI 통합일정 제안 등 AI 기능 내장 (README 기재)
SSO / PWA기업·팀 환경 대응, 모바일 앱처럼 설치 가능

누구에게 쓸모 있나

  • 개인 헤비유저: 매년 여러 번 해외 여행을 계획하고 데이터가 쌓일수록 히스토리를 직접 관리하고 싶은 사람.
  • 소규모 팀·커플·동호회: 실시간 공동 편집 덕에 카카오톡으로 엑셀 공유하는 고통에서 해방.
  • 홈랩/셀프호스팅 애호가: 이미 Proxmox, NAS, VPS를 운영 중이라면 Docker 컨테이너 하나 추가하는 것으로 끝.
  • SaaS 요금 절감이 목표인 팀: 구독 없이 무제한 사용.

시작하기

공식 설치는 Docker Hub 이미지를 사용한다. 최소 요구사항은 Docker가 설치된 서버(로컬 PC 포함)면 충분하다.

1단계 — docker-compose.yml 작성

아래는 TREK 공식 레포 기반의 기본 구성이다. 실제 배포 전 최신 README의 환경변수 항목을 반드시 확인할 것.

# docker-compose.yml
services:
  trek:
    image: mauriceboe/trek:latest
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://trek:secret@db:5432/trek
      - NEXTAUTH_SECRET=your_random_secret_here
      - NEXTAUTH_URL=http://localhost:3000
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:16-alpine
    environment:
      - POSTGRES_USER=trek
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=trek
    volumes:
      - trek_data:/var/lib/postgresql/data

volumes:
  trek_data:

NEXTAUTH_SECRETopenssl rand -base64 32로 생성한 랜덤값을 넣어야 한다.

2단계 — 실행

# 컨테이너 백그라운드 실행
docker compose up -d

# 로그 확인 (초기화 완료 메시지 체크)
docker compose logs -f trek

초기화가 끝나면 http://localhost:3000으로 접속해 계정을 생성한다.

3단계 — 최신 버전 업데이트

# 이미지 최신화 후 재시작
docker compose pull && docker compose up -d

한계·주의

  • AGPL-3.0 라이선스: 이 앱을 수정해 외부에 서비스로 제공하려면 소스코드를 공개해야 한다. 사내 자체 사용은 무방하다.
  • 초기 세팅 난이도: Docker를 처음 써보는 사람에게는 환경변수 설정이 장벽이 될 수 있다. 공식 Discord에 커뮤니티 지원이 있다.
  • AI 기능 별도 API 키 필요: AI 일정 제안 기능은 외부 LLM API 키가 필요할 수 있다(README 상세 확인 권장).
  • 초기 릴리스 단계: GitHub Releases 기준 아직 pre-release 버전이 포함되어 있다. 프로덕션 중요 데이터에 바로 쓰기보다 충분한 테스트 후 도입을 권한다.
  • 모바일 네이티브 앱 없음: PWA로 홈 화면 설치는 가능하지만, App Store/Play Store 앱은 존재하지 않는다.

출처

댓글 0

비밀번호를 정하면 나중에 본인 댓글을 삭제할 수 있어요.

첫 댓글을 남겨보세요.