---
title: "Host Sendiri Rencana Perjalanan Anda dengan TREK dan Docker"
description: "Pelajari cara deploy TREK dengan Docker, amankan lewat Cloudflare R2 dan Caddy, serta gunakan agen AI via MCP untuk rencana perjalanan Anda yang lancar."
canonical_url: "https://techvoyage.dev/id/article/self-hosted-travel-planner-trek"
last_updated: "2026-09-03"
---

Bagian yang menjengkelkan dari merencanakan perjalanan adalah PDF pemesanan penerbangan, konfirmasi hotel, obrolan dengan rekan perjalanan, dan daftar tempat yang ingin dikunjungi tersebar di lokasi yang berbeda-beda. Saat tiba waktunya untuk menghitung total pengeluaran dan membagi tagihan, dibutuhkan usaha ekstra besar untuk menelusuri semua data perjalanan tersebut.

TREK adalah perencana perjalanan open-source yang dapat di-self-host, mengemas rencana perjalanan, pemesanan, anggaran, dan daftar bawaan Anda semua ke dalam satu tempat. Server MCP bawaan memungkinkan agen AI (seperti Claude Desktop) untuk langsung mengelola data perjalanan Anda.

Panduan ini akan memandu Anda melalui segalanya, mulai dari instalasi hingga mengelola perjalanan nyata sepenuhnya dari awal hingga selesai.

### 1. Cara Deploy Perencana Perjalanan TREK Menggunakan Docker

#### Instal Docker di VPS Ubuntu

```bash
# Add Docker's official GPG key and set up the Docker repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add the official Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update package list
sudo apt update

# Install Docker Engine, Docker Community Edition, and containerd runtime
sudo apt install docker-ce docker-ce-cli containerd.io -y

# Verify docker is installed
docker --version

# Starts automatically when your system boots
sudo systemctl enable docker
```

#### Hasilkan Kunci Enkripsi

TREK menggunakan kunci untuk mengenkripsi data sensitif. Gunakan perintah berikut atau [alat online](/id/tools/secret-key-hex) ini untuk menghasilkan kunci enkripsi:

```bash
openssl rand -hex 32
```

Simpan di tempat yang aman; kehilangan kunci ini berarti Anda akan kehilangan akses ke data yang terenkripsi.

#### Jalankan Kontainer

```bash
docker run -d \
  --name trek \
  -p 3000:3000 \
  -e ENCRYPTION_KEY="<generated_key>" \
  -e APP_URL="https://trek.pafor.me" \
  -v ./data:/app/data \
  -v ./uploads:/app/uploads \
  --restart unless-stopped \
  mauriceboe/trek:latest
```

- **APP_URL harus diatur dengan benar** — alur penemuan OAuth server MCP bergantung padanya. Atur ke alamat HTTPS publik akhir Anda sejak awal.

Proses pertama membutuhkan waktu beberapa saat untuk mengunduh image:

![Log docker pull dan run untuk TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-docker-pull-image.webp)Verifikasi bahwa kontainer sedang berjalan:

```bash
docker ps
```

![Memverifikasi status container yang berjalan melalui docker ps](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-docker-ps-status.webp)### 2. Mengonfigurasi Perutean Domain & SSL dengan Caddy Reverse Proxy

HTTPS diperlukan untuk passkey, dan OAuth untuk MCP. Nama domain di-host di Cloudflare yang menyediakan sertifikat SSL gratis dan perlindungan DDoS.

Caddy dikonfigurasi sebagai server reverse proxy yang aman untuk mengarah ke port 3000. Contoh file Caddyfile adalah sebagai berikut:

```json
{$TREK_DOMAIN} {
  encode zstd gzip
  reverse_proxy host.docker.internal:3000
}
```

### 3. Konfigurasi Awal & Penyiapan Admin yang Aman

Ada dua cara untuk membuat akun admin:

- **ADMIN_EMAIL dan ADMIN_PASSWORD** diatur sebagai variabel lingkungan (environment variables); nilai-nilai tersebut akan digunakan secara langsung.
- TREK membuat email `admin@trek.local`, nama pengguna `admin`, dan **kata sandi acak yang tercetak di log kontainer**. Jalankan `docker logs trek` untuk mendapatkannya.

Jika kata sandi tidak dapat ditemukan di log, setel ulang dengan perintah:

```bash
docker exec -it -e RESET_ADMIN_EMAIL=admin@trek.local -e RESET_ADMIN_PASSWORD='YourNewPassword' trek node server/reset-admin.js
```

Anda akan diminta untuk mengubah kata sandi pada log masuk pertama.

![Prompt login awal dan reset kata sandi admin](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-initial-login-password-prompt.webp)Klik pada **Admin** dan perbarui email:![Mengatur email khusus di pengaturan admin TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-admin-email-update-panel.webp)

#### 3.1 Cadangan (Backups)

Konfigurasikan pencadangan otomatis dengan kebijakan retensi di panel admin:
![Mengonfigurasi jadwal pencadangan otomatis dan aturan retensi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-admin-backup-retention-policy.webp)

#### 3.2 Simpan File Unggahan ke Cloudflare R2

Menyimpan file unggahan, foto, dan cadangan di Cloudflare R2 menjaga penyimpanan VPS Anda tetap bersih dan ringan. TREK mendukung backend yang kompatibel dengan S3, dan Cloudflare R2 sangat cocok untuk ini.

1. Buat bucket R2 bernama `trek`.
2. Di bagian **Account Details**, temukan ID akun Anda:
  ![Menemukan ID akun Cloudflare di portal](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/cloudflare-r2-account-details-id.webp)
3. Klik **Manage API Tokens**:
  ![Tampilan Kelola Token API di portal Cloudflare](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/cloudflare-r2-manage-api-tokens-button.webp)
4. Klik **Create Account API token** dengan izin baca/tulis (read/write) untuk bucket tersebut:
  ![Membuat token akses R2 dengan izin baca dan tulis](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/cloudflare-r2-create-token-permissions.webp)
5. Klik **Storage** pada panel **ADMINISTRATION**:
  ![Menavigasi ke pengaturan penyimpanan di panel kontrol TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-administration-storage-menu.webp)
6. Klik tombol **Add Backend** dan isi endpoint, bucket, beserta kredensial Anda:
  ![Mengonfigurasi backend penyimpanan Cloudflare R2 yang kompatibel dengan S3](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-add-storage-backend-credentials.webp)
7. Klik **Apply**, lalu klik tombol tautan **Test**. Anda harus melihat status "Connection OK":
  ![Uji koneksi penyimpanan berhasil menunjukkan Connection OK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-test-storage-backend-connection-ok.webp)
8. Alihkan semua kategori penyimpanan ke Cloudflare R2 dan klik **Save changes**:
  ![Mengarahkan semua kategori penyimpanan file ke Cloudflare R2](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-switch-storage-categories-r2.webp)

#### 3.3 Log Masuk Passkey

TREK mendukung passkey, autentikasi dua faktor (2FA), dan OIDC single sign-on. Untuk passkey, masukkan nama domain Anda dan asal yang diizinkan (allowed origins) di pengaturan, lalu klik **Save**:

![Mendaftarkan origin yang diizinkan untuk autentikasi Passkey yang aman](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-passkey-allowed-origins-settings.webp)Tanpa mengonfigurasi **allowed origins**, pendaftaran passkey akan gagal.

#### 3.4 Google Maps API Key

Kunci Google Maps memperkaya pencarian tempat dengan peringkat, jam buka, dan foto. TREK secara otomatis menggunakan OpenStreetMap jika tidak ada kunci yang dimasukkan, hanya saja tanpa peringkat dan foto.

Ikuti [tautan](https://mapsplatform.google.com/maps-demo-key/) ini dan klik **Get demo key** untuk memintanya:                                                  ![Meminta kunci API Google Maps Platform](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/google-maps-get-demo-api-key.webp)

Tempel kunci di pengaturan and klik **Test** untuk mengonfirmasi koneksi:
![Memverifikasi konektivitas kunci API Google Maps di pengaturan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-google-maps-key-test-connection.webp)

#### 3.5 Integrasi AI

Model AI digunakan untuk mengurai email konfirmasi pemesanan dan PDF menjadi data reservasi yang terstruktur.

Klik **Addons** di menu kiri dan aktifkan **AI Parsing**. Pilih "OpenAI" (atau penyedia lain yang kompatibel) dan isi detail penyedia:

![Mengaktifkan addon AI Parsing dengan integrasi OpenAI](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-addons-enable-ai-parsing-openai.webp)#### 3.6 Akses MCP

Di bawah **Addons**, aktifkan **MCP**:

![Mengaktifkan addon server MCP Model Context Protocol](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-addons-enable-mcp.webp)#### 3.7 Plugin

Plugin berikut sangat direkomendasikan dan layak untuk diaktifkan:

![Daftar plugin dan addon rekomendasi yang aktif](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-recommended-addons-plugins-activation.webp)#### 3.8 Buat Pengguna Harian Anda

Rencanakan perjalanan sebagai pengguna biasa, bukan sebagai admin. Buat pengguna reguler dan masuk dengannya:

![Membuat akun pengguna biasa di panel TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-create-regular-user-form.webp)Setelah masuk, tambahkan passkey atau siapkan 2FA untuk memperkuat keamanan akun:

![Mengonfigurasi pengaturan keamanan pengguna dengan Passkey dan 2FA](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-user-security-passkey-2fa-setup.webp)Klik **+ Add a passkey**, masukkan kata sandi saat ini, dan konfirmasi:

![Mengonfirmasi kata sandi untuk mendaftarkan Passkey perangkat keras baru](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-add-passkey-confirm-password.webp)### 4. Menguji Deployment Anda: Mengimpor Data Perjalanan Historis

Cara yang baik untuk mempelajari TREK adalah dengan membangun riwayat perjalanan Anda.

#### 4.1 Buat rencana perjalanan

Klik **+ New Trip** dan atur **Start Date** dan **End Date** ke tanggal masa lalu dari perjalanan Anda:

![Membuat perjalanan baru dengan rentang tanggal khusus](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-create-new-trip-details.webp)Tambahkan gambar sampul (seret gambar ke dalam, atau tempel dari papan klip) dan klik **Create New Trip**:

![Mengatur gambar sampul perjalanan berkualitas tinggi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-cover-image-upload.webp)#### 4.2 Impor data pemesanan

Masukkan semua berkas penerbangan, kereta api, dan transportasi lainnya ke dalam:

![Area seret dan lepas untuk mengimpor PDF perjalanan dan pemesanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-import-travel-booking-files.webp)![Jendela pemrosesan reservasi yang diunggah menunjukkan ekstraksi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-import-booking-pdf-processing-status.webp)Dengan mengaktifkan model AI, berkas PDF konfirmasi pemesanan akan diurai dan diekstrak menjadi reservasi terstruktur.

Tinjau hasil yang diurai dan klik **Add** untuk menyimpan detail pemesanan:

![Meninjau detail pemesanan terstruktur yang diekstraksi oleh AI](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-review-parsed-booking-details.webp)Jika pemesanan hanya ada di email, ekspor email tersebut sebagai PDF dan masukkan ke sistem — alur ekstraksi yang sama akan berlaku.

Tangkapan layar berikut menunjukkan bagaimana pemesanan ditampilkan:

![Tampilan lini masa komprehensif dari pemesanan perjalanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-bookings-timeline-view.webp)![Tampilan detail dari reservasi transportasi yang terkonfirmasi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-booking-confirmation-details.webp)

Pada halaman **Plan**, semua akomodasi akan ditampilkan di peta:

![Peta interaktif yang memplot semua akomodasi hotel](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-plan-accommodations-map-display.webp)Klik **Atlas** di bilah menu atas untuk melihat daftar (dan peta) dari setiap negara yang telah Anda kunjungi:

![Ikhtisar riwayat perjalanan di pelacak Atlas pribadi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-atlas-countries-visited-summary.webp)#### 4.3 Tambahkan rekan perjalanan

Klik tombol **Share**:

![Membuka dialog berbagi perjalanan di TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-share-options-button.webp)Di bagian bawah dialog, tamu (guests) dapat ditambahkan:

![Menambahkan teman perjalanan dan tamu khusus](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-add-companions-guests.webp)#### 4.4 Catat pengeluaran

Klik **Add expense** untuk menambahkan biaya selain pemesanan, seperti asuransi kesehatan, transportasi lokal, kartu SIM:

![Memasukkan data pengeluaran terperinci dalam formulir pengeluaran](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-add-custom-expense-form.webp)![Rincian pembagian tagihan dan buku besar pelacakan biaya](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-expenses-list-billing-split.webp)#### 4.5 Segmen perjalanan

Fitur ini memerlukan plugin Trip Segment untuk diinstal.

Perjalanan panjang dapat dibagi menjadi segmen-segmen dengan rapi, di mana setiap bagian menampilkan pemesanan, tempat, dan biayanya sendiri:

![Membagi rencana perjalanan yang kompleks menjadi segmen perjalanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-segments-overview-display.webp)![Segmen perjalanan aktif yang menampilkan tempat dan jadwal](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-segment-itinerary-details.webp)![Memetakan berbagai tahapan perjalanan di lini masa](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-trip-segments-interactive-map.webp)#### 4.6 Buat journey dan periksa atlas Anda

Kelompokkan perjalanan ke dalam **Journey** dan tulis cerita perjalanan untuk membagikan petualangan Anda dengan teman-teman:

![Menggabungkan beberapa perjalanan menjadi satu perjalanan visual (Journey)](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-create-new-journey-group.webp)![Menulis cerita visual di panel perjalanan (Journey)](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-journey-timeline-story-writing.webp)![Koleksi media dan kisi galeri di dalam perjalanan (Journey)](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-journey-gallery-media-grid.webp)![Membuat tautan berbagi publik untuk perjalanan kolaboratif](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-journey-public-share-link.webp)### 5. Merancang Rencana Perjalanan dan Daftar Bawaan Kustom

Klik **+ New Trip**, masukkan nama, dan atur tanggalnya:

![Dialog prompt awal untuk membuat perjalanan tanpa tanggal](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-planning-new-trip-setup.webp)**Jika Anda belum menentukan tanggal pastinya, biarkan keduanya kosong.** Kolom "jumlah hari" akan muncul (hingga 365 hari). Rencanakan dulu, jadwalkan belakangan.

#### 5.1 Menambahkan tempat

Ini adalah langkah yang paling memakan waktu dalam perencanaan perjalanan apa pun, dan TREK memiliki beberapa cara untuk melakukannya:

![Metode multi-saluran untuk menambahkan tempat baru ke rencana perjalanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-add-places-methods-overview.webp)**1. Klik kanan pada peta** untuk membuat tempat di lokasi persis tersebut — alamatnya akan di-reverse-geocode secara otomatis:

![Mengklik kanan antarmuka peta untuk menentukan lokasi](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-right-click-map-location.webp)![Geocoding terbalik otomatis untuk koordinat peta yang dipilih](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-right-click-reverse-geocode-address.webp)**2. Klik + Add Place/Activity** dan cari berdasarkan nama

![Mencari tempat nyata menggunakan input teks](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-search-place-by-name-input.webp)![Menampilkan hasil pencarian tempat dengan info alamat](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-select-place-search-results-list.webp)![Kartu informasi tempat komprehensif dengan ulasan dan peringkat](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-place-details-rich-info-card.webp)**3. Tempel URL Google Maps** (`maps.app.goo.gl/…` atau `maps.google.com/…`) ke dalam kolom pencarian. TREK akan mengurai nama, alamat, dan koordinatnya:

![Mengurai lokasi langsung dari tautan berbagi Google Maps yang ditempelkan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-paste-google-maps-share-link.webp)![Ekstraksi koordinat berhasil dari URL peta](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-google-maps-parsed-location.webp)**4. Impor massal (Bulk import)** — cara termudah dari semuanya. Jika Anda sudah memiliki daftar tempat "ingin dikunjungi" di Google Maps, ekspor sebagai `.gpx` (`.kml` dan `.kmz` juga didukung) dan klik **Import file** pada panel kanan untuk menarik semuanya sekaligus:

![Melakukan impor tempat massal menggunakan file GPX atau KML](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-bulk-import-places-gpx-file.webp)Tambahkan semua hal menarik terlebih dahulu, terlepas dari apakah itu sesuai dengan jadwal. Alokasikan tempat ke hari kunjungan nanti.

#### 5.2 Rencana hari dan catatan

Rencana Hari (Day Plan) mengatur tempat ke dalam hari secara berurutan. Ini berupa daftar yang dapat diciutkan per hari, dan semuanya menggunakan metode seret-dan-lepas (drag-and-drop):

![Menyesuaikan rute harian dengan tindakan seret-dan-lepas](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-day-plan-drag-drop-ordering.webp)Detail yang membuatnya sangat berguna:

- **Transportasi antartempat**: ikon bus di kiri atas bagian hari berfungsi untuk menambahkan moda transportasi (segmen kereta, bus, penerbangan dalam hari tersebut):
![Mendaftarkan transportasi komuter antar segmen hari](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-day-plan-commuting-transport-button.webp)
- **Catatan harian**: ikon catatan di kiri bawah berfungsi untuk menyisipkan catatan ber-emoji — "berangkat pagi hari ini", "museum ini memerlukan reservasi":
![Menambahkan catatan khusus ber-ikon yang sangat terlihat ke hari](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-day-plan-icon-tagged-notes-button.webp)
- **Slot waktu**: seret tempat dari panel kanan ke dalam hari, lalu tetapkan waktunya. Tempat dengan waktu yang ditentukan akan terhubung secara otomatis di peta:
![Rute transit yang dihitung otomatis antara lokasi yang dijadwalkan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-day-plan-timed-places-routing.webp)
- Silakan merujuk ke [halaman wiki Day Plans and Notes](https://github.com/liketrek/TREK/wiki/Day-Plans-and-Notes) untuk **Optimasi rute** dan **Cuaca**.

#### 5.3 Collections: Daftar tempat yang dapat digunakan kembali

Collections memungkinkan pengguna untuk menyimpan daftar tempat di luar rencana perjalanan mana pun. Ini dapat dibagikan dengan teman-teman, dan siap digunakan untuk perjalanan berikutnya. Tempat-tempat ini akan **disalin** ke dalam rencana perjalanan, sehingga mengedit entri dalam perjalanan tidak akan pernah mengubah koleksi Anda dan sebaliknya.

Klik **Collections** di bilah menu atas:

![Mengakses koleksi khusus pengguna untuk tempat yang disimpan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-dashboard-view.webp)Klik **+ New list** untuk membuatnya:

![Membuat daftar khusus di koleksi pengguna](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-create-new-list.webp)Klik **+ Add a place** dan isi detailnya:

![Input formulir manual untuk mengisi daftar koleksi khusus](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-add-place-manually-form.webp)**Catatan:** pencarian di dalam dialog "Add a place" tampaknya tidak berfungsi, jadi Anda harus memasukkan detailnya secara manual.

Jika koordinat geografis dari tempat tersebut tersedia, tempat tersebut akan muncul di peta:

![Memvisualisasikan tempat koleksi khusus pada peta interaktif](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-map-places-display.webp)Untuk mengatur tempat dengan label, klik ikon **kotak centang (tick-box)**:

![Mode pilihan untuk pelabelan massal tempat yang disimpan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-select-places-tickbox.webp)Pilih tempat yang ingin dikelompokkan, lalu klik **Assign label**:

![Menetapkan label deskriptif ke tempat koleksi yang dipilih](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-group-assign-label.webp)Klik **Manage labels** untuk membuat label terlebih dahulu:

![Pembuatan dan pengelolaan label khusus](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-manage-custom-labels.webp)Pilih label dan klik **Assign label**:

![Menerapkan label khusus untuk mengelompokkan tempat](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-collections-confirm-label-selection.webp)#### 5.4 Biaya dan anggaran

Kita dapat menambahkan pengeluaran lain untuk perjalanan di halaman 'Costs'.

![Tabel pengeluaran komprehensif dan buku besar penyelesaian saldo](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-costs-budget-overall-expenses-list.webp)Pembayaran yang dilakukan oleh rekan perjalanan dapat ditambahkan dan dibagi di halaman yang sama.

Panel pelunasan menjalankan algoritma greedy-matching untuk menghitung **jumlah transfer minimum** mengenai siapa yang berutang kepada siapa, dan berapa nominalnya.

### 6. Memanfaatkan Model Context Protocol (MCP) untuk Perencanaan Perjalanan Berbasis AI

TREK memiliki **server MCP (Model Context Protocol) bawaan**, yang memungkinkan agen AI membaca dan menulis data perjalanan Anda secara langsung — mencakup lebih dari 150 alat dan 30 sumber daya terkait perjalanan, tempat, anggaran, daftar barang bawaan, pemesanan, dan kolaborasi.

#### 6.1 Cloudflare Zero Trust

Karena TREK berjalan di belakang jaringan [Cloudflare Zero Trust](/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp), Anda harus menambahkan domain ke dalam daftar inklusi split tunnel. Jika tidak, Anda akan mengalami masalah dengan otorisasi OAuth. Silakan merujuk ke isu GitHub ini: [github issue](https://github.com/liketrek/TREK/issues/1463).

<article-card description="Pelajari cara mengekspos dan mengakses Hermes Agent Anda secara global dengan aman menggunakan Cloudflare WARP dan Zero Trust tanpa membuka port firewall masuk." image="https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/ID-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp" image-alt="Mengekspos Hermes Agent secara aman ke jaringan privat menggunakan Cloudflare Zero Trust dan terowongan WARP" label="Panduan terkait" min-read="8" title="Cara Mengekspos Hermes Agent secara Privat dengan WARP" to="/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp">



</article-card>

![Menambahkan domain khusus ke Split Tunnel Cloudflare Warp](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/cloudflare-zero-trust-split-tunnels-domain.webp)#### 6.2 Claude Desktop

Klik **+ New Client** untuk membuat klien agen AI:
![Mendaftarkan token klien khusus baru di pengaturan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-register-new-mcp-client.webp)

Pilih tab **Claude Desktop** dan klik **Register Client**:

![Membuat kredensial klien Claude Desktop](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-mcp-claude-desktop-client-credentials.webp)Sepasang ID klien dan rahasia klien (client secret) akan ditampilkan. Salin keduanya di tempat yang aman. Kemudian klik **Client Configuration** untuk menampilkan konfigurasi MCP:

![Mengambil blok konfigurasi server MCP yang sudah diformat](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-mcp-client-configuration-block.webp)Di Claude Desktop, klik **Edit Config** untuk membuka berkas konfigurasi server MCP lokal:

![Mengedit file json konfigurasi MCP lokal Claude Desktop](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/claude-desktop-mcp-config-json.webp)Tempel konfigurasi TREK, ganti placeholder dengan kredensial Anda:

```json
"mcpServers": {
    "trek": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://trek.pafor.me/mcp",
        "--static-oauth-client-info",
        "{\"client_id\": \"<your_client_id>\", \"client_secret\": \"<your_client_secret>\"}"
      ]
    }
  },
```

Mulai ulang Claude Desktop, dan server TREK akan muncul sebagai terhubung di bawah **Local MCP servers**:

![Memverifikasi status koneksi TREK yang aktif di dalam UI Claude](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/claude-desktop-mcp-trek-server-connected.webp)Sekarang jalankan sebuah perintah (prompt):

![Meminta Claude dalam bahasa alami untuk memanipulasi data perjalanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/claude-desktop-mcp-natural-language-prompt.webp)Mari kita tambahkan pengeluaran dalam bahasa alami:

```text
For the West Europe trip, the Grab from KLIA1 to the hotel cost RM115.90 on 26/4/2025. Please add it as an expense without split to the trip.
```

![Claude menggunakan alat untuk mencatat pengeluaran secara otomatis](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/claude-desktop-mcp-add-expense-response.webp)Saat memeriksa halaman **Costs**, pengeluaran dibuat dengan status "No one paid yet" (Belum ada yang membayar), karena tidak ada pembayar yang disebutkan:

![Mengonfirmasi pengeluaran AI yang baru diurai di tampilan Biaya](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-costs-page-mcp-parsed-expense.webp)Menambahkan ke daftar bawaan bekerja dengan cara yang sama:

![Claude menambahkan item bawaan menggunakan prompt bahasa alami](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/claude-desktop-mcp-add-packing-items.webp)Segarkan halaman **Packing List** dan ketiga barang tersebut sudah ada di sana:

![Mengonfirmasi item bawaan yang baru diurai di halaman Daftar Barang Bawaan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/trek-packing-list-mcp-parsed-items.webp)#### 6.3 Gemini CLI (Pendaftaran Dinamis)

Gemini CLI mendukung **pendaftaran dinamis**, yaitu tidak memerlukan klien yang dibuat sebelumnya. Tambahkan ini ke `.gemini/settings.json`:

```json
"trek": {
      "httpUrl": "https://trek.pafor.me/mcp",
      "oauth": {
        "enabled": true
      }
    }
```

Jalankan `gemini` di terminal dan klik **Approve** saat permintaan otorisasi muncul:
![Menyetujui akses OAuth untuk server MCP TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/mcp-client-oauth-authorization-prompt.webp)

Kemudian mulai dengan perintah sederhana:

![Meminta Gemini CLI untuk mengambil rencana perjalanan](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/gemini-cli-mcp-prompt-itinerary.webp)![Gemini CLI berhasil menampilkan informasi perjalanan terstruktur](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/gemini-cli-mcp-display-itinerary.webp)#### 6.4 Kimi CLI (Pendaftaran Dinamis)

Pendekatan yang sama — tambahkan ke `mcp.json` di folder `/Users/<user>/.kimi/` :

```json
"trek": {
      "type": "http",
      "url": "https://trek.pafor.me/mcp",
      "auth": "oauth"
    }
```

Jalankan `kimi mcp auth trek` di terminal dan klik **Approve**:
![Menyetujui akses OAuth untuk server MCP TREK](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/mcp-client-oauth-authorization-prompt.webp)

Setelah diotorisasi, alat yang tersedia akan dicantumkan:

![Kimi CLI menampilkan alat yang tersedia setelah otorisasi berhasil](https://inimages.techvoyage.dev/articles/Self%20hosted%20travel%20planner%20TREK/kimi-cli-mcp-authorized-tools-list.webp)### 7. Pengalaman Seluler

TREK adalah PWA (progressive web app) di perangkat seluler. Service worker akan menyimpan templat peta dan data API dalam tembolok (cache), sehingga rencana perjalanan Anda tetap dapat dibaca secara offline. Namun, notifikasi push mungkin mengalami beberapa keterlambatan (latency) dibandingkan dengan aplikasi asli.

### Kesimpulan

Menghubungkan agen AI melalui MCP menghemat banyak pekerjaan membosankan dalam memasukkan pemesanan penerbangan dan akomodasi. Selain itu, agen dapat menyarankan tempat-tempat menarik berdasarkan tanggal perjalanan dan musim Anda. Satu percakapan dengan agen AI dapat mencakup seluruh rangkaian proses, mulai dari riset dan pembuatan rencana perjalanan hingga pelacakan anggaran dan pengepakan barang.

Ada beberapa kendala teknis kecil. Misalnya, saat mengimpor pemesanan dari berkas PDF, mata uang akan default ke mata uang dasar perjalanan, bukan mata uang yang sebenarnya dibayarkan. Selain itu, saat membuat daftar baru di Collections, gambar sampul apa pun yang ditambahkan selama pembuatan akan hilang saat disimpan, meskipun dapat ditambahkan kembali secara manual saat mengedit.

Ada sedikit hambatan teknis, karena Anda perlu meng-host aplikasi ini di server Anda sendiri. TREK terutama dirancang untuk orang yang sering begegian dan memiliki ekspektasi tinggi tentang bagaimana mereka mengatur data perjalanan mereka. Kami menyarankan untuk mencoba demo resmi di [demo.liketrek.com](https://demo.liketrek.com/) sebelum mempertimbangkan self-hosting.

### Referensi:

- [TREK Quick Start](https://github.com/liketrek/TREK/wiki/Quick-Start)
- [TREK Troubleshooting](https://github.com/liketrek/TREK/wiki/Troubleshooting)
- [TREK MCP Scopes](https://github.com/liketrek/TREK/wiki/MCP-Scopes)
