Deployer — Deployment Website dari GitHub
Dasbor deployment dengan OAuth GitHub, pemilihan repositori dan branch, antrean build, worker, riwayat log per tahap, redeploy, dan alamat subdomain per proyek.
Tangkapan layar
Ringkasan
Apa yang dikerjakan sistem ini.
Deployer adalah aplikasi deployment dengan dasbor Next.js dan backend Express berbasis TypeScript. Pengguna mendaftar, menghubungkan akun GitHub-nya lewat OAuth, memilih repositori dan branch, lalu membuat proyek dengan subdomainnya sendiri. Deployment bisa dijalankan langsung dari dasbor atau dipicu otomatis oleh webhook push repositori.
Permintaan deployment masuk ke antrean dan diproses oleh worker: kode sumber diambil sesuai konfigurasi proyek, struktur proyek diperiksa, dan bila ada package.json, dependensi dipasang dan perintah build dijalankan sebelum hasilnya disalin ke direktori subdomain. Website statis tanpa package.json mengikuti jalur pemrosesan terpisah. Setiap tahap menyimpan status dan log-nya sehingga kegagalan bisa ditelusuri dari dasbor.
Kredensial GitHub dienkripsi saat disimpan, permintaan dibatasi lajunya, dan operasi yang rawan gagal dibungkus mekanisme retry. Backend menyimpan data di PostgreSQL dengan skrip migrasinya sendiri, memakai autentikasi JWT berbasis cookie, dan diuji dengan Jest, Supertest, serta property-based test. Seluruh layanannya dipaketkan dengan Docker Compose.
Daftar fitur
Rincian kemampuan
17 kemampuan yang diverifikasi langsung terhadap kode sumber proyek.
- Registrasi, login, dan sesi dasbor berbasis JWT
- Penghubungan akun GitHub lewat OAuth dengan penyimpanan token terenkripsi
- Pendaftaran repositori GitHub dan pemilihan branch
- Pembuatan proyek dengan nama dan subdomain
- Daftar proyek pengguna beserta status terakhirnya
- Deployment manual dari dasbor
- Pemicu deployment dari webhook push GitHub
- Antrean deployment dengan worker pemrosesan terpisah
- Pengambilan kode repositori sesuai konfigurasi proyek
- Deteksi proyek Node.js melalui package.json
- Pemasangan dependensi dan eksekusi perintah build
- Pemilihan direktori hasil build atau pemrosesan website statis
- Penyalinan hasil build ke direktori subdomain proyek
- Riwayat deployment, status, dan log per tahap
- Redeploy dan penghapusan proyek
- Pembatasan laju permintaan dan mekanisme retry untuk operasi eksternal
- Migrasi basis data mandiri dan pemaketan Docker Compose
Teknologi
Dibangun dengan 12 teknologi.
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS 3
- Framer Motion
- Node.js
- Express 4
- PostgreSQL
- GitHub API
- JWT
- Jest
- Docker
Pertanyaan umum
Yang biasanya ditanyakan.
Apa yang terjadi setelah deployment dipicu?
Permintaan masuk antrean dan diambil worker: repositori diambil, struktur proyek diperiksa, dan bila ada package.json dependensi dipasang lalu build dijalankan sebelum hasilnya disalin ke direktori subdomain.
Bagaimana kredensial GitHub disimpan?
Terenkripsi saat disimpan. Permintaan dibatasi lajunya dan operasi eksternal yang rawan gagal dibungkus retry, karena penyebab kegagalan deployment paling umum adalah gangguan jaringan, bukan build yang salah.
Bisakah deployment yang gagal ditelusuri dari dasbor?
Bisa. Setiap tahap menyimpan status dan log-nya sendiri, jadi kegagalan menunjuk ke tahap yang gagal, bukan sekadar pesan "deployment gagal" yang tidak menjelaskan apa-apa.
Satu bidang
Proyek serupa.
Reservasi.info — Reservasi Pendakian & Wisata Alam
Platform reservasi pendakian dan wisata alam dengan kuota peserta, pendataan kelompok dan perlengkapan, pembayaran Tripay, saldo dompet, penjadwalan ulang, check-in dan check-out, serta laporan pengunjung.
Laravel 12 · Filament 3 · Blade · Tailwind CSS 4 · +5
WeddingNesia — Undangan Pernikahan Digital
Layanan undangan pernikahan digital: pasangan memilih tema, mengisi datanya sendiri, lalu memesan halaman undangan pribadi untuk dibagikan kepada tamu.
Laravel · React · MySQL
Todolist Pustekno — Kolaborasi Proyek & Tugas
Aplikasi kerja tim berbasis Livewire dengan proyek, papan tugas, checklist, komentar, lampiran, jadwal berulang, log harian, dan notifikasi Telegram.
Laravel 12 · PHP 8.4 · Livewire 3 · Livewire Volt · +6