diff --git a/Dockerfile b/Dockerfile index 7955468..18af45e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,23 @@ FROM node:20-alpine + +# Create working directory RUN mkdir -p /opt/app -RUN mkdir -p /opt/app/src -WORKDIR /opt/app -COPY tsconfig.json ./ -COPY .env ./ +WORKDIR /opt/app. + +# Copy and install dependencies COPY package.json package-lock.json ./ RUN npm install + +# Copy source and config files +COPY tsconfig.json ./ +COPY .env ./ COPY src/ ./src/ + +# Build project +RUN npm run build + +# Expose application port EXPOSE 3000 -CMD [ "npm", "start"] \ No newline at end of file + +# Start app +CMD [ "npm", "start"] diff --git a/README.md b/README.md index 46a663a..ab30b47 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,54 @@ -# M3tering Console +# M3tering Console Setup -## Installation -- `git clone https://github.com/M3tering/Console.git` -- `cd Console/` -- `npm install` -- `npm run start` \ No newline at end of file +## Quick Setup + +1. **Clone/Update** + + ```bash + git clone https://github.com/M3tering/Console.git + # or + cd Console/ && git pull + ``` + +2. **Environment Variables** + Create `.env` file: + + ``` + PORT=3000 + API_TOKEN=... + APPLICATION_ID=... + CONTRACT_LABEL=M3ters + CHIRPSTACK_HOST=host.docker.internal + MAINNET_RPC=https://sepolia.drpc.org + PREFERRED_PROVER_NODE=http://34.244.149.153 + ``` + +3. **Docker Build** + + ```bash + sudo docker build -t console . + # If error: sudo systemctl restart docker + ``` + +4. **Docker Run** + ```bash + sudo docker run -detach --restart unless-stopped --add-host=host.docker.internal:host-gateway console + ``` + +## Docker Commands + +- `sudo docker ps` - list running containers +- `sudo docker ps -a` - list all containers +- `sudo docker stop ` - stop container +- `sudo docker rm ` - remove container +- `sudo docker logs ` - view logs +- `sudo docker logs -f -t ` - follow logs with timestamps +- `sudo docker system prune` - cleanup unused containers/images +- `sudo docker system prune -a` - cleanup everything unused + +## Development + +```bash +npm install +npm run dev +``` diff --git a/package.json b/package.json index e1fef3a..26fba37 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Service console for providers on the m3tering protocol", "main": "src/index.ts", "scripts": { - "start": "ts-node src/index.ts", + "start": "node dist/src/index.js", + "build": "tsc -p tsconfig.json", "dev": "nodemon --exec ts-node src/index.ts", "interact": "ts-node src/logic/mqtt.ts", "watch": "nodemon --watch 'src/**'",