npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@midrepo/cli

v0.1.12

Published

Cross-platform CLI for MIDREPO production API

Readme

MIDREPO CLI

CLI berbasis Node.js untuk MIDREPO Production API (https://midrepo.com/api/v1), termasuk deploy VPS dan free hosting dengan flow yang setara web.

Syarat

  • Node.js 18 atau lebih baru.
  • Akun MIDREPO yang sudah login.
  • Untuk VPS: kredensial SSH password atau OpenSSH private key.
  • Untuk upload source: file .zip project yang lolos validasi keamanan backend.

Install

Instalasi global langsung dari npm registry, tanpa clone repository:

npm install -g @midrepo/cli

Perintah tersebut membuat midrepo tersedia secara global pada komputer yang menjalankannya, sehingga dapat dipakai dari direktori mana pun:

cd ~
midrepo ping
midrepo deploy help

CLI ini adalah klien tipis yang berkomunikasi dengan MIDREPO Production API melalui HTTPS. Paket npm hanya berisi file klien (bin/hello.mjs, bin/deploy.mjs, bin/prompts.mjs, package.json, dan README.md); kode server dan konfigurasi tidak disertakan.

Setelah terpasang, cukup jalankan:

midrepo

Jika dijalankan di terminal interaktif tanpa argumen, CLI membuka menu bernomor untuk Login, Register, profil, deploy VPS, deploy free hosting, uninstall, status job, domain, dan logout. Anda hanya memilih angka lalu mengisi nilai yang diminta; password tidak ditampilkan saat diketik.

Command manual seperti midrepo vps deploy ... tetap tersedia untuk otomasi/CI. Gunakan exit untuk keluar atau 0 untuk kembali pada sub-menu.

Update CLI

Untuk versi CLI yang sudah mendukung command update, jalankan:

midrepo update

Command tersebut menjalankan npm install -g @midrepo/cli@latest, sehingga versi global lama otomatis diganti dengan versi terbaru. Alias berikut juga tersedia:

midrepo upgrade

Jika Anda masih memakai versi lama seperti 0.1.3, command midrepo update belum tersedia. Lakukan upgrade pertama secara manual:

npm install -g @midrepo/cli@latest

Tidak perlu uninstall terlebih dahulu. Jika ingin melakukan instalasi bersih, gunakan:

npm uninstall -g @midrepo/cli
npm install -g @midrepo/cli@latest

Kompatibilitas command lama hello midrepo tetap tersedia.

Login

midrepo login [email protected] password
midrepo me

Session bearer token disimpan pada:

~/.midrepo-cli/session.json

Gunakan midrepo logout untuk menghapus session lokal.

Command dasar

midrepo help
midrepo ping
midrepo docs
midrepo me
midrepo domains
midrepo job <jobId>
midrepo postman collection
midrepo logout
midrepo update

Deploy VPS

Semua deploy VPS mengikuti flow web yang sama:

  1. Koneksi SSH dan menerima sessionId.
  2. Upload ZIP source ke VPS bila memakai --zip.
  3. Kirim build/deploy job ke API.
  4. CLI memantau job hingga selesai secara default.

Deploy satu perintah

Dengan password SSH:

midrepo vps deploy 203.0.113.10 root /var/www react-vite \
  --password 'password-vps' \
  --zip ./project.zip \
  --app-name landing-page \
  --domain app.example.com \
  --web-server nginx

Dengan private key:

midrepo vps deploy 203.0.113.10 deploy /var/www nodejs \
  --private-key ~/.ssh/id_ed25519 \
  --zip ./project.zip \
  --app-name api-app

Dengan source GitHub publik:

midrepo vps deploy 203.0.113.10 deploy /var/www react-vite \
  --private-key ~/.ssh/id_ed25519 \
  --github https://github.com/acme/landing-page \
  --app-name landing-page

Dengan IP publik sebagai target HTTP (tanpa SSL, default --web-server nginx):

midrepo vps deploy 203.0.113.10 root /var/www react-vite \
  --password 'password-vps' \
  --zip ./project.zip \
  --host-name 203.0.113.10 \
  --web-server nginx

Jika Anda hanya ingin deploy ke port aplikasi tanpa web server, hilangkan --web-server (atau set none) dan biarkan --domain/--host-name kosong. URL akan berbentuk http://<host>:<port>.

Flow VPS bertahap

Koneksi dan dapatkan session:

midrepo vps connect 203.0.113.10 root --password 'password-vps'

Upload ZIP:

midrepo vps upload <sessionId> /var/www ./project.zip

Build/deploy dari ZIP (CLI upload ZIP otomatis):

midrepo vps build <sessionId> /var/www react-vite \
  --zip ./project.zip \
  --app-name landing-page \
  --domain app.example.com \
  --web-server nginx

Build/deploy dari GitHub:

midrepo vps build <sessionId> /var/www react-vite \
  --github https://github.com/acme/landing-page \
  --app-name landing-page

Update aplikasi yang sudah terdeploy:

midrepo vps update <sessionId> /var/www/landing-page react-vite \
  --zip ./project-baru.zip

Update dari GitHub:

midrepo vps update <sessionId> /var/www/landing-page react-vite \
  --github https://github.com/acme/landing-page

Uninstall project VPS (samadengan flow web: full cleanup VPS bila ini satu-satunya project, selain itu hanya hapus project):

midrepo vps uninstall <sessionId> /var/www react-vite landing-page --yes

Template harus sesuai dengan template yang didukung API: auto, react-vite, react, next-js, bun-hono, python, php, codeigniter, atau laravel. API menolak template lain dengan pesan error yang dapat dibaca di job step.

Saat hanya IP publik yang tersedia, SSL Certbot akan otomatis dilewati; gunakan domain + Certbot terpisah (--web-server domain --web-server ssl) bila nanti nama domain sudah aktif. Deploy HTTP ke IP tetap dipublikasikan lewat Nginx/Apache pada port 80.

Free hosting

Free hosting menggunakan domain root yang dikonfigurasi server. Source dapat berasal dari ZIP atau GitHub publik. Stack yang tersedia saat ini: auto, react-vite, react, dan next-js.

Deploy ZIP:

midrepo free-hosting deploy portfolio react-vite --zip ./project.zip

Deploy GitHub:

midrepo free-hosting deploy portfolio react-vite \
  --github https://github.com/acme/portfolio

Lihat konfigurasi domain dan DNS yang akan digunakan:

midrepo free-hosting configure portfolio react-vite

Pantau satu job free hosting:

midrepo free-hosting status <jobId>

Hapus free-hosting domain milik akun yang sedang login:

midrepo free-hosting cleanup portfolio --yes

Perintah --yes wajib dipakai pada uninstall/cleanup untuk mencegah eksekusi destruktif tanpa konfirmasi. Menu interaktif midrepo sudah meminta konfirmasi eksplisit sebelum mengirim request cleanup.

Opsi

| Opsi | Keterangan | | --- | --- | | --zip <file> | ZIP source project; CLI mengunggahnya otomatis. | | --github <url> | URL GitHub publik sebagai source. Tidak dapat dipakai bersama --zip. | | --password <password> | Password SSH VPS. | | --private-key <file> | Lokasi OpenSSH private key. | | --passphrase <value> | Passphrase private key jika diperlukan. | | --port <number> | Port SSH, default 22. | | --app-name <name> | Nama aplikasi untuk direktori deploy VPS. | | --domain <domain> | Domain aplikasi VPS. | | --host-name <host> | Hostname untuk konfigurasi deploy VPS. | | --web-server <mode> | Mode web server, contohnya nginx. Default none. | | --migration-mode <mode> | Mode migrasi Laravel: default, skip, atau run. | | --webhook <json> | Konfigurasi webhook job, sebagai JSON valid. | | --no-wait | Kirim job tanpa polling; CLI mencetak job ID. | | --poll-seconds <number> | Interval polling job, default 2 detik. | | --timeout-seconds <number> | Batas waktu polling, default 1800 detik. |

Contoh deploy tanpa menunggu job selesai:

midrepo free-hosting deploy portfolio react-vite \
  --zip ./project.zip \
  --no-wait

Lalu pantau dengan:

midrepo free-hosting status <jobId>

Konfigurasi endpoint

Semua request secara default mengarah ke production. Untuk development atau staging, set environment variable berikut:

MIDREPO_CLI_BASE_URL=http://localhost:3000 midrepo ping

Jangan menyimpan password VPS, private key, atau bearer token dalam source code maupun shell history yang dibagikan.