Skip to content

Isac-Andrade/system-status-api

Repository files navigation

🖥️ System Status API

CI/CD Pipeline Node.js Docker Express

REST API that exposes real-time system health metrics via HTTP — monitor your server without accessing it directly.


⚙️ Why I built this

I built this project to understand in practice how an automated API works end to end from writing the endpoints in Node.js, to containerizing with Docker, to having GitHub Actions build and publish the image automatically on every push.

It's the natural evolution of my Docker Bash Toolkit: the same server monitoring problems, now exposed via HTTP instead of manual scripts.


🗂️ Project structure

system-status-api/
├── .github/
│   └── workflows/
│       └── deploy.yml     ← CI/CD pipeline
├── src/
│   ├── index.js           ← server entry point
│   └── routes/
│       ├── health.js
│       ├── info.js
│       ├── disk.js
│       └── memory.js
├── Dockerfile
├── docker-compose.yml
└── package.json

⚙️ CI/CD Pipeline

Every push to main automatically:

  1. Builds the Docker image
  2. Logs in to Docker Hub
  3. Pushes the image

No manual steps needed.


📚 What I learned

  • How to structure a Node.js API with Express and separate routes by file
  • Docker Compose for local orchestration — new concept for me in this project
  • How a full CI/CD pipeline works in practice: push code → build image → publish automatically
  • The importance of package.json and how Docker caches dependency layers separately from application code

The hardest parts were getting package.json to work correctly inside the container and understanding Docker Compose for the first time — but both clicked once I saw them working together.


🛠️ Technologies

  • Node.js + Express — REST API
  • Docker + Alpine Linux — containerization
  • Docker Compose — local orchestration
  • GitHub Actions — CI/CD pipeline
  • Docker Hub — image registry

👤 Author

Isac Andrade Software Engineering student at Universidade Católica de Brasília, learning DevOps hands-on.

GitHub · Docker Hub

About

REST API that exposes real-time system health metrics via HTTP endpoints.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors