You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#!/bin/bash# === Load variabel dari .env (jika tidak diset dari luar) ===if [ -f .env ];thenexport$(grep -v '^#' .env | xargs)fi# === Validasi ===if [ -z"$PORT" ] || [ -z"$NGROK_AUTH_TOKEN" ];thenecho"❌ Pastikan .env atau environment berisi PORT dan NGROK_AUTH_TOKEN"exit 1
fi# === Token ngrok ===echo"🔐 Menambahkan token ngrok..."
ngrok config add-authtoken "$NGROK_AUTH_TOKEN"# === Jalankan Node.js server di background ===echo"🚀 Menjalankan server Node.js di port $PORT..."
node app/server.js &# Tunggu server siap
sleep 3
# === Jalankan ngrok ===if [ -n"$DOMAIN" ];thenecho"🌍 Menjalankan ngrok dengan domain: $DOMAIN"
ngrok http --region=us --domain=$DOMAIN$PORTelseecho"🌍 Menjalankan ngrok dengan domain random..."
ngrok http --region=us $PORTfi
Dockerfile (versi embed ngrok + Node.js)
# Gunakan base image Node.js
FROM node:22
# Install ngrok dan alat bantu
RUN apt update && apt install -y curl unzip \
&& curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&&echo"deb https://ngrok-agent.s3.amazonaws.com buster main"| tee /etc/apt/sources.list.d/ngrok.list \
&& apt update && apt install -y ngrok
# Set direktori kerja
WORKDIR /app
# Copy semua file ke container
COPY ..# Install dependency project
RUN npm install
# Izin eksekusi untuk start.sh
RUN chmod +x start.sh
# Jalankan start.sh saat container dijalankan
CMD ["./start.sh"]
build yang embed ngrok
docker build -t restful-ngrok-server .
Jalankan Container
docker run -it --rm --env-file .env -p 8000:8000 restful-ngrok-server
About
RESTful API berbasis Node.js dengan Docker, terintegrasi dengan model AI dari Hugging Face menggunakan API, serta dapat diakses publik melalui Ngrok. Proyek ini dirancang untuk membuat layanan AI yang ringan, fleksibel, dan dapat dijalankan secara lokal maupun cloud dengan dukungan expose endpoint ke internet melalui Ngrok.