Skip to content

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.

Notifications You must be signed in to change notification settings

Gopartner/Restful-api-nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

revisi kode

Struktur project:

Restful-API-nodejs/
├── app/
│   ├── controllers/
│   │   └── aiController.js
│   ├── middlewares/
│   │   ├── auth.js
│   │   └── validatePrompt.js
│   ├── routes/
│   │   └── apiRoutes.js
│   ├── utils/
│   │   └── hfClient.js
│   └── server.js
├── .env
├── package.json
└── README.md

start.sh (versi embed-ready)

#!/bin/bash

# === Load variabel dari .env (jika tidak diset dari luar) ===
if [ -f .env ]; then
  export $(grep -v '^#' .env | xargs)
fi

# === Validasi ===
if [ -z "$PORT" ] || [ -z "$NGROK_AUTH_TOKEN" ]; then
  echo "❌ 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" ]; then
  echo "🌍 Menjalankan ngrok dengan domain: $DOMAIN"
  ngrok http --region=us --domain=$DOMAIN $PORT
else
  echo "🌍 Menjalankan ngrok dengan domain random..."
  ngrok http --region=us $PORT
fi

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published