Cara Install LibreChat di VPS Debian 12

Daftar Isi
  1. Apa itu LibreChat
  2. Persiapan
  3. Bagian I: Instalasi Docker Engine
  4. Bagian II: Instalasi LibreChat
  5. Bagian III: Konfigurasi API Key Model AI
  6. Bagian IV: Pointing Subdomain ke VPS
  7. Bagian V: Konfigurasi SSL untuk Subdomain
  8. Bagian VI: Menjalankan dan Verifikasi LibreChat
  9. Bagian VII: Perawatan LibreChat
  10. Troubleshooting

Apa itu LibreChat

LibreChat adalah aplikasi chat AI open-source yang bisa di-hosting sendiri di VPS. Tampilan dan pengalaman penggunaannya mirip dengan ChatGPT, tetapi dengan satu keunggulan besar: Anda bisa menghubungkannya ke banyak provider AI sekaligus — mulai dari OpenAI, Anthropic (Claude), Google Gemini, hingga endpoint custom lainnya.

Karena berjalan di VPS milik Anda sendiri, seluruh data percakapan dan konfigurasi sepenuhnya berada di bawah kendali Anda. Tidak ada data yang dikirim ke pihak ketiga selain ke API provider AI yang Anda pilih.

Persiapan

Sebelum memulai panduan ini, pastikan Anda sudah menyiapkan hal-hal berikut:

Bagian I: Instalasi Docker Engine

LibreChat membutuhkan beberapa layanan yang berjalan bersamaan — database MongoDB, cache, web server NGINX, dan aplikasi LibreChat itu sendiri. Memasang semua layanan ini secara manual langsung di VPS sangat rawan bentrok versi dan dependensi.

Docker mengatasi hal ini dengan mengemas setiap layanan ke dalam kontainer yang terisolasi satu sama lain. Masing-masing punya lingkungan sendiri, tidak saling mengganggu, dan bisa dijalankan atau dihentikan kapan saja.

Langkah 1: Perbarui Sistem dan Pasang Paket Pendukung

Login ke VPS melalui SSH, lalu jalankan perintah berikut:

sudo apt update
sudo apt install -y ca-certificates curl gnupg

Perintah di atas memperbarui daftar paket sistem, kemudian memasang tiga paket yang dibutuhkan untuk proses instalasi Docker:

Langkah 2: Tambahkan Repositori Resmi Docker

Repositori bawaan Debian biasanya menyediakan Docker versi lama. Untuk mendapatkan versi terbaru, kita perlu menambahkan repositori resmi Docker secara manual.

Jalankan perintah berikut satu per satu:

sudo install -m 0755 -d /etc/apt/keyrings

Perintah ini membuat folder /etc/apt/keyrings dengan izin akses yang sesuai. Folder ini digunakan untuk menyimpan kunci GPG.

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

Perintah ini mengunduh kunci GPG resmi Docker untuk Debian. Perhatikan URL-nya menggunakan /linux/debian/, bukan /linux/ubuntu/ — karena VPS kita menggunakan OS Debian.

sudo chmod a+r /etc/apt/keyrings/docker.asc

Perintah ini memastikan semua user di sistem bisa membaca file kunci tersebut.

Selanjutnya, daftarkan repositori Docker ke dalam daftar sumber paket:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Perintah di atas secara otomatis mendeteksi arsitektur sistem (misalnya amd64) dan codename Debian yang digunakan (bookworm untuk Debian 12), lalu menuliskannya sebagai sumber repositori baru.

Terakhir, perbarui kembali daftar paket agar repositori Docker yang baru ditambahkan terbaca oleh sistem:

sudo apt update

Langkah 3: Install Docker Engine

Jalankan perintah berikut untuk memasang Docker beserta seluruh komponen yang dibutuhkan:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Berikut penjelasan masing-masing paket:

Langkah 4: Verifikasi Instalasi Docker

Setelah instalasi selesai, pastikan Docker sudah terpasang dengan benar:

docker --version

▸ Hasil yang diharapkan:

Docker version 28.x.x, build xxxxxxx

Periksa juga Docker Compose:

docker compose version

▸ Hasil yang diharapkan:

Docker Compose version v2.x.x

Jika kedua perintah di atas menampilkan nomor versi tanpa pesan error, maka Docker sudah siap digunakan.

Bagian II: Instalasi LibreChat

Setelah Docker terpasang, langkah berikutnya adalah mengunduh source code LibreChat dari repository GitHub resminya dan menyiapkan file konfigurasi.

Langkah 1: Install Git

Git dibutuhkan untuk mengunduh (clone) repository LibreChat. Jalankan perintah berikut:

sudo apt install -y git

Langkah 2: Clone Repository LibreChat

Pastikan Anda berada di direktori home, lalu clone repository LibreChat:

cd ~
git clone https://github.com/LibreChat-AI/LibreChat.git

▸ Hasil yang diharapkan:

Cloning into 'LibreChat'...
remote: Enumerating objects: xxxxx, done.
remote: Counting objects: 100% (xxxx/xxxx), done.
...
Resolving deltas: 100% (xxxxx/xxxxx), done.

Setelah proses clone selesai, masuk ke direktori project:

cd LibreChat
📌 Catatan: Mulai dari langkah ini dan seterusnya, semua perintah dijalankan dari dalam direktori ~/LibreChat/, kecuali dinyatakan lain.

Langkah 3: Buat File Konfigurasi .env

LibreChat sudah menyediakan file template bernama .env.example yang berisi semua variabel konfigurasi beserta nilai default-nya. Kita perlu menyalin file ini menjadi .env agar bisa digunakan:

cp .env.example .env

Jangan langsung membuat file .env kosong dari nol, karena template ini sudah berisi banyak variabel penting yang dibutuhkan LibreChat untuk berjalan dengan benar.

Langkah 4: Buat Folder Uploads

LibreChat membutuhkan folder khusus untuk menyimpan file yang diunggah oleh pengguna (misalnya gambar). Buat folder tersebut dengan perintah:

mkdir -p uploads/images

Flag -p memastikan folder dibuat beserta subfolder induknya jika belum ada.

Langkah 5: Generate dan Isi Private Key

LibreChat mewajibkan empat variabel keamanan utama untuk mengenkripsi data pengguna dan mengelola sesi login. Berikut fungsi masing-masing variabel:

VariabelFungsiPanjang
CREDS_KEYKunci enkripsi utama untuk menyimpan kredensial pengguna di database64 karakter hex
CREDS_IVInitialization Vector (pelengkap kunci enkripsi) untuk proses enkripsi kredensial32 karakter hex
JWT_SECRETKunci rahasia untuk membuat token login (JWT) saat pengguna login64 karakter hex
JWT_REFRESH_SECRETKunci rahasia untuk memperbarui token login yang sudah kedaluwarsa64 karakter hex

Untuk mendapatkan nilai keempat variabel ini, buka halaman generator resmi LibreChat melalui browser:

👉 https://www.librechat.ai/docs/toolkit/credentials-generator

Klik tombol generate untuk mendapatkan keempat kunci tersebut. Salin hasilnya, lalu buka file .env:

nano .env

Cari baris-baris berikut, kemudian ganti nilainya dengan hasil generate tadi:

CREDS_KEY=ganti_dengan_64_karakter_hex_hasil_generate
CREDS_IV=ganti_dengan_32_karakter_hex_hasil_generate

JWT_SECRET=ganti_dengan_64_karakter_hex_hasil_generate
JWT_REFRESH_SECRET=ganti_dengan_64_karakter_hex_hasil_generate

Setelah selesai, simpan file dengan menekan Ctrl + O, tekan Enter, lalu keluar dari editor dengan Ctrl + X.

Bagian III: Konfigurasi API Key Model AI

LibreChat mendukung banyak provider AI. Pada panduan ini, kita akan menggunakan 9Router sebagai gateway API. 9Router menyediakan akses ke berbagai model AI melalui satu endpoint tunggal, sehingga Anda tidak perlu mendaftar ke masing-masing provider secara terpisah.

Selain 9Router, Anda juga bisa menggunakan API key langsung dari OpenAI, Anthropic, atau provider AI lain yang Anda miliki. Prosesnya serupa — cukup sesuaikan nama variabel dan base URL-nya.

Langkah 1: Simpan API Key di File .env

Pastikan Anda masih berada di direktori ~/LibreChat/. Buka kembali file .env:

nano .env

Tambahkan baris berikut di bagian paling bawah file:

# API Key 9Router
NINEROUTER_KEY=sk-masukkan-kode-api-key-9router-milik-anda

Ganti sk-masukkan-kode-api-key-9router-milik-anda dengan API key asli yang Anda dapatkan dari dashboard 9Router. Simpan dan keluar dari editor.

Langkah 2: Konfigurasi Koneksi Database MongoDB

LibreChat menyimpan seluruh data percakapan, pengguna, dan pengaturan di database MongoDB. Kita perlu memberi tahu aplikasi bagaimana cara terhubung ke database tersebut.

Masih di file .env, cari baris MONGO_URI. Jika sudah ada, pastikan nilainya adalah:

MONGO_URI=mongodb://mongodb:27017/LibreChat

Jika baris tersebut belum ada, tambahkan di bagian bawah file. Simpan dan keluar dari editor.

📌 Penjelasan: Format mongodb://mongodb:27017/LibreChat berarti:

Langkah 3: Konfigurasi Domain dan Registrasi

Masih di file .env, cari dan ubah (atau tambahkan jika belum ada) baris berikut:

DOMAIN_CLIENT=https://chat.domainanda.com
DOMAIN_SERVER=https://chat.domainanda.com

ALLOW_REGISTRATION=true

Ganti chat.domainanda.com dengan subdomain milik Anda. Variabel DOMAIN_CLIENT digunakan oleh browser untuk mengakses LibreChat, sementara DOMAIN_SERVER digunakan oleh server untuk callback. Variabel ALLOW_REGISTRATION diatur ke true agar pengguna baru bisa mendaftar sendiri.

Simpan dan keluar dari editor.

Langkah 4: Buat File librechat.yaml

File librechat.yaml bertugas memberitahu LibreChat endpoint mana saja yang tersedia dan model AI apa yang bisa digunakan. File ini dibuat di dalam direktori ~/LibreChat/.

nano librechat.yaml

Isi dengan konfigurasi berikut:

version: 1.3.5
cache: true

endpoints:
  custom:
    - name: "9Router"
      apiKey: "${NINEROUTER_KEY}"
      baseURL: "https://app.9router.com/v1"
      models:
        default: ["claude-3-5-sonnet-20241022"]
        fetch: true
      titleConvo: true
      titleModel: "current_model"
      modelDisplayLabel: "9Router Gateway"

Berikut penjelasan setiap baris konfigurasi:

Simpan dan keluar dari editor.

Bagian IV: Pointing Subdomain ke VPS

Agar LibreChat bisa diakses melalui alamat yang mudah diingat (misalnya chat.domainanda.com), Anda perlu mengarahkan subdomain tersebut ke IP VPS melalui pengaturan DNS.

Langkah 1: Cek IP VPS

Jika Anda belum mengetahui IP VPS, jalankan perintah berikut di terminal VPS:

curl -4 ifconfig.me

▸ Hasil yang diharapkan (contoh):

103.xx.xxx.xx

Catat IP tersebut untuk digunakan pada langkah berikutnya.

Langkah 2: Tambahkan DNS A Record

Login ke panel manajemen DNS domain Anda. Jika domain dikelola di Rumahweb, buka Clientzone → Kelola Domain → DNS Management. Tambahkan record baru dengan detail sebagai berikut:

FieldNilai
TypeA
Name / Hostchat (atau subdomain lain sesuai keinginan Anda)
Value / TargetIP VPS Anda (misalnya 103.xx.xxx.xx)
TTL14400 (atau biarkan default)

Setelah record ditambahkan, tunggu beberapa menit hingga DNS terpropagasi. Untuk memastikan subdomain sudah mengarah ke IP yang benar, jalankan perintah berikut dari terminal VPS:

dig chat.domainanda.com +short

▸ Hasil yang diharapkan (IP VPS Anda):

103.xx.xxx.xx

Jika hasilnya masih kosong atau menampilkan IP lain, tunggu 15–30 menit lalu coba lagi. Propagasi DNS membutuhkan waktu tergantung provider.

Bagian V: Konfigurasi SSL untuk Subdomain

Agar subdomain bisa diakses melalui HTTPS (ditandai dengan ikon gembok di browser), kita perlu memasang sertifikat SSL. Panduan ini menggunakan sertifikat gratis dari Let's Encrypt yang berlaku selama 90 hari dan bisa diperpanjang secara otomatis.

⚠️ Perhatian: Seluruh langkah SSL ini dilakukan sebelum kontainer Docker dijalankan, karena Certbot membutuhkan port 80 dalam keadaan bebas (belum dipakai aplikasi lain).

Langkah 1: Install Certbot

Certbot adalah tools resmi untuk meminta dan mengelola sertifikat SSL dari Let's Encrypt.

sudo apt install -y certbot

Langkah 2: Pastikan Port 80 Kosong

Certbot dengan mode --standalone membutuhkan port 80 yang tidak digunakan oleh proses lain. Pastikan tidak ada web server yang berjalan:

sudo ss -tlnp | grep :80

Jika ada proses yang menggunakan port 80 (misalnya Apache atau NGINX), hentikan terlebih dahulu:

sudo systemctl stop apache2
sudo systemctl disable apache2

Langkah 3: Request Sertifikat SSL

Jalankan perintah berikut. Ganti chat.domainanda.com dengan subdomain yang sudah Anda pointing di Bagian IV.

sudo certbot certonly --standalone -d chat.domainanda.com

Certbot akan meminta beberapa informasi:

  1. Alamat email — masukkan email aktif Anda. Email ini digunakan untuk notifikasi jika sertifikat hampir kedaluwarsa.
  2. Persetujuan Terms of Service — ketik Y lalu tekan Enter.
  3. Newsletter (opsional) — bisa ketik N untuk menolak.

▸ Hasil yang diharapkan jika berhasil:

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/chat.domainanda.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/chat.domainanda.com/privkey.pem

Langkah 4: Konfigurasi NGINX untuk HTTPS

LibreChat menggunakan NGINX sebagai web server yang berjalan di dalam kontainer Docker. Kita perlu mengubah konfigurasi NGINX bawaan agar mendukung HTTPS dan melakukan redirect otomatis dari HTTP ke HTTPS.

Buka file konfigurasi NGINX:

nano client/nginx.conf

Hapus seluruh isi file, lalu ganti dengan konfigurasi berikut. Pastikan Anda mengganti semua chat.domainanda.com dengan subdomain milik Anda:

server {
    listen 80;
    server_name chat.domainanda.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name chat.domainanda.com;

    ssl_certificate     /etc/letsencrypt/live/chat.domainanda.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/chat.domainanda.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://api:3080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_cache_bypass $http_upgrade;
    }
}

Penjelasan konfigurasi:

Simpan dan keluar dari editor.

Langkah 5: Hubungkan Sertifikat ke Kontainer Docker

Sertifikat SSL tersimpan di VPS (host), sementara NGINX berjalan di dalam kontainer Docker. Agar NGINX bisa membaca sertifikat tersebut, kita perlu memetakan folder sertifikat ke dalam kontainer melalui fitur Docker Volume.

Buka file deploy-compose.yml:

nano deploy-compose.yml

Cari blok layanan bernama client:. Tambahkan bagian ports dan volumes seperti contoh berikut:

  client:
    # ... baris image dan depends_on biarkan seperti aslinya ...
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./client/nginx.conf:/etc/nginx/conf.d/default.conf
      - /etc/letsencrypt:/etc/letsencrypt:ro

Penjelasan:

Simpan dan keluar dari editor.

Langkah 6: Konfigurasi Firewall (Opsional tapi Disarankan)

Untuk melindungi VPS dari akses yang tidak diinginkan, kita bisa mengaktifkan firewall (UFW) dan hanya membuka port yang diperlukan:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Penjelasan:

Saat diminta konfirmasi, ketik y lalu tekan Enter.

Bagian VI: Menjalankan dan Verifikasi LibreChat

Semua konfigurasi sudah selesai. Saatnya menjalankan LibreChat.

Langkah 1: Unduh Image Docker

Sebelum menjalankan kontainer, kita perlu mengunduh semua image Docker yang dibutuhkan (MongoDB, API, Client). Pastikan Anda berada di direktori ~/LibreChat/:

cd ~/LibreChat
sudo docker compose -f deploy-compose.yml pull

▸ Hasil yang diharapkan:

✔ ghcr.io/danny-avila/librechat:latest
✔ mongo:latest
✔ ghcr.io/danny-avila/librechat-rag-api-dev-lite:latest

Perintah ini mengunduh image terbaru dari registry Docker. Proses ini membutuhkan waktu tergantung kecepatan internet Anda.

Langkah 2: Jalankan Docker Compose

sudo docker compose -f deploy-compose.yml up -d

Flag -d menjalankan kontainer dalam mode background (detached), sehingga terminal tidak terkunci dan Anda bisa tetap mengetik perintah lain.

▸ Hasil yang diharapkan:

[+] Running 4/4
 ✔ Container LibreChat-vectordb-1   Started
 ✔ Container LibreChat-mongodb-1    Started
 ✔ Container LibreChat-api-1        Started
 ✔ Container LibreChat-client-1     Started

Langkah 3: Pastikan Semua Kontainer Berjalan

sudo docker compose -f deploy-compose.yml ps

▸ Hasil yang diharapkan:

NAME                       STATUS          PORTS
LibreChat-api-1            Up 2 minutes    3080/tcp
LibreChat-client-1         Up 2 minutes    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
LibreChat-mongodb-1        Up 2 minutes    27017/tcp
LibreChat-vectordb-1       Up 2 minutes    ...

Pastikan seluruh kontainer berstatus Up. Jika ada kontainer yang berstatus Restarting atau Exited, periksa penyebabnya di bagian Troubleshooting.

Langkah 4: Akses LibreChat di Browser

Buka browser dan kunjungi subdomain Anda melalui HTTPS:

https://chat.domainanda.com

Jika konfigurasi berjalan dengan benar, halaman login LibreChat akan tampil. Klik Sign up untuk membuat akun baru, lalu login menggunakan akun yang baru dibuat.

Langkah 5: Uji Coba Chat

Setelah berhasil login, pilih model AI dari dropdown yang tersedia (misalnya claude-3-5-sonnet-20241022 dari 9Router), lalu coba kirimkan pesan. Jika respons AI muncul, LibreChat sudah berjalan dengan sempurna dan siap digunakan.

Bagian VII: Perawatan LibreChat

Update ke Versi Terbaru

Ketika tim LibreChat merilis pembaruan, Anda bisa memperbarui instalasi dengan langkah berikut:

cd ~/LibreChat
git pull origin main
sudo docker compose -f deploy-compose.yml pull
sudo docker compose -f deploy-compose.yml up -d --build

Penjelasan setiap perintah:

📌 Tips: Sebelum melakukan update, ada baiknya membaca release notes di halaman GitHub LibreChat untuk mengetahui apakah ada perubahan konfigurasi yang perlu disesuaikan.

Melihat Log Kontainer

Log sangat berguna untuk mengetahui apa yang terjadi di dalam kontainer, terutama saat ada masalah:

# Melihat log semua kontainer
sudo docker compose -f deploy-compose.yml logs

# Melihat log kontainer tertentu secara real-time (misal: api)
sudo docker compose -f deploy-compose.yml logs -f api

Flag -f berarti follow — log akan terus bergulir mengikuti aktivitas terbaru. Tekan Ctrl + C untuk menghentikannya.

Perpanjangan Sertifikat SSL Otomatis

Sertifikat Let's Encrypt berlaku selama 90 hari. Agar tidak perlu memperpanjang secara manual setiap kali masa berlakunya habis, buat cron job untuk perpanjangan otomatis.

Buka editor crontab:

sudo crontab -e

Tambahkan baris berikut di bagian paling bawah:

0 3 * * * certbot renew --pre-hook "docker compose -f /root/LibreChat/deploy-compose.yml stop client" --post-hook "docker compose -f /root/LibreChat/deploy-compose.yml start client" --quiet

Cron job ini berjalan setiap hari pukul 03.00 dini hari. Certbot hanya akan benar-benar memperpanjang sertifikat jika masa berlakunya tersisa kurang dari 30 hari. Flag --pre-hook menghentikan kontainer client terlebih dahulu agar port 80 tersedia untuk proses verifikasi, dan --post-hook menjalankan kontainer kembali setelah proses selesai.

Backup Database

Seluruh data percakapan LibreChat tersimpan di MongoDB. Untuk membuat backup, jalankan dua perintah berikut:

sudo docker compose -f deploy-compose.yml exec mongodb mongodump --out /data/backup/

Perintah di atas membuat dump database di dalam kontainer MongoDB.

sudo docker cp LibreChat-mongodb-1:/data/backup/ ~/librechat-backup-$(date +%Y%m%d)

Perintah kedua menyalin hasil backup dari dalam kontainer ke direktori home VPS. Folder backup akan diberi nama sesuai tanggal saat perintah dijalankan, misalnya librechat-backup-20250928.

Troubleshooting

Kontainer Terus-Menerus Restart

Jika salah satu kontainer berstatus Restarting, periksa log untuk mengetahui penyebabnya:

sudo docker compose -f deploy-compose.yml logs api

Penyebab yang paling sering ditemui:

Port 80 atau 443 Sudah Digunakan

Jika muncul pesan error bind: address already in use, artinya ada aplikasi lain yang sudah menggunakan port tersebut. Cek proses yang menggunakan port 80 dan 443:

sudo ss -tlnp | grep -E ':80|:443'

Jika ditemukan proses seperti apache2 atau nginx yang berjalan di luar Docker, hentikan terlebih dahulu:

sudo systemctl stop apache2
sudo systemctl disable apache2

Perintah disable mencegah Apache berjalan otomatis saat VPS di-restart.

Docker Service Tidak Berjalan

Jika muncul pesan error Cannot connect to the Docker daemon, Docker service kemungkinan belum aktif. Jalankan perintah berikut:

sudo systemctl start docker
sudo systemctl enable docker

Perintah enable memastikan Docker otomatis berjalan setiap kali VPS di-restart.

Chat Tidak Menghasilkan Respons dari AI

Jika chat bisa dibuka tetapi model AI tidak memberikan respons, periksa beberapa hal berikut:

sudo docker compose -f deploy-compose.yml logs -f api

Sertifikat SSL Tidak Terbaca (ERR_SSL_PROTOCOL_ERROR)

Jika browser menampilkan error SSL saat mengakses subdomain, pastikan volume mapping di deploy-compose.yml sudah benar. Verifikasi juga bahwa file sertifikat memang ada di VPS:

sudo ls -la /etc/letsencrypt/live/chat.domainanda.com/

Hasil yang diharapkan harus menampilkan file fullchain.pem dan privkey.pem. Jika folder atau file tersebut tidak ditemukan, ulangi proses request sertifikat SSL di Bagian V Langkah 3.

Error 502 Bad Gateway

Jika browser menampilkan error 502, artinya NGINX tidak bisa menghubungi service API. Periksa:

sudo docker compose -f deploy-compose.yml ps
sudo docker compose -f deploy-compose.yml logs api

Sampai di sini, LibreChat sudah terpasang dan siap digunakan sebagai antarmuka chat AI pribadi di VPS Anda. Jika di kemudian hari ingin menambahkan provider AI lain atau mengganti model, cukup edit file librechat.yaml dan .env, lalu restart kontainer — tidak perlu install ulang dari awal.