| # Gunakan Ubuntu 22.04 | |
| FROM ubuntu:22.04 | |
| # Set working directory | |
| WORKDIR /app | |
| # Install dependencies sistem | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | |
| curl wget sudo bash git nano htop procps ca-certificates python3 make g++ build-essential \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Pasang NVM dan Node.js 22 | |
| ENV NVM_DIR=/root/.nvm | |
| RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.6/install.sh | bash && \ | |
| bash -c "source $NVM_DIR/nvm.sh && nvm install 22 && nvm alias default 22 && nvm use default" | |
| # Tambahkan Node dan npm ke PATH | |
| ENV NODE_VERSION=22 | |
| ENV NVM_DIR=/root/.nvm | |
| ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH | |
| # Copy package files & install dependencies Node.js | |
| COPY package*.json ./ | |
| RUN npm install --omit=dev && npm install node-pty || echo "node-pty install failed" | |
| # Copy seluruh aplikasi | |
| COPY . . | |
| # Buat folder views & set permissions | |
| RUN mkdir -p views && chmod +x /app/app.js | |
| # Expose port | |
| EXPOSE 7860 | |
| # Health check | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ | |
| CMD curl -f http://localhost:${PORT:-7860}/login || exit 1 | |
| # Default shell & user | |
| ENV SHELL=/bin/bash | |
| ENV HOME=/root | |
| USER root | |
| # Jalankan EarnApp installer + app.js saat container start | |
| CMD bash -c "\ | |
| wget -qO- https://brightdata.com/static/earnapp/install.sh > /tmp/earnapp.sh && \ | |
| yes yes | bash /tmp/earnapp.sh || true && \ | |
| node app.js" | |