final commit

This commit is contained in:
2026-07-19 20:05:28 +05:30
parent 1a1272649f
commit adf653d0ee
5 changed files with 63 additions and 13 deletions
+6
View File
@@ -0,0 +1,6 @@
node_modules
npm-debug.log
.git
.gitignore
.env
Dockerfile
+2
View File
@@ -0,0 +1,2 @@
PORT=3000
TIME=60000
+8
View File
@@ -0,0 +1,8 @@
FROM node:22-alpine
WORKDIR /app
RUN npm install -g npm@latest
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
+36 -13
View File
@@ -388,6 +388,11 @@ The `backend/database` directory can be mounted as a Docker volume so that `urls
--- ---
# A 1-Line Setup:
```bash
docker compose up
```
# Deployment Sketch # Deployment Sketch
## Current MVP Deployment ## Current MVP Deployment
@@ -482,26 +487,44 @@ For a production-ready deployment, I would separate the application into managed
| Registered URLs | | Monitoring History | | Registered URLs | | Monitoring History |
+---------------------+ +----------------------+ +---------------------+ +----------------------+
``` ```
## Infrastructure-as-Code (Hypothetical)
## Infrastructure-as-Code (Example) If deployed on AWS, the infrastructure could be provisioned using Terraform.
A minimal Docker-based deployment could be provisioned using Docker Compose: ```hcl
provider "aws" {
region = "ap-south-1"
}
```yaml resource "aws_instance" "url_monitor" {
version: "3.9" ami = "ami-xxxxxxxx"
instance_type = "t3.micro"
services: tags = {
url-health-monitor: Name = "url-health-monitor"
build: . }
ports: }
- "3000:3000"
restart: unless-stopped
volumes:
- ./backend/database:/app/backend/database
``` ```
In a production cloud environment, the JSON files would be replaced by a managed PostgreSQL or MongoDB database, Docker images would be deployed automatically through a CI/CD pipeline, and HTTPS would be provided by the cloud platform. The application Docker image would be deployed to the EC2 instance, with:
- Docker running the Node.js application
- Nginx acting as a reverse proxy
- HTTPS enabled using Let's Encrypt
- Monitoring data stored in PostgreSQL or MongoDB instead of JSON files
In a production cloud environment, the JSON files would be replaced by a managed PostgreSQL or MongoDB database, Docker images would be deployed automatically through a CI/CD pipeline, and HTTPS would be provided by the cloud platform.
## Deployment Notes
For a production deployment, I would:
- Build a Docker image using GitHub Actions.
- Push the image to Docker Hub or GitHub Container Registry.
- Provision infrastructure using Terraform.
- Deploy the container to AWS EC2, ECS, or Google Cloud Run.
- Store monitoring data in PostgreSQL or MongoDB.
- Configure HTTPS using a cloud load balancer or Nginx.
- Use CloudWatch or Prometheus/Grafana for monitoring and logging.
# Future Improvements # Future Improvements
- Delete registered URLs - Delete registered URLs
+11
View File
@@ -0,0 +1,11 @@
services:
url-health-monitor:
build: .
container_name: url-health-monitor
ports:
- "3000:3000"
env_file:
- .env
restart: unless-stopped
volumes:
- ./backend/database:/app/backend/database