Skip to content

Instalasi ​

Halaman ini menjelaskan cara menjalankan Teldock di komputer Anda sendiri: backend Node.js, frontend React, dan database MySQL/MariaDB untuk menyimpan metadata.

Prasyarat ​

KebutuhanVersi / keterangan
Node.js22.x atau lebih baru (20+ bisa, 22.x disarankan)
MySQL / MariaDB8.0 atau lebih baru, sudah berjalan dan dapat diakses
FFmpegOpsional. Hanya diperlukan untuk pembuatan pratinjau video. Pratinjau gambar memakai Sharp dan tidak membutuhkan FFmpeg; tanpa FFmpeg, pratinjau video mengembalikan 503.
Bot + channel TelegramSetiap pengguna memerlukan bot sendiri (lewat @BotFather) dan channel penyimpanan privat.

Model multi-user

Teldock bersifat multi-user. Setiap akun menghubungkan token bot dan channel privatnya masing-masing di Settings → Telegram Integration. Nilai Telegram pada .env hanya untuk pengembangan dan pengujian lokal. Lihat Menghubungkan Telegram.

1. Clone repositori ​

bash
git clone https://github.com/Chaerulcp/Teldock.git
cd Teldock

2. Siapkan backend ​

bash
cd backend
npm install
cp .env.example .env      # lalu edit .env (lihat Konfigurasi)
npm run migrate           # buat semua tabel database
npm run dev               # jalankan API di http://localhost:3001

Biarkan terminal ini tetap terbuka. npm run dev menjalankan API dengan auto-reload melalui nodemon; gunakan npm start untuk menjalankan proses Node biasa.

Windows / PowerShell

cp adalah perintah Unix. Di Windows PowerShell, salin file contoh dengan:

powershell
Copy-Item .env.example .env

Sebelum server dijalankan, buka backend/.env dan isi setidaknya kredensial database serta tiga secret wajib (JWT_SECRET, REFRESH_TOKEN_SECRET, ENCRYPTION_KEY). Lihat Konfigurasi.

3. Siapkan frontend ​

Di terminal baru:

bash
cd frontend
npm install
npm run dev               # jalankan SPA di http://localhost:3000

Vite otomatis mem-proxy permintaan /api ke backend, sehingga browser dapat memanggil http://localhost:3000/api/... selama pengembangan.

4. Verifikasi backend berjalan ​

bash
curl http://localhost:3001/api/health

Respons yang diharapkan:

json
{ "success": true, "message": "API is running", "timestamp": "..." }

Setelah itu buka http://localhost:3000, daftarkan akun, lalu lanjutkan ke Menghubungkan Telegram.

Layanan dan port ​

LayananURLPort
Frontend (React SPA)http://localhost:30003000
Backend (Express API)http://localhost:3001/api3001
Database (MySQL/MariaDB)localhost3306

Perintah umum ​

LokasiPerintahKegunaan
backendnpm run devMenjalankan API dengan auto-reload
backendnpm startMenjalankan API sebagai proses Node biasa
backendnpm run migrateMembuat/menyinkronkan tabel database
backendnpm run test-dbMemeriksa penyiapan database
backendnpm run test-authMenjalankan skrip pengujian auth
frontendnpm run devMenjalankan dev server Vite
frontendnpm run buildBuild untuk produksi

Server menolak boot tanpa secret yang valid

Saat startup, backend memvalidasi JWT_SECRET, REFRESH_TOKEN_SECRET, dan ENCRYPTION_KEY. Jika salah satunya tidak ada, kurang dari 32 karakter, atau masih berisi nilai placeholder dari .env.example, proses akan berhenti dengan pesan error alih-alih berjalan. Aturan ini diterapkan di backend/src/config/secrets.js agar deployment yang salah konfigurasi langsung gagal, bukan diam-diam memakai nilai default yang publik.

Buat secret yang kuat

Jangan menjalankan Teldock dengan secret contoh. Buat nilai acak (lihat Konfigurasi) dan jaga agar tetap stabil — mengubah ENCRYPTION_KEY di kemudian hari membuat kredensial dan file yang sudah terenkripsi tidak dapat dibaca.

Langkah selanjutnya ​

Released under the MIT License.