diff --git a/.gitignore b/.gitignore
index 5fca744d..caa9c131 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,7 +18,7 @@ config/static/*
!config/static/.kener
db/*
!db/.kener
-src/lib/server/data/*
-!src/lib/server/data/.kener
+database/*
+!database/.kener
src/lib/server/config/monitors.yaml
src/lib/server/config/site.yaml
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index e5e7e8ae..81ae4f74 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,29 @@
-# Stage 1: Base image
-FROM lsiobase/alpine:3.18 AS build
+# Stage 1: Build stage
+FROM node:18-alpine AS builder
+
+WORKDIR /app
+
+# Copy package files first for better caching
+COPY package*.json ./
+
+# Install dependencies
+RUN npm install
+
+# Copy project files
+COPY . .
+
+# Build the application
+RUN npm run build
+
+# Stage 2: Run stage
+FROM lsiobase/alpine:3.18
# Set timezone and user
-ENV TZ=Etc/GMT
-ENV PUID=911
-ENV PGID=911
+ENV TZ=Etc/GMT \
+ PUID=911 \
+ PGID=911 \
+ NODE_ENV=production \
+ PORT=3000
# Install Node.js and npm
RUN echo "**** install build packages ****" && \
@@ -20,48 +39,34 @@ RUN echo "**** install build packages ****" && \
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone
-# Set working directory
WORKDIR /app
+# Copy built files from builder stage
+COPY --from=builder /app/build ./build
+COPY --from=builder /app/package*.json ./
+COPY --from=builder /app/main.js ./
+COPY --from=builder /app/build.js ./
+COPY --from=builder /app/src ./src
+COPY --from=builder /app/static ./static
+COPY --from=builder /app/database ./database
+COPY --from=builder /app/config ./config
+COPY --from=builder /app/node_modules ./node_modules
+COPY --from=builder /app/.env ./.env
+
+# Install production dependencies only
-# Copy package files first for better caching
-COPY package*.json ./
-
-# Install dependencies
-RUN npm install
-
-# Copy project files
-COPY . .
-
-# Create database directory
+
+# Create and configure database directory
RUN mkdir -p /app/database && \
chown -R $PUID:$PGID /app/database && \
chmod -R 755 /app/database
-# Set production environment
-ENV NODE_ENV=production \
- PORT=3000 \
- TZ=Etc/GMT \
- PUID=911 \
- PGID=911
-# Copy database contents if they exist
# Declare volume for persistence
VOLUME /app/database
-
-# Build application
-RUN node build.js && \
- npm run build
-
-RUN npm install -g vite-node
-
-# Use PORT env variable
+# Expose port
EXPOSE $PORT
-# Print PORT env variable
-RUN echo "PORT: $PORT"
-
# Set startup command
-
-CMD ["sh", "-c", "vite-node src/lib/server/startup.js & node main.js & wait"]
\ No newline at end of file
+CMD ["sh", "-c", "node build.js && (node src/lib/server/startup.js & node main.js & wait)"]
\ No newline at end of file
diff --git a/database/.kener b/database/.kener
new file mode 100644
index 00000000..251d0a51
--- /dev/null
+++ b/database/.kener
@@ -0,0 +1 @@
+database folder
\ No newline at end of file
diff --git a/database/earth.0day.utc.json b/database/earth.0day.utc.json
deleted file mode 100644
index 5a481151..00000000
--- a/database/earth.0day.utc.json
+++ /dev/null
@@ -1,527 +0,0 @@
-{
- "1731391680": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731391920": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731391980": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392040": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392100": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392160": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392220": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392280": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392340": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392400": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392460": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392520": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392580": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392640": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392700": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392760": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392820": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392880": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731392940": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393000": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393060": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393120": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393180": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393240": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393300": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393360": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393420": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393480": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393540": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393600": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393660": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393720": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393780": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393840": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393900": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731393960": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731394020": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731394080": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731394140": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422160": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422220": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422280": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422340": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422400": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422460": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422520": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422580": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422640": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422700": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731422760": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423600": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423660": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423720": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423780": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423840": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423900": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731423960": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424020": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424080": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424140": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424200": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424440": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424500": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424560": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424620": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424680": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424740": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424800": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424860": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424920": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731424980": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425040": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425100": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425160": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425220": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425280": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425340": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425400": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425460": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425520": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425580": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425640": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425700": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425760": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425820": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425880": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731425940": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426000": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426060": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426120": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426180": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426240": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426300": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426360": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426420": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426480": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426540": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426600": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426660": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426720": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426780": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426840": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426900": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731426960": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- },
- "1731427020": {
- "status": "UP",
- "latency": 0,
- "type": "defaultStatus"
- }
-}
\ No newline at end of file
diff --git a/database/earth.90day.utc.json b/database/earth.90day.utc.json
deleted file mode 100644
index e39ce095..00000000
--- a/database/earth.90day.utc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"_90Day":{"1723593600":{"timestamp":1723593600,"cssClass":"api-nodata","message":"No Data"},"1723680000":{"timestamp":1723680000,"cssClass":"api-nodata","message":"No Data"},"1723766400":{"timestamp":1723766400,"cssClass":"api-nodata","message":"No Data"},"1723852800":{"timestamp":1723852800,"cssClass":"api-nodata","message":"No Data"},"1723939200":{"timestamp":1723939200,"cssClass":"api-nodata","message":"No Data"},"1724025600":{"timestamp":1724025600,"cssClass":"api-nodata","message":"No Data"},"1724112000":{"timestamp":1724112000,"cssClass":"api-nodata","message":"No Data"},"1724198400":{"timestamp":1724198400,"cssClass":"api-nodata","message":"No Data"},"1724284800":{"timestamp":1724284800,"cssClass":"api-nodata","message":"No Data"},"1724371200":{"timestamp":1724371200,"cssClass":"api-nodata","message":"No Data"},"1724457600":{"timestamp":1724457600,"cssClass":"api-nodata","message":"No Data"},"1724544000":{"timestamp":1724544000,"cssClass":"api-nodata","message":"No Data"},"1724630400":{"timestamp":1724630400,"cssClass":"api-nodata","message":"No Data"},"1724716800":{"timestamp":1724716800,"cssClass":"api-nodata","message":"No Data"},"1724803200":{"timestamp":1724803200,"cssClass":"api-nodata","message":"No Data"},"1724889600":{"timestamp":1724889600,"cssClass":"api-nodata","message":"No Data"},"1724976000":{"timestamp":1724976000,"cssClass":"api-nodata","message":"No Data"},"1725062400":{"timestamp":1725062400,"cssClass":"api-nodata","message":"No Data"},"1725148800":{"timestamp":1725148800,"cssClass":"api-nodata","message":"No Data"},"1725235200":{"timestamp":1725235200,"cssClass":"api-nodata","message":"No Data"},"1725321600":{"timestamp":1725321600,"cssClass":"api-nodata","message":"No Data"},"1725408000":{"timestamp":1725408000,"cssClass":"api-nodata","message":"No Data"},"1725494400":{"timestamp":1725494400,"cssClass":"api-nodata","message":"No Data"},"1725580800":{"timestamp":1725580800,"cssClass":"api-nodata","message":"No Data"},"1725667200":{"timestamp":1725667200,"cssClass":"api-nodata","message":"No Data"},"1725753600":{"timestamp":1725753600,"cssClass":"api-nodata","message":"No Data"},"1725840000":{"timestamp":1725840000,"cssClass":"api-nodata","message":"No Data"},"1725926400":{"timestamp":1725926400,"cssClass":"api-nodata","message":"No Data"},"1726012800":{"timestamp":1726012800,"cssClass":"api-nodata","message":"No Data"},"1726099200":{"timestamp":1726099200,"cssClass":"api-nodata","message":"No Data"},"1726185600":{"timestamp":1726185600,"cssClass":"api-nodata","message":"No Data"},"1726272000":{"timestamp":1726272000,"cssClass":"api-nodata","message":"No Data"},"1726358400":{"timestamp":1726358400,"cssClass":"api-nodata","message":"No Data"},"1726444800":{"timestamp":1726444800,"cssClass":"api-nodata","message":"No Data"},"1726531200":{"timestamp":1726531200,"cssClass":"api-nodata","message":"No Data"},"1726617600":{"timestamp":1726617600,"cssClass":"api-nodata","message":"No Data"},"1726704000":{"timestamp":1726704000,"cssClass":"api-nodata","message":"No Data"},"1726790400":{"timestamp":1726790400,"cssClass":"api-nodata","message":"No Data"},"1726876800":{"timestamp":1726876800,"cssClass":"api-nodata","message":"No Data"},"1726963200":{"timestamp":1726963200,"cssClass":"api-nodata","message":"No Data"},"1727049600":{"timestamp":1727049600,"cssClass":"api-nodata","message":"No Data"},"1727136000":{"timestamp":1727136000,"cssClass":"api-nodata","message":"No Data"},"1727222400":{"timestamp":1727222400,"cssClass":"api-nodata","message":"No Data"},"1727308800":{"timestamp":1727308800,"cssClass":"api-nodata","message":"No Data"},"1727395200":{"timestamp":1727395200,"cssClass":"api-nodata","message":"No Data"},"1727481600":{"timestamp":1727481600,"cssClass":"api-nodata","message":"No Data"},"1727568000":{"timestamp":1727568000,"cssClass":"api-nodata","message":"No Data"},"1727654400":{"timestamp":1727654400,"cssClass":"api-nodata","message":"No Data"},"1727740800":{"timestamp":1727740800,"cssClass":"api-nodata","message":"No Data"},"1727827200":{"timestamp":1727827200,"cssClass":"api-nodata","message":"No Data"},"1727913600":{"timestamp":1727913600,"cssClass":"api-nodata","message":"No Data"},"1728000000":{"timestamp":1728000000,"cssClass":"api-nodata","message":"No Data"},"1728086400":{"timestamp":1728086400,"cssClass":"api-nodata","message":"No Data"},"1728172800":{"timestamp":1728172800,"cssClass":"api-nodata","message":"No Data"},"1728259200":{"timestamp":1728259200,"cssClass":"api-nodata","message":"No Data"},"1728345600":{"timestamp":1728345600,"cssClass":"api-nodata","message":"No Data"},"1728432000":{"timestamp":1728432000,"cssClass":"api-nodata","message":"No Data"},"1728518400":{"timestamp":1728518400,"cssClass":"api-nodata","message":"No Data"},"1728604800":{"timestamp":1728604800,"cssClass":"api-nodata","message":"No Data"},"1728691200":{"timestamp":1728691200,"cssClass":"api-nodata","message":"No Data"},"1728777600":{"timestamp":1728777600,"cssClass":"api-nodata","message":"No Data"},"1728864000":{"timestamp":1728864000,"cssClass":"api-nodata","message":"No Data"},"1728950400":{"timestamp":1728950400,"cssClass":"api-nodata","message":"No Data"},"1729036800":{"timestamp":1729036800,"cssClass":"api-nodata","message":"No Data"},"1729123200":{"timestamp":1729123200,"cssClass":"api-nodata","message":"No Data"},"1729209600":{"timestamp":1729209600,"cssClass":"api-nodata","message":"No Data"},"1729296000":{"timestamp":1729296000,"cssClass":"api-nodata","message":"No Data"},"1729382400":{"timestamp":1729382400,"cssClass":"api-nodata","message":"No Data"},"1729468800":{"timestamp":1729468800,"cssClass":"api-nodata","message":"No Data"},"1729555200":{"timestamp":1729555200,"cssClass":"api-nodata","message":"No Data"},"1729641600":{"timestamp":1729641600,"cssClass":"api-nodata","message":"No Data"},"1729728000":{"timestamp":1729728000,"cssClass":"api-nodata","message":"No Data"},"1729814400":{"timestamp":1729814400,"cssClass":"api-nodata","message":"No Data"},"1729900800":{"timestamp":1729900800,"cssClass":"api-nodata","message":"No Data"},"1729987200":{"timestamp":1729987200,"cssClass":"api-nodata","message":"No Data"},"1730073600":{"timestamp":1730073600,"cssClass":"api-nodata","message":"No Data"},"1730160000":{"timestamp":1730160000,"cssClass":"api-nodata","message":"No Data"},"1730246400":{"timestamp":1730246400,"cssClass":"api-nodata","message":"No Data"},"1730332800":{"timestamp":1730332800,"cssClass":"api-nodata","message":"No Data"},"1730419200":{"timestamp":1730419200,"cssClass":"api-nodata","message":"No Data"},"1730505600":{"timestamp":1730505600,"cssClass":"api-nodata","message":"No Data"},"1730592000":{"timestamp":1730592000,"cssClass":"api-nodata","message":"No Data"},"1730678400":{"timestamp":1730678400,"cssClass":"api-nodata","message":"No Data"},"1730764800":{"timestamp":1730764800,"cssClass":"api-nodata","message":"No Data"},"1730851200":{"timestamp":1730851200,"cssClass":"api-nodata","message":"No Data"},"1730937600":{"timestamp":1730937600,"cssClass":"api-nodata","message":"No Data"},"1731024000":{"timestamp":1731024000,"cssClass":"api-nodata","message":"No Data"},"1731110400":{"timestamp":1731110400,"cssClass":"api-nodata","message":"No Data"},"1731196800":{"timestamp":1731196800,"cssClass":"api-nodata","message":"No Data"},"1731283200":{"timestamp":1731283200,"cssClass":"api-nodata","message":"No Data"},"1731369600":{"timestamp":1731369600,"cssClass":"api-up","message":"Status OK"}},"uptime0Day":"100","uptime90Day":"100","dailyUps":104,"dailyDown":0,"dailyDegraded":0}
diff --git a/database/google-search.0day.utc.json b/database/google-search.0day.utc.json
deleted file mode 100644
index e38930cb..00000000
--- a/database/google-search.0day.utc.json
+++ /dev/null
@@ -1,867 +0,0 @@
-{
- "1731379920": {
- "status": "UP",
- "latency": 285,
- "type": "realtime"
- },
- "1731379980": {
- "status": "UP",
- "latency": 292,
- "type": "realtime"
- },
- "1731380040": {
- "status": "UP",
- "latency": 318,
- "type": "realtime"
- },
- "1731380100": {
- "status": "UP",
- "latency": 182,
- "type": "realtime"
- },
- "1731380160": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731380220": {
- "status": "UP",
- "latency": 174,
- "type": "realtime"
- },
- "1731380280": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731380340": {
- "status": "UP",
- "latency": 187,
- "type": "realtime"
- },
- "1731381300": {
- "status": "UP",
- "latency": 468,
- "type": "realtime"
- },
- "1731381360": {
- "status": "UP",
- "latency": 197,
- "type": "realtime"
- },
- "1731382260": {
- "status": "UP",
- "latency": 389,
- "type": "realtime"
- },
- "1731382320": {
- "status": "UP",
- "latency": 357,
- "type": "realtime"
- },
- "1731383160": {
- "status": "UP",
- "latency": 661,
- "type": "realtime"
- },
- "1731383220": {
- "status": "UP",
- "latency": 257,
- "type": "realtime"
- },
- "1731383280": {
- "status": "UP",
- "latency": 948,
- "type": "realtime"
- },
- "1731383340": {
- "status": "UP",
- "latency": 204,
- "type": "realtime"
- },
- "1731383700": {
- "status": "UP",
- "latency": 550,
- "type": "realtime"
- },
- "1731383760": {
- "status": "UP",
- "latency": 262,
- "type": "realtime"
- },
- "1731384720": {
- "status": "UP",
- "latency": 873,
- "type": "realtime"
- },
- "1731384780": {
- "status": "UP",
- "latency": 479,
- "type": "realtime"
- },
- "1731384840": {
- "status": "UP",
- "latency": 398,
- "type": "realtime"
- },
- "1731384900": {
- "status": "UP",
- "latency": 321,
- "type": "realtime"
- },
- "1731384960": {
- "status": "UP",
- "latency": 170,
- "type": "realtime"
- },
- "1731385020": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731385080": {
- "status": "UP",
- "latency": 189,
- "type": "realtime"
- },
- "1731385140": {
- "status": "UP",
- "latency": 175,
- "type": "realtime"
- },
- "1731385200": {
- "status": "UP",
- "latency": 190,
- "type": "realtime"
- },
- "1731385260": {
- "status": "UP",
- "latency": 335,
- "type": "realtime"
- },
- "1731385320": {
- "status": "UP",
- "latency": 697,
- "type": "realtime"
- },
- "1731385440": {
- "status": "UP",
- "latency": 1998,
- "type": "realtime"
- },
- "1731385560": {
- "status": "UP",
- "latency": 637,
- "type": "realtime"
- },
- "1731385620": {
- "status": "UP",
- "latency": 652,
- "type": "realtime"
- },
- "1731385680": {
- "status": "UP",
- "latency": 669,
- "type": "realtime"
- },
- "1731385740": {
- "status": "UP",
- "latency": 694,
- "type": "realtime"
- },
- "1731385800": {
- "status": "UP",
- "latency": 654,
- "type": "realtime"
- },
- "1731385860": {
- "status": "UP",
- "latency": 620,
- "type": "realtime"
- },
- "1731385920": {
- "status": "UP",
- "latency": 693,
- "type": "realtime"
- },
- "1731385980": {
- "status": "UP",
- "latency": 524,
- "type": "realtime"
- },
- "1731386040": {
- "status": "UP",
- "latency": 1840,
- "type": "realtime"
- },
- "1731386100": {
- "status": "UP",
- "latency": 669,
- "type": "realtime"
- },
- "1731386160": {
- "status": "UP",
- "latency": 646,
- "type": "realtime"
- },
- "1731386220": {
- "status": "UP",
- "latency": 1486,
- "type": "realtime"
- },
- "1731386280": {
- "status": "UP",
- "latency": 1003,
- "type": "realtime"
- },
- "1731386340": {
- "status": "UP",
- "latency": 612,
- "type": "realtime"
- },
- "1731386400": {
- "status": "UP",
- "latency": 720,
- "type": "realtime"
- },
- "1731386460": {
- "status": "UP",
- "latency": 392,
- "type": "realtime"
- },
- "1731386520": {
- "status": "UP",
- "latency": 400,
- "type": "realtime"
- },
- "1731386580": {
- "status": "UP",
- "latency": 365,
- "type": "realtime"
- },
- "1731386640": {
- "status": "UP",
- "latency": 372,
- "type": "realtime"
- },
- "1731386700": {
- "status": "UP",
- "latency": 431,
- "type": "realtime"
- },
- "1731386760": {
- "status": "UP",
- "latency": 429,
- "type": "realtime"
- },
- "1731386880": {
- "status": "UP",
- "latency": 400,
- "type": "realtime"
- },
- "1731386940": {
- "status": "UP",
- "latency": 397,
- "type": "realtime"
- },
- "1731389640": {
- "status": "UP",
- "latency": 687,
- "type": "realtime"
- },
- "1731389700": {
- "status": "UP",
- "latency": 1072,
- "type": "realtime"
- },
- "1731390480": {
- "status": "UP",
- "latency": 477,
- "type": "realtime"
- },
- "1731390540": {
- "status": "UP",
- "latency": 446,
- "type": "realtime"
- },
- "1731390720": {
- "status": "UP",
- "latency": 534,
- "type": "realtime"
- },
- "1731390780": {
- "status": "UP",
- "latency": 565,
- "type": "realtime"
- },
- "1731390900": {
- "status": "UP",
- "latency": 449,
- "type": "realtime"
- },
- "1731390960": {
- "status": "UP",
- "latency": 562,
- "type": "realtime"
- },
- "1731391020": {
- "status": "UP",
- "latency": 1385,
- "type": "realtime"
- },
- "1731391080": {
- "status": "UP",
- "latency": 371,
- "type": "realtime"
- },
- "1731391140": {
- "status": "UP",
- "latency": 414,
- "type": "realtime"
- },
- "1731391200": {
- "status": "UP",
- "latency": 420,
- "type": "realtime"
- },
- "1731391260": {
- "status": "UP",
- "latency": 433,
- "type": "realtime"
- },
- "1731391320": {
- "status": "UP",
- "latency": 447,
- "type": "realtime"
- },
- "1731391380": {
- "status": "UP",
- "latency": 386,
- "type": "realtime"
- },
- "1731391680": {
- "status": "UP",
- "latency": 523,
- "type": "realtime"
- },
- "1731391920": {
- "status": "UP",
- "latency": 538,
- "type": "realtime"
- },
- "1731391980": {
- "status": "UP",
- "latency": 545,
- "type": "realtime"
- },
- "1731392040": {
- "status": "UP",
- "latency": 566,
- "type": "realtime"
- },
- "1731392100": {
- "status": "UP",
- "latency": 564,
- "type": "realtime"
- },
- "1731392160": {
- "status": "UP",
- "latency": 551,
- "type": "realtime"
- },
- "1731392220": {
- "status": "UP",
- "latency": 758,
- "type": "realtime"
- },
- "1731392280": {
- "status": "UP",
- "latency": 562,
- "type": "realtime"
- },
- "1731392340": {
- "status": "UP",
- "latency": 579,
- "type": "realtime"
- },
- "1731392400": {
- "status": "UP",
- "latency": 529,
- "type": "realtime"
- },
- "1731392460": {
- "status": "UP",
- "latency": 401,
- "type": "realtime"
- },
- "1731392520": {
- "status": "UP",
- "latency": 378,
- "type": "realtime"
- },
- "1731392580": {
- "status": "UP",
- "latency": 398,
- "type": "realtime"
- },
- "1731392640": {
- "status": "UP",
- "latency": 395,
- "type": "realtime"
- },
- "1731392700": {
- "status": "UP",
- "latency": 556,
- "type": "realtime"
- },
- "1731392760": {
- "status": "UP",
- "latency": 407,
- "type": "realtime"
- },
- "1731392820": {
- "status": "UP",
- "latency": 439,
- "type": "realtime"
- },
- "1731392880": {
- "status": "UP",
- "latency": 448,
- "type": "realtime"
- },
- "1731392940": {
- "status": "UP",
- "latency": 439,
- "type": "realtime"
- },
- "1731393000": {
- "status": "UP",
- "latency": 415,
- "type": "realtime"
- },
- "1731393060": {
- "status": "UP",
- "latency": 481,
- "type": "realtime"
- },
- "1731393120": {
- "status": "UP",
- "latency": 535,
- "type": "realtime"
- },
- "1731393180": {
- "status": "UP",
- "latency": 591,
- "type": "realtime"
- },
- "1731393240": {
- "status": "UP",
- "latency": 572,
- "type": "realtime"
- },
- "1731393300": {
- "status": "UP",
- "latency": 632,
- "type": "realtime"
- },
- "1731393360": {
- "status": "UP",
- "latency": 533,
- "type": "realtime"
- },
- "1731393420": {
- "status": "UP",
- "latency": 706,
- "type": "realtime"
- },
- "1731393480": {
- "status": "UP",
- "latency": 558,
- "type": "realtime"
- },
- "1731393540": {
- "status": "UP",
- "latency": 553,
- "type": "realtime"
- },
- "1731393600": {
- "status": "UP",
- "latency": 523,
- "type": "realtime"
- },
- "1731393660": {
- "status": "UP",
- "latency": 606,
- "type": "realtime"
- },
- "1731393720": {
- "status": "UP",
- "latency": 566,
- "type": "realtime"
- },
- "1731393780": {
- "status": "UP",
- "latency": 554,
- "type": "realtime"
- },
- "1731393840": {
- "status": "UP",
- "latency": 593,
- "type": "realtime"
- },
- "1731393900": {
- "status": "UP",
- "latency": 619,
- "type": "realtime"
- },
- "1731393960": {
- "status": "UP",
- "latency": 594,
- "type": "realtime"
- },
- "1731394020": {
- "status": "UP",
- "latency": 412,
- "type": "realtime"
- },
- "1731394080": {
- "status": "UP",
- "latency": 439,
- "type": "realtime"
- },
- "1731394140": {
- "status": "UP",
- "latency": 426,
- "type": "realtime"
- },
- "1731422160": {
- "status": "UP",
- "latency": 287,
- "type": "realtime"
- },
- "1731422220": {
- "status": "UP",
- "latency": 368,
- "type": "realtime"
- },
- "1731422280": {
- "status": "UP",
- "latency": 306,
- "type": "realtime"
- },
- "1731422340": {
- "status": "UP",
- "latency": 339,
- "type": "realtime"
- },
- "1731422400": {
- "status": "UP",
- "latency": 402,
- "type": "realtime"
- },
- "1731422460": {
- "status": "UP",
- "latency": 338,
- "type": "realtime"
- },
- "1731422520": {
- "status": "UP",
- "latency": 688,
- "type": "realtime"
- },
- "1731422580": {
- "status": "UP",
- "latency": 454,
- "type": "realtime"
- },
- "1731422640": {
- "status": "UP",
- "latency": 371,
- "type": "realtime"
- },
- "1731422700": {
- "status": "UP",
- "latency": 319,
- "type": "realtime"
- },
- "1731422760": {
- "status": "UP",
- "latency": 599,
- "type": "realtime"
- },
- "1731423600": {
- "status": "UP",
- "latency": 578,
- "type": "realtime"
- },
- "1731423660": {
- "status": "UP",
- "latency": 220,
- "type": "realtime"
- },
- "1731423720": {
- "status": "UP",
- "latency": 207,
- "type": "realtime"
- },
- "1731423780": {
- "status": "UP",
- "latency": 312,
- "type": "realtime"
- },
- "1731423840": {
- "status": "UP",
- "latency": 344,
- "type": "realtime"
- },
- "1731423900": {
- "status": "UP",
- "latency": 328,
- "type": "realtime"
- },
- "1731423960": {
- "status": "UP",
- "latency": 362,
- "type": "realtime"
- },
- "1731424020": {
- "status": "UP",
- "latency": 308,
- "type": "realtime"
- },
- "1731424080": {
- "status": "UP",
- "latency": 348,
- "type": "realtime"
- },
- "1731424140": {
- "status": "UP",
- "latency": 318,
- "type": "realtime"
- },
- "1731424200": {
- "status": "UP",
- "latency": 401,
- "type": "realtime"
- },
- "1731424440": {
- "status": "UP",
- "latency": 335,
- "type": "realtime"
- },
- "1731424500": {
- "status": "UP",
- "latency": 407,
- "type": "realtime"
- },
- "1731424560": {
- "status": "UP",
- "latency": 231,
- "type": "realtime"
- },
- "1731424620": {
- "status": "UP",
- "latency": 290,
- "type": "realtime"
- },
- "1731424680": {
- "status": "UP",
- "latency": 357,
- "type": "realtime"
- },
- "1731424740": {
- "status": "UP",
- "latency": 400,
- "type": "realtime"
- },
- "1731424800": {
- "status": "UP",
- "latency": 313,
- "type": "realtime"
- },
- "1731424860": {
- "status": "UP",
- "latency": 325,
- "type": "realtime"
- },
- "1731424920": {
- "status": "UP",
- "latency": 183,
- "type": "realtime"
- },
- "1731424980": {
- "status": "UP",
- "latency": 227,
- "type": "realtime"
- },
- "1731425040": {
- "status": "UP",
- "latency": 179,
- "type": "realtime"
- },
- "1731425100": {
- "status": "UP",
- "latency": 219,
- "type": "realtime"
- },
- "1731425160": {
- "status": "UP",
- "latency": 279,
- "type": "realtime"
- },
- "1731425220": {
- "status": "UP",
- "latency": 200,
- "type": "realtime"
- },
- "1731425280": {
- "status": "UP",
- "latency": 197,
- "type": "realtime"
- },
- "1731425340": {
- "status": "UP",
- "latency": 216,
- "type": "realtime"
- },
- "1731425400": {
- "status": "UP",
- "latency": 198,
- "type": "realtime"
- },
- "1731425460": {
- "status": "UP",
- "latency": 211,
- "type": "realtime"
- },
- "1731425520": {
- "status": "UP",
- "latency": 198,
- "type": "realtime"
- },
- "1731425580": {
- "status": "UP",
- "latency": 200,
- "type": "realtime"
- },
- "1731425640": {
- "status": "UP",
- "latency": 214,
- "type": "realtime"
- },
- "1731425700": {
- "status": "UP",
- "latency": 232,
- "type": "realtime"
- },
- "1731425760": {
- "status": "UP",
- "latency": 230,
- "type": "realtime"
- },
- "1731425820": {
- "status": "UP",
- "latency": 194,
- "type": "realtime"
- },
- "1731425880": {
- "status": "UP",
- "latency": 206,
- "type": "realtime"
- },
- "1731425940": {
- "status": "UP",
- "latency": 194,
- "type": "realtime"
- },
- "1731426000": {
- "status": "UP",
- "latency": 196,
- "type": "realtime"
- },
- "1731426060": {
- "status": "UP",
- "latency": 194,
- "type": "realtime"
- },
- "1731426120": {
- "status": "UP",
- "latency": 204,
- "type": "realtime"
- },
- "1731426180": {
- "status": "UP",
- "latency": 491,
- "type": "realtime"
- },
- "1731426240": {
- "status": "UP",
- "latency": 332,
- "type": "realtime"
- },
- "1731426300": {
- "status": "UP",
- "latency": 310,
- "type": "realtime"
- },
- "1731426360": {
- "status": "UP",
- "latency": 304,
- "type": "realtime"
- },
- "1731426420": {
- "status": "UP",
- "latency": 362,
- "type": "realtime"
- },
- "1731426480": {
- "status": "UP",
- "latency": 1229,
- "type": "realtime"
- },
- "1731426540": {
- "status": "UP",
- "latency": 211,
- "type": "realtime"
- },
- "1731426600": {
- "status": "UP",
- "latency": 179,
- "type": "realtime"
- },
- "1731426660": {
- "status": "UP",
- "latency": 208,
- "type": "realtime"
- },
- "1731426720": {
- "status": "UP",
- "latency": 217,
- "type": "realtime"
- },
- "1731426780": {
- "status": "UP",
- "latency": 218,
- "type": "realtime"
- },
- "1731426840": {
- "status": "UP",
- "latency": 196,
- "type": "realtime"
- },
- "1731426900": {
- "status": "UP",
- "latency": 229,
- "type": "realtime"
- },
- "1731426960": {
- "status": "UP",
- "latency": 258,
- "type": "realtime"
- },
- "1731427020": {
- "status": "UP",
- "latency": 203,
- "type": "realtime"
- }
-}
\ No newline at end of file
diff --git a/database/google-search.90day.utc.json b/database/google-search.90day.utc.json
deleted file mode 100644
index 9d2b68cf..00000000
--- a/database/google-search.90day.utc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"_90Day":{"1723593600":{"timestamp":1723593600,"cssClass":"api-nodata","message":"No Data"},"1723680000":{"timestamp":1723680000,"cssClass":"api-nodata","message":"No Data"},"1723766400":{"timestamp":1723766400,"cssClass":"api-nodata","message":"No Data"},"1723852800":{"timestamp":1723852800,"cssClass":"api-nodata","message":"No Data"},"1723939200":{"timestamp":1723939200,"cssClass":"api-nodata","message":"No Data"},"1724025600":{"timestamp":1724025600,"cssClass":"api-nodata","message":"No Data"},"1724112000":{"timestamp":1724112000,"cssClass":"api-nodata","message":"No Data"},"1724198400":{"timestamp":1724198400,"cssClass":"api-nodata","message":"No Data"},"1724284800":{"timestamp":1724284800,"cssClass":"api-nodata","message":"No Data"},"1724371200":{"timestamp":1724371200,"cssClass":"api-nodata","message":"No Data"},"1724457600":{"timestamp":1724457600,"cssClass":"api-nodata","message":"No Data"},"1724544000":{"timestamp":1724544000,"cssClass":"api-nodata","message":"No Data"},"1724630400":{"timestamp":1724630400,"cssClass":"api-nodata","message":"No Data"},"1724716800":{"timestamp":1724716800,"cssClass":"api-nodata","message":"No Data"},"1724803200":{"timestamp":1724803200,"cssClass":"api-nodata","message":"No Data"},"1724889600":{"timestamp":1724889600,"cssClass":"api-nodata","message":"No Data"},"1724976000":{"timestamp":1724976000,"cssClass":"api-nodata","message":"No Data"},"1725062400":{"timestamp":1725062400,"cssClass":"api-nodata","message":"No Data"},"1725148800":{"timestamp":1725148800,"cssClass":"api-nodata","message":"No Data"},"1725235200":{"timestamp":1725235200,"cssClass":"api-nodata","message":"No Data"},"1725321600":{"timestamp":1725321600,"cssClass":"api-nodata","message":"No Data"},"1725408000":{"timestamp":1725408000,"cssClass":"api-nodata","message":"No Data"},"1725494400":{"timestamp":1725494400,"cssClass":"api-nodata","message":"No Data"},"1725580800":{"timestamp":1725580800,"cssClass":"api-nodata","message":"No Data"},"1725667200":{"timestamp":1725667200,"cssClass":"api-nodata","message":"No Data"},"1725753600":{"timestamp":1725753600,"cssClass":"api-nodata","message":"No Data"},"1725840000":{"timestamp":1725840000,"cssClass":"api-nodata","message":"No Data"},"1725926400":{"timestamp":1725926400,"cssClass":"api-nodata","message":"No Data"},"1726012800":{"timestamp":1726012800,"cssClass":"api-nodata","message":"No Data"},"1726099200":{"timestamp":1726099200,"cssClass":"api-nodata","message":"No Data"},"1726185600":{"timestamp":1726185600,"cssClass":"api-nodata","message":"No Data"},"1726272000":{"timestamp":1726272000,"cssClass":"api-nodata","message":"No Data"},"1726358400":{"timestamp":1726358400,"cssClass":"api-nodata","message":"No Data"},"1726444800":{"timestamp":1726444800,"cssClass":"api-nodata","message":"No Data"},"1726531200":{"timestamp":1726531200,"cssClass":"api-nodata","message":"No Data"},"1726617600":{"timestamp":1726617600,"cssClass":"api-nodata","message":"No Data"},"1726704000":{"timestamp":1726704000,"cssClass":"api-nodata","message":"No Data"},"1726790400":{"timestamp":1726790400,"cssClass":"api-nodata","message":"No Data"},"1726876800":{"timestamp":1726876800,"cssClass":"api-nodata","message":"No Data"},"1726963200":{"timestamp":1726963200,"cssClass":"api-nodata","message":"No Data"},"1727049600":{"timestamp":1727049600,"cssClass":"api-nodata","message":"No Data"},"1727136000":{"timestamp":1727136000,"cssClass":"api-nodata","message":"No Data"},"1727222400":{"timestamp":1727222400,"cssClass":"api-nodata","message":"No Data"},"1727308800":{"timestamp":1727308800,"cssClass":"api-nodata","message":"No Data"},"1727395200":{"timestamp":1727395200,"cssClass":"api-nodata","message":"No Data"},"1727481600":{"timestamp":1727481600,"cssClass":"api-nodata","message":"No Data"},"1727568000":{"timestamp":1727568000,"cssClass":"api-nodata","message":"No Data"},"1727654400":{"timestamp":1727654400,"cssClass":"api-nodata","message":"No Data"},"1727740800":{"timestamp":1727740800,"cssClass":"api-nodata","message":"No Data"},"1727827200":{"timestamp":1727827200,"cssClass":"api-nodata","message":"No Data"},"1727913600":{"timestamp":1727913600,"cssClass":"api-nodata","message":"No Data"},"1728000000":{"timestamp":1728000000,"cssClass":"api-nodata","message":"No Data"},"1728086400":{"timestamp":1728086400,"cssClass":"api-nodata","message":"No Data"},"1728172800":{"timestamp":1728172800,"cssClass":"api-nodata","message":"No Data"},"1728259200":{"timestamp":1728259200,"cssClass":"api-nodata","message":"No Data"},"1728345600":{"timestamp":1728345600,"cssClass":"api-nodata","message":"No Data"},"1728432000":{"timestamp":1728432000,"cssClass":"api-nodata","message":"No Data"},"1728518400":{"timestamp":1728518400,"cssClass":"api-nodata","message":"No Data"},"1728604800":{"timestamp":1728604800,"cssClass":"api-nodata","message":"No Data"},"1728691200":{"timestamp":1728691200,"cssClass":"api-nodata","message":"No Data"},"1728777600":{"timestamp":1728777600,"cssClass":"api-nodata","message":"No Data"},"1728864000":{"timestamp":1728864000,"cssClass":"api-nodata","message":"No Data"},"1728950400":{"timestamp":1728950400,"cssClass":"api-nodata","message":"No Data"},"1729036800":{"timestamp":1729036800,"cssClass":"api-nodata","message":"No Data"},"1729123200":{"timestamp":1729123200,"cssClass":"api-nodata","message":"No Data"},"1729209600":{"timestamp":1729209600,"cssClass":"api-nodata","message":"No Data"},"1729296000":{"timestamp":1729296000,"cssClass":"api-nodata","message":"No Data"},"1729382400":{"timestamp":1729382400,"cssClass":"api-nodata","message":"No Data"},"1729468800":{"timestamp":1729468800,"cssClass":"api-nodata","message":"No Data"},"1729555200":{"timestamp":1729555200,"cssClass":"api-nodata","message":"No Data"},"1729641600":{"timestamp":1729641600,"cssClass":"api-nodata","message":"No Data"},"1729728000":{"timestamp":1729728000,"cssClass":"api-nodata","message":"No Data"},"1729814400":{"timestamp":1729814400,"cssClass":"api-nodata","message":"No Data"},"1729900800":{"timestamp":1729900800,"cssClass":"api-nodata","message":"No Data"},"1729987200":{"timestamp":1729987200,"cssClass":"api-nodata","message":"No Data"},"1730073600":{"timestamp":1730073600,"cssClass":"api-nodata","message":"No Data"},"1730160000":{"timestamp":1730160000,"cssClass":"api-nodata","message":"No Data"},"1730246400":{"timestamp":1730246400,"cssClass":"api-nodata","message":"No Data"},"1730332800":{"timestamp":1730332800,"cssClass":"api-nodata","message":"No Data"},"1730419200":{"timestamp":1730419200,"cssClass":"api-nodata","message":"No Data"},"1730505600":{"timestamp":1730505600,"cssClass":"api-nodata","message":"No Data"},"1730592000":{"timestamp":1730592000,"cssClass":"api-nodata","message":"No Data"},"1730678400":{"timestamp":1730678400,"cssClass":"api-nodata","message":"No Data"},"1730764800":{"timestamp":1730764800,"cssClass":"api-nodata","message":"No Data"},"1730851200":{"timestamp":1730851200,"cssClass":"api-nodata","message":"No Data"},"1730937600":{"timestamp":1730937600,"cssClass":"api-nodata","message":"No Data"},"1731024000":{"timestamp":1731024000,"cssClass":"api-nodata","message":"No Data"},"1731110400":{"timestamp":1731110400,"cssClass":"api-nodata","message":"No Data"},"1731196800":{"timestamp":1731196800,"cssClass":"api-nodata","message":"No Data"},"1731283200":{"timestamp":1731283200,"cssClass":"api-nodata","message":"No Data"},"1731369600":{"timestamp":1731369600,"cssClass":"api-up","message":"Status OK"}},"uptime0Day":"100","uptime90Day":"100","dailyUps":172,"dailyDown":0,"dailyDegraded":0}
diff --git a/database/monitors.json b/database/monitors.json
deleted file mode 100644
index cc9fdfa3..00000000
--- a/database/monitors.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "name": "OkBookmarksX",
- "description": "Stop forgetting about your bookmarks https://okbookmarks.com/",
- "tag": "okbookmarks",
- "image": "https://okbookmarks.com/app/mybookmark.png",
- "api": {
- "method": "GET",
- "url": "https://okbookmarks.com/",
- "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
- "timeout": 10000
- },
- "folderName": "okbookmarksx",
- "dayDegradedMinimumCount": 1,
- "dayDownMinimumCount": 1,
- "includeDegradedInDowntime": false,
- "path0Day": "./database/okbookmarksx.0day.utc.json",
- "path90Day": "./database/okbookmarksx.90day.utc.json",
- "hasAPI": true
- },
- {
- "name": "Google Search",
- "description": "Search the world's information, including webpages, images, videos and more. https://www.google.com/webhp",
- "tag": "google-search",
- "image": "/google.png",
- "api": {
- "method": "GET",
- "url": "https://www.google.com/webhp",
- "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
- "timeout": 10000
- },
- "folderName": "google-search",
- "dayDegradedMinimumCount": 1,
- "dayDownMinimumCount": 1,
- "includeDegradedInDowntime": false,
- "path0Day": "./database/google-search.0day.utc.json",
- "path90Day": "./database/google-search.90day.utc.json",
- "hasAPI": true
- },
- {
- "name": "Earth",
- "description": "Our blue planet",
- "tag": "earth",
- "defaultStatus": "UP",
- "image": "/earth.png",
- "folderName": "earth",
- "dayDegradedMinimumCount": 1,
- "dayDownMinimumCount": 1,
- "includeDegradedInDowntime": false,
- "path0Day": "./database/earth.0day.utc.json",
- "path90Day": "./database/earth.90day.utc.json",
- "hasAPI": false
- }
-]
\ No newline at end of file
diff --git a/database/okbookmarks.0day.utc.json b/database/okbookmarks.0day.utc.json
deleted file mode 100644
index bd409f6c..00000000
--- a/database/okbookmarks.0day.utc.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "1731342480": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731342540": {
- "status": "UP",
- "latency": 568,
- "type": "realtime"
- },
- "1731342600": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731342660": {
- "status": "UP",
- "latency": 320,
- "type": "realtime"
- },
- "1731342720": {
- "status": "UP",
- "latency": 391,
- "type": "realtime"
- },
- "1731342780": {
- "status": "UP",
- "latency": 174,
- "type": "realtime"
- },
- "1731342840": {
- "status": "UP",
- "latency": 200,
- "type": "realtime"
- },
- "1731342900": {
- "status": "UP",
- "latency": 254,
- "type": "realtime"
- },
- "1731342960": {
- "status": "UP",
- "latency": 185,
- "type": "realtime"
- },
- "1731343020": {
- "status": "UP",
- "latency": 203,
- "type": "realtime"
- },
- "1731343080": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731343140": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731343200": {
- "status": "UP",
- "latency": 154,
- "type": "realtime"
- },
- "1731343260": {
- "status": "UP",
- "latency": 145,
- "type": "realtime"
- },
- "1731343320": {
- "status": "UP",
- "latency": 159,
- "type": "realtime"
- },
- "1731343380": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- }
-}
diff --git a/database/okbookmarks.90day.utc.json b/database/okbookmarks.90day.utc.json
deleted file mode 100644
index 215bdc1d..00000000
--- a/database/okbookmarks.90day.utc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"_90Day":{"1723507200":{"timestamp":1723507200,"cssClass":"api-nodata","message":"No Data"},"1723593600":{"timestamp":1723593600,"cssClass":"api-nodata","message":"No Data"},"1723680000":{"timestamp":1723680000,"cssClass":"api-nodata","message":"No Data"},"1723766400":{"timestamp":1723766400,"cssClass":"api-nodata","message":"No Data"},"1723852800":{"timestamp":1723852800,"cssClass":"api-nodata","message":"No Data"},"1723939200":{"timestamp":1723939200,"cssClass":"api-nodata","message":"No Data"},"1724025600":{"timestamp":1724025600,"cssClass":"api-nodata","message":"No Data"},"1724112000":{"timestamp":1724112000,"cssClass":"api-nodata","message":"No Data"},"1724198400":{"timestamp":1724198400,"cssClass":"api-nodata","message":"No Data"},"1724284800":{"timestamp":1724284800,"cssClass":"api-nodata","message":"No Data"},"1724371200":{"timestamp":1724371200,"cssClass":"api-nodata","message":"No Data"},"1724457600":{"timestamp":1724457600,"cssClass":"api-nodata","message":"No Data"},"1724544000":{"timestamp":1724544000,"cssClass":"api-nodata","message":"No Data"},"1724630400":{"timestamp":1724630400,"cssClass":"api-nodata","message":"No Data"},"1724716800":{"timestamp":1724716800,"cssClass":"api-nodata","message":"No Data"},"1724803200":{"timestamp":1724803200,"cssClass":"api-nodata","message":"No Data"},"1724889600":{"timestamp":1724889600,"cssClass":"api-nodata","message":"No Data"},"1724976000":{"timestamp":1724976000,"cssClass":"api-nodata","message":"No Data"},"1725062400":{"timestamp":1725062400,"cssClass":"api-nodata","message":"No Data"},"1725148800":{"timestamp":1725148800,"cssClass":"api-nodata","message":"No Data"},"1725235200":{"timestamp":1725235200,"cssClass":"api-nodata","message":"No Data"},"1725321600":{"timestamp":1725321600,"cssClass":"api-nodata","message":"No Data"},"1725408000":{"timestamp":1725408000,"cssClass":"api-nodata","message":"No Data"},"1725494400":{"timestamp":1725494400,"cssClass":"api-nodata","message":"No Data"},"1725580800":{"timestamp":1725580800,"cssClass":"api-nodata","message":"No Data"},"1725667200":{"timestamp":1725667200,"cssClass":"api-nodata","message":"No Data"},"1725753600":{"timestamp":1725753600,"cssClass":"api-nodata","message":"No Data"},"1725840000":{"timestamp":1725840000,"cssClass":"api-nodata","message":"No Data"},"1725926400":{"timestamp":1725926400,"cssClass":"api-nodata","message":"No Data"},"1726012800":{"timestamp":1726012800,"cssClass":"api-nodata","message":"No Data"},"1726099200":{"timestamp":1726099200,"cssClass":"api-nodata","message":"No Data"},"1726185600":{"timestamp":1726185600,"cssClass":"api-nodata","message":"No Data"},"1726272000":{"timestamp":1726272000,"cssClass":"api-nodata","message":"No Data"},"1726358400":{"timestamp":1726358400,"cssClass":"api-nodata","message":"No Data"},"1726444800":{"timestamp":1726444800,"cssClass":"api-nodata","message":"No Data"},"1726531200":{"timestamp":1726531200,"cssClass":"api-nodata","message":"No Data"},"1726617600":{"timestamp":1726617600,"cssClass":"api-nodata","message":"No Data"},"1726704000":{"timestamp":1726704000,"cssClass":"api-nodata","message":"No Data"},"1726790400":{"timestamp":1726790400,"cssClass":"api-nodata","message":"No Data"},"1726876800":{"timestamp":1726876800,"cssClass":"api-nodata","message":"No Data"},"1726963200":{"timestamp":1726963200,"cssClass":"api-nodata","message":"No Data"},"1727049600":{"timestamp":1727049600,"cssClass":"api-nodata","message":"No Data"},"1727136000":{"timestamp":1727136000,"cssClass":"api-nodata","message":"No Data"},"1727222400":{"timestamp":1727222400,"cssClass":"api-nodata","message":"No Data"},"1727308800":{"timestamp":1727308800,"cssClass":"api-nodata","message":"No Data"},"1727395200":{"timestamp":1727395200,"cssClass":"api-nodata","message":"No Data"},"1727481600":{"timestamp":1727481600,"cssClass":"api-nodata","message":"No Data"},"1727568000":{"timestamp":1727568000,"cssClass":"api-nodata","message":"No Data"},"1727654400":{"timestamp":1727654400,"cssClass":"api-nodata","message":"No Data"},"1727740800":{"timestamp":1727740800,"cssClass":"api-nodata","message":"No Data"},"1727827200":{"timestamp":1727827200,"cssClass":"api-nodata","message":"No Data"},"1727913600":{"timestamp":1727913600,"cssClass":"api-nodata","message":"No Data"},"1728000000":{"timestamp":1728000000,"cssClass":"api-nodata","message":"No Data"},"1728086400":{"timestamp":1728086400,"cssClass":"api-nodata","message":"No Data"},"1728172800":{"timestamp":1728172800,"cssClass":"api-nodata","message":"No Data"},"1728259200":{"timestamp":1728259200,"cssClass":"api-nodata","message":"No Data"},"1728345600":{"timestamp":1728345600,"cssClass":"api-nodata","message":"No Data"},"1728432000":{"timestamp":1728432000,"cssClass":"api-nodata","message":"No Data"},"1728518400":{"timestamp":1728518400,"cssClass":"api-nodata","message":"No Data"},"1728604800":{"timestamp":1728604800,"cssClass":"api-nodata","message":"No Data"},"1728691200":{"timestamp":1728691200,"cssClass":"api-nodata","message":"No Data"},"1728777600":{"timestamp":1728777600,"cssClass":"api-nodata","message":"No Data"},"1728864000":{"timestamp":1728864000,"cssClass":"api-nodata","message":"No Data"},"1728950400":{"timestamp":1728950400,"cssClass":"api-nodata","message":"No Data"},"1729036800":{"timestamp":1729036800,"cssClass":"api-nodata","message":"No Data"},"1729123200":{"timestamp":1729123200,"cssClass":"api-nodata","message":"No Data"},"1729209600":{"timestamp":1729209600,"cssClass":"api-nodata","message":"No Data"},"1729296000":{"timestamp":1729296000,"cssClass":"api-nodata","message":"No Data"},"1729382400":{"timestamp":1729382400,"cssClass":"api-nodata","message":"No Data"},"1729468800":{"timestamp":1729468800,"cssClass":"api-nodata","message":"No Data"},"1729555200":{"timestamp":1729555200,"cssClass":"api-nodata","message":"No Data"},"1729641600":{"timestamp":1729641600,"cssClass":"api-nodata","message":"No Data"},"1729728000":{"timestamp":1729728000,"cssClass":"api-nodata","message":"No Data"},"1729814400":{"timestamp":1729814400,"cssClass":"api-nodata","message":"No Data"},"1729900800":{"timestamp":1729900800,"cssClass":"api-nodata","message":"No Data"},"1729987200":{"timestamp":1729987200,"cssClass":"api-nodata","message":"No Data"},"1730073600":{"timestamp":1730073600,"cssClass":"api-nodata","message":"No Data"},"1730160000":{"timestamp":1730160000,"cssClass":"api-nodata","message":"No Data"},"1730246400":{"timestamp":1730246400,"cssClass":"api-nodata","message":"No Data"},"1730332800":{"timestamp":1730332800,"cssClass":"api-nodata","message":"No Data"},"1730419200":{"timestamp":1730419200,"cssClass":"api-nodata","message":"No Data"},"1730505600":{"timestamp":1730505600,"cssClass":"api-nodata","message":"No Data"},"1730592000":{"timestamp":1730592000,"cssClass":"api-nodata","message":"No Data"},"1730678400":{"timestamp":1730678400,"cssClass":"api-nodata","message":"No Data"},"1730764800":{"timestamp":1730764800,"cssClass":"api-nodata","message":"No Data"},"1730851200":{"timestamp":1730851200,"cssClass":"api-nodata","message":"No Data"},"1730937600":{"timestamp":1730937600,"cssClass":"api-nodata","message":"No Data"},"1731024000":{"timestamp":1731024000,"cssClass":"api-nodata","message":"No Data"},"1731110400":{"timestamp":1731110400,"cssClass":"api-nodata","message":"No Data"},"1731196800":{"timestamp":1731196800,"cssClass":"api-nodata","message":"No Data"},"1731283200":{"timestamp":1731283200,"cssClass":"api-up","message":"Status OK"}},"uptime0Day":"100","uptime90Day":"100","dailyUps":16,"dailyDown":0,"dailyDegraded":0}
diff --git a/database/okbookmarksx.0day.utc.json b/database/okbookmarksx.0day.utc.json
deleted file mode 100644
index 5d941558..00000000
--- a/database/okbookmarksx.0day.utc.json
+++ /dev/null
@@ -1,1202 +0,0 @@
-{
- "1731344580": {
- "status": "UP",
- "latency": 168,
- "type": "realtime"
- },
- "1731344640": {
- "status": "UP",
- "latency": 174,
- "type": "realtime"
- },
- "1731344700": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731344760": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731344940": {
- "status": "UP",
- "latency": 167,
- "type": "realtime"
- },
- "1731345000": {
- "status": "UP",
- "latency": 177,
- "type": "realtime"
- },
- "1731345060": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731345120": {
- "status": "UP",
- "latency": 294,
- "type": "realtime"
- },
- "1731345180": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731345240": {
- "status": "UP",
- "latency": 151,
- "type": "realtime"
- },
- "1731345300": {
- "status": "UP",
- "latency": 160,
- "type": "realtime"
- },
- "1731345360": {
- "status": "UP",
- "latency": 193,
- "type": "realtime"
- },
- "1731345420": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- },
- "1731345480": {
- "status": "UP",
- "latency": 241,
- "type": "realtime"
- },
- "1731345540": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731345600": {
- "status": "UP",
- "latency": 230,
- "type": "realtime"
- },
- "1731345660": {
- "status": "UP",
- "latency": 187,
- "type": "realtime"
- },
- "1731345720": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731345780": {
- "status": "UP",
- "latency": 380,
- "type": "realtime"
- },
- "1731345840": {
- "status": "UP",
- "latency": 183,
- "type": "realtime"
- },
- "1731345900": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731345960": {
- "status": "UP",
- "latency": 191,
- "type": "realtime"
- },
- "1731346020": {
- "status": "UP",
- "latency": 167,
- "type": "realtime"
- },
- "1731346080": {
- "status": "UP",
- "latency": 190,
- "type": "realtime"
- },
- "1731346140": {
- "status": "UP",
- "latency": 199,
- "type": "realtime"
- },
- "1731346200": {
- "status": "UP",
- "latency": 613,
- "type": "realtime"
- },
- "1731346260": {
- "status": "UP",
- "latency": 436,
- "type": "realtime"
- },
- "1731346320": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- },
- "1731346380": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731346440": {
- "status": "UP",
- "latency": 357,
- "type": "realtime"
- },
- "1731346500": {
- "status": "UP",
- "latency": 175,
- "type": "realtime"
- },
- "1731346560": {
- "status": "UP",
- "latency": 223,
- "type": "realtime"
- },
- "1731346740": {
- "status": "UP",
- "latency": 187,
- "type": "realtime"
- },
- "1731346800": {
- "status": "UP",
- "latency": 228,
- "type": "realtime"
- },
- "1731346860": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731346920": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731346980": {
- "status": "UP",
- "latency": 207,
- "type": "realtime"
- },
- "1731347040": {
- "status": "UP",
- "latency": 173,
- "type": "realtime"
- },
- "1731347100": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731347160": {
- "status": "UP",
- "latency": 672,
- "type": "realtime"
- },
- "1731347220": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731347280": {
- "status": "UP",
- "latency": 196,
- "type": "realtime"
- },
- "1731347340": {
- "status": "UP",
- "latency": 247,
- "type": "realtime"
- },
- "1731347400": {
- "status": "UP",
- "latency": 167,
- "type": "realtime"
- },
- "1731347460": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731347520": {
- "status": "UP",
- "latency": 159,
- "type": "realtime"
- },
- "1731378660": {
- "status": "UP",
- "latency": 1221,
- "type": "realtime"
- },
- "1731378720": {
- "status": "UP",
- "latency": 157,
- "type": "realtime"
- },
- "1731378780": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731378840": {
- "status": "UP",
- "latency": 194,
- "type": "realtime"
- },
- "1731378900": {
- "status": "UP",
- "latency": 199,
- "type": "realtime"
- },
- "1731378960": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731379020": {
- "status": "UP",
- "latency": 151,
- "type": "realtime"
- },
- "1731379080": {
- "status": "UP",
- "latency": 160,
- "type": "realtime"
- },
- "1731379140": {
- "status": "UP",
- "latency": 141,
- "type": "realtime"
- },
- "1731379200": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731379260": {
- "status": "UP",
- "latency": 147,
- "type": "realtime"
- },
- "1731379320": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731379380": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731379440": {
- "status": "UP",
- "latency": 180,
- "type": "realtime"
- },
- "1731379500": {
- "status": "UP",
- "latency": 301,
- "type": "realtime"
- },
- "1731379560": {
- "status": "UP",
- "latency": 159,
- "type": "realtime"
- },
- "1731379620": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731379680": {
- "status": "UP",
- "latency": 308,
- "type": "realtime"
- },
- "1731379740": {
- "status": "UP",
- "latency": 151,
- "type": "realtime"
- },
- "1731379800": {
- "status": "UP",
- "latency": 182,
- "type": "realtime"
- },
- "1731379860": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731379920": {
- "status": "UP",
- "latency": 181,
- "type": "realtime"
- },
- "1731379980": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731380040": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731380100": {
- "status": "UP",
- "latency": 153,
- "type": "realtime"
- },
- "1731380160": {
- "status": "UP",
- "latency": 147,
- "type": "realtime"
- },
- "1731380220": {
- "status": "UP",
- "latency": 148,
- "type": "realtime"
- },
- "1731380280": {
- "status": "UP",
- "latency": 141,
- "type": "realtime"
- },
- "1731380340": {
- "status": "UP",
- "latency": 155,
- "type": "realtime"
- },
- "1731381300": {
- "status": "UP",
- "latency": 475,
- "type": "realtime"
- },
- "1731381360": {
- "status": "UP",
- "latency": 182,
- "type": "realtime"
- },
- "1731382260": {
- "status": "UP",
- "latency": 220,
- "type": "realtime"
- },
- "1731382320": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731383160": {
- "status": "UP",
- "latency": 706,
- "type": "realtime"
- },
- "1731383220": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731383280": {
- "status": "UP",
- "latency": 798,
- "type": "realtime"
- },
- "1731383340": {
- "status": "UP",
- "latency": 51,
- "type": "realtime"
- },
- "1731383700": {
- "status": "UP",
- "latency": 341,
- "type": "realtime"
- },
- "1731383760": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731384720": {
- "status": "UP",
- "latency": 1649,
- "type": "realtime"
- },
- "1731384780": {
- "status": "UP",
- "latency": 222,
- "type": "realtime"
- },
- "1731384840": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731384900": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- },
- "1731384960": {
- "status": "UP",
- "latency": 177,
- "type": "realtime"
- },
- "1731385020": {
- "status": "UP",
- "latency": 168,
- "type": "realtime"
- },
- "1731385080": {
- "status": "UP",
- "latency": 157,
- "type": "realtime"
- },
- "1731385140": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731385200": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731385260": {
- "status": "UP",
- "latency": 146,
- "type": "realtime"
- },
- "1731385320": {
- "status": "UP",
- "latency": 155,
- "type": "realtime"
- },
- "1731385440": {
- "status": "UP",
- "latency": 209,
- "type": "realtime"
- },
- "1731385560": {
- "status": "UP",
- "latency": 245,
- "type": "realtime"
- },
- "1731385620": {
- "status": "UP",
- "latency": 152,
- "type": "realtime"
- },
- "1731385680": {
- "status": "UP",
- "latency": 156,
- "type": "realtime"
- },
- "1731385740": {
- "status": "UP",
- "latency": 191,
- "type": "realtime"
- },
- "1731385800": {
- "status": "UP",
- "latency": 155,
- "type": "realtime"
- },
- "1731385860": {
- "status": "UP",
- "latency": 148,
- "type": "realtime"
- },
- "1731385920": {
- "status": "UP",
- "latency": 149,
- "type": "realtime"
- },
- "1731385980": {
- "status": "UP",
- "latency": 163,
- "type": "realtime"
- },
- "1731386040": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731386100": {
- "status": "UP",
- "latency": 176,
- "type": "realtime"
- },
- "1731386160": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731386220": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731386280": {
- "status": "UP",
- "latency": 169,
- "type": "realtime"
- },
- "1731386340": {
- "status": "UP",
- "latency": 181,
- "type": "realtime"
- },
- "1731386400": {
- "status": "UP",
- "latency": 212,
- "type": "realtime"
- },
- "1731386460": {
- "status": "UP",
- "latency": 188,
- "type": "realtime"
- },
- "1731386520": {
- "status": "UP",
- "latency": 200,
- "type": "realtime"
- },
- "1731386580": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731386640": {
- "status": "UP",
- "latency": 176,
- "type": "realtime"
- },
- "1731386700": {
- "status": "UP",
- "latency": 201,
- "type": "realtime"
- },
- "1731386760": {
- "status": "UP",
- "latency": 181,
- "type": "realtime"
- },
- "1731386880": {
- "status": "UP",
- "latency": 168,
- "type": "realtime"
- },
- "1731386940": {
- "status": "UP",
- "latency": 228,
- "type": "realtime"
- },
- "1731389640": {
- "status": "UP",
- "latency": 180,
- "type": "realtime"
- },
- "1731389700": {
- "status": "UP",
- "latency": 488,
- "type": "realtime"
- },
- "1731390480": {
- "status": "UP",
- "latency": 211,
- "type": "realtime"
- },
- "1731390540": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731390720": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731390780": {
- "status": "UP",
- "latency": 149,
- "type": "realtime"
- },
- "1731390900": {
- "status": "UP",
- "latency": 189,
- "type": "realtime"
- },
- "1731390960": {
- "status": "UP",
- "latency": 190,
- "type": "realtime"
- },
- "1731391020": {
- "status": "UP",
- "latency": 179,
- "type": "realtime"
- },
- "1731391080": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731391140": {
- "status": "UP",
- "latency": 195,
- "type": "realtime"
- },
- "1731391200": {
- "status": "UP",
- "latency": 201,
- "type": "realtime"
- },
- "1731391260": {
- "status": "UP",
- "latency": 198,
- "type": "realtime"
- },
- "1731391320": {
- "status": "UP",
- "latency": 197,
- "type": "realtime"
- },
- "1731391380": {
- "status": "UP",
- "latency": 173,
- "type": "realtime"
- },
- "1731391680": {
- "status": "UP",
- "latency": 168,
- "type": "realtime"
- },
- "1731391920": {
- "status": "UP",
- "latency": 184,
- "type": "realtime"
- },
- "1731391980": {
- "status": "UP",
- "latency": 145,
- "type": "realtime"
- },
- "1731392040": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- },
- "1731392100": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731392160": {
- "status": "UP",
- "latency": 152,
- "type": "realtime"
- },
- "1731392220": {
- "status": "UP",
- "latency": 613,
- "type": "realtime"
- },
- "1731392280": {
- "status": "UP",
- "latency": 208,
- "type": "realtime"
- },
- "1731392340": {
- "status": "UP",
- "latency": 171,
- "type": "realtime"
- },
- "1731392400": {
- "status": "UP",
- "latency": 198,
- "type": "realtime"
- },
- "1731392460": {
- "status": "UP",
- "latency": 190,
- "type": "realtime"
- },
- "1731392520": {
- "status": "UP",
- "latency": 205,
- "type": "realtime"
- },
- "1731392580": {
- "status": "UP",
- "latency": 184,
- "type": "realtime"
- },
- "1731392640": {
- "status": "UP",
- "latency": 152,
- "type": "realtime"
- },
- "1731392700": {
- "status": "UP",
- "latency": 195,
- "type": "realtime"
- },
- "1731392760": {
- "status": "UP",
- "latency": 197,
- "type": "realtime"
- },
- "1731392820": {
- "status": "UP",
- "latency": 175,
- "type": "realtime"
- },
- "1731392880": {
- "status": "UP",
- "latency": 193,
- "type": "realtime"
- },
- "1731392940": {
- "status": "UP",
- "latency": 198,
- "type": "realtime"
- },
- "1731393000": {
- "status": "UP",
- "latency": 208,
- "type": "realtime"
- },
- "1731393060": {
- "status": "UP",
- "latency": 161,
- "type": "realtime"
- },
- "1731393120": {
- "status": "UP",
- "latency": 158,
- "type": "realtime"
- },
- "1731393180": {
- "status": "UP",
- "latency": 149,
- "type": "realtime"
- },
- "1731393240": {
- "status": "UP",
- "latency": 155,
- "type": "realtime"
- },
- "1731393300": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731393360": {
- "status": "UP",
- "latency": 163,
- "type": "realtime"
- },
- "1731393420": {
- "status": "UP",
- "latency": 141,
- "type": "realtime"
- },
- "1731393480": {
- "status": "UP",
- "latency": 145,
- "type": "realtime"
- },
- "1731393540": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731393600": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731393660": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731393720": {
- "status": "UP",
- "latency": 173,
- "type": "realtime"
- },
- "1731393780": {
- "status": "UP",
- "latency": 262,
- "type": "realtime"
- },
- "1731393840": {
- "status": "UP",
- "latency": 199,
- "type": "realtime"
- },
- "1731393900": {
- "status": "UP",
- "latency": 243,
- "type": "realtime"
- },
- "1731393960": {
- "status": "UP",
- "latency": 159,
- "type": "realtime"
- },
- "1731394020": {
- "status": "UP",
- "latency": 150,
- "type": "realtime"
- },
- "1731394080": {
- "status": "UP",
- "latency": 185,
- "type": "realtime"
- },
- "1731394140": {
- "status": "UP",
- "latency": 154,
- "type": "realtime"
- },
- "1731422160": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731422220": {
- "status": "UP",
- "latency": 152,
- "type": "realtime"
- },
- "1731422280": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731422340": {
- "status": "UP",
- "latency": 172,
- "type": "realtime"
- },
- "1731422400": {
- "status": "UP",
- "latency": 175,
- "type": "realtime"
- },
- "1731422460": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731422520": {
- "status": "UP",
- "latency": 601,
- "type": "realtime"
- },
- "1731422580": {
- "status": "UP",
- "latency": 156,
- "type": "realtime"
- },
- "1731422640": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731422700": {
- "status": "UP",
- "latency": 173,
- "type": "realtime"
- },
- "1731422760": {
- "status": "UP",
- "latency": 403,
- "type": "realtime"
- },
- "1731423600": {
- "status": "UP",
- "latency": 185,
- "type": "realtime"
- },
- "1731423660": {
- "status": "UP",
- "latency": 165,
- "type": "realtime"
- },
- "1731423720": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731423780": {
- "status": "UP",
- "latency": 168,
- "type": "realtime"
- },
- "1731423840": {
- "status": "UP",
- "latency": 187,
- "type": "realtime"
- },
- "1731423900": {
- "status": "UP",
- "latency": 166,
- "type": "realtime"
- },
- "1731423960": {
- "status": "UP",
- "latency": 163,
- "type": "realtime"
- },
- "1731424020": {
- "status": "UP",
- "latency": 183,
- "type": "realtime"
- },
- "1731424080": {
- "status": "UP",
- "latency": 153,
- "type": "realtime"
- },
- "1731424140": {
- "status": "UP",
- "latency": 1157,
- "type": "realtime"
- },
- "1731424200": {
- "status": "UP",
- "latency": 173,
- "type": "realtime"
- },
- "1731424440": {
- "status": "UP",
- "latency": 160,
- "type": "realtime"
- },
- "1731424500": {
- "status": "UP",
- "latency": 188,
- "type": "realtime"
- },
- "1731424560": {
- "status": "UP",
- "latency": 152,
- "type": "realtime"
- },
- "1731424620": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731424680": {
- "status": "UP",
- "latency": 150,
- "type": "realtime"
- },
- "1731424740": {
- "status": "UP",
- "latency": 149,
- "type": "realtime"
- },
- "1731424800": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731424860": {
- "status": "UP",
- "latency": 192,
- "type": "realtime"
- },
- "1731424920": {
- "status": "UP",
- "latency": 153,
- "type": "realtime"
- },
- "1731424980": {
- "status": "UP",
- "latency": 145,
- "type": "realtime"
- },
- "1731425040": {
- "status": "UP",
- "latency": 147,
- "type": "realtime"
- },
- "1731425100": {
- "status": "UP",
- "latency": 144,
- "type": "realtime"
- },
- "1731425160": {
- "status": "UP",
- "latency": 185,
- "type": "realtime"
- },
- "1731425220": {
- "status": "UP",
- "latency": 196,
- "type": "realtime"
- },
- "1731425280": {
- "status": "UP",
- "latency": 184,
- "type": "realtime"
- },
- "1731425340": {
- "status": "UP",
- "latency": 187,
- "type": "realtime"
- },
- "1731425400": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731425460": {
- "status": "UP",
- "latency": 181,
- "type": "realtime"
- },
- "1731425520": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731425580": {
- "status": "UP",
- "latency": 180,
- "type": "realtime"
- },
- "1731425640": {
- "status": "UP",
- "latency": 154,
- "type": "realtime"
- },
- "1731425700": {
- "status": "UP",
- "latency": 217,
- "type": "realtime"
- },
- "1731425760": {
- "status": "UP",
- "latency": 183,
- "type": "realtime"
- },
- "1731425820": {
- "status": "UP",
- "latency": 162,
- "type": "realtime"
- },
- "1731425880": {
- "status": "UP",
- "latency": 155,
- "type": "realtime"
- },
- "1731425940": {
- "status": "UP",
- "latency": 183,
- "type": "realtime"
- },
- "1731426000": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731426060": {
- "status": "UP",
- "latency": 195,
- "type": "realtime"
- },
- "1731426120": {
- "status": "UP",
- "latency": 181,
- "type": "realtime"
- },
- "1731426180": {
- "status": "UP",
- "latency": 178,
- "type": "realtime"
- },
- "1731426240": {
- "status": "UP",
- "latency": 176,
- "type": "realtime"
- },
- "1731426300": {
- "status": "UP",
- "latency": 160,
- "type": "realtime"
- },
- "1731426360": {
- "status": "UP",
- "latency": 164,
- "type": "realtime"
- },
- "1731426420": {
- "status": "UP",
- "latency": 182,
- "type": "realtime"
- },
- "1731426480": {
- "status": "UP",
- "latency": 193,
- "type": "realtime"
- },
- "1731426540": {
- "status": "UP",
- "latency": 190,
- "type": "realtime"
- },
- "1731426600": {
- "status": "UP",
- "latency": 186,
- "type": "realtime"
- },
- "1731426660": {
- "status": "UP",
- "latency": 206,
- "type": "realtime"
- },
- "1731426720": {
- "status": "UP",
- "latency": 249,
- "type": "realtime"
- },
- "1731426780": {
- "status": "UP",
- "latency": 195,
- "type": "realtime"
- },
- "1731426840": {
- "status": "UP",
- "latency": 188,
- "type": "realtime"
- },
- "1731426900": {
- "status": "UP",
- "latency": 149,
- "type": "realtime"
- },
- "1731426960": {
- "status": "UP",
- "latency": 180,
- "type": "realtime"
- },
- "1731427020": {
- "status": "UP",
- "latency": 182,
- "type": "realtime"
- }
-}
\ No newline at end of file
diff --git a/database/okbookmarksx.90day.utc.json b/database/okbookmarksx.90day.utc.json
deleted file mode 100644
index 6e148789..00000000
--- a/database/okbookmarksx.90day.utc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"_90Day":{"1723593600":{"timestamp":1723593600,"cssClass":"api-nodata","message":"No Data"},"1723680000":{"timestamp":1723680000,"cssClass":"api-nodata","message":"No Data"},"1723766400":{"timestamp":1723766400,"cssClass":"api-nodata","message":"No Data"},"1723852800":{"timestamp":1723852800,"cssClass":"api-nodata","message":"No Data"},"1723939200":{"timestamp":1723939200,"cssClass":"api-nodata","message":"No Data"},"1724025600":{"timestamp":1724025600,"cssClass":"api-nodata","message":"No Data"},"1724112000":{"timestamp":1724112000,"cssClass":"api-nodata","message":"No Data"},"1724198400":{"timestamp":1724198400,"cssClass":"api-nodata","message":"No Data"},"1724284800":{"timestamp":1724284800,"cssClass":"api-nodata","message":"No Data"},"1724371200":{"timestamp":1724371200,"cssClass":"api-nodata","message":"No Data"},"1724457600":{"timestamp":1724457600,"cssClass":"api-nodata","message":"No Data"},"1724544000":{"timestamp":1724544000,"cssClass":"api-nodata","message":"No Data"},"1724630400":{"timestamp":1724630400,"cssClass":"api-nodata","message":"No Data"},"1724716800":{"timestamp":1724716800,"cssClass":"api-nodata","message":"No Data"},"1724803200":{"timestamp":1724803200,"cssClass":"api-nodata","message":"No Data"},"1724889600":{"timestamp":1724889600,"cssClass":"api-nodata","message":"No Data"},"1724976000":{"timestamp":1724976000,"cssClass":"api-nodata","message":"No Data"},"1725062400":{"timestamp":1725062400,"cssClass":"api-nodata","message":"No Data"},"1725148800":{"timestamp":1725148800,"cssClass":"api-nodata","message":"No Data"},"1725235200":{"timestamp":1725235200,"cssClass":"api-nodata","message":"No Data"},"1725321600":{"timestamp":1725321600,"cssClass":"api-nodata","message":"No Data"},"1725408000":{"timestamp":1725408000,"cssClass":"api-nodata","message":"No Data"},"1725494400":{"timestamp":1725494400,"cssClass":"api-nodata","message":"No Data"},"1725580800":{"timestamp":1725580800,"cssClass":"api-nodata","message":"No Data"},"1725667200":{"timestamp":1725667200,"cssClass":"api-nodata","message":"No Data"},"1725753600":{"timestamp":1725753600,"cssClass":"api-nodata","message":"No Data"},"1725840000":{"timestamp":1725840000,"cssClass":"api-nodata","message":"No Data"},"1725926400":{"timestamp":1725926400,"cssClass":"api-nodata","message":"No Data"},"1726012800":{"timestamp":1726012800,"cssClass":"api-nodata","message":"No Data"},"1726099200":{"timestamp":1726099200,"cssClass":"api-nodata","message":"No Data"},"1726185600":{"timestamp":1726185600,"cssClass":"api-nodata","message":"No Data"},"1726272000":{"timestamp":1726272000,"cssClass":"api-nodata","message":"No Data"},"1726358400":{"timestamp":1726358400,"cssClass":"api-nodata","message":"No Data"},"1726444800":{"timestamp":1726444800,"cssClass":"api-nodata","message":"No Data"},"1726531200":{"timestamp":1726531200,"cssClass":"api-nodata","message":"No Data"},"1726617600":{"timestamp":1726617600,"cssClass":"api-nodata","message":"No Data"},"1726704000":{"timestamp":1726704000,"cssClass":"api-nodata","message":"No Data"},"1726790400":{"timestamp":1726790400,"cssClass":"api-nodata","message":"No Data"},"1726876800":{"timestamp":1726876800,"cssClass":"api-nodata","message":"No Data"},"1726963200":{"timestamp":1726963200,"cssClass":"api-nodata","message":"No Data"},"1727049600":{"timestamp":1727049600,"cssClass":"api-nodata","message":"No Data"},"1727136000":{"timestamp":1727136000,"cssClass":"api-nodata","message":"No Data"},"1727222400":{"timestamp":1727222400,"cssClass":"api-nodata","message":"No Data"},"1727308800":{"timestamp":1727308800,"cssClass":"api-nodata","message":"No Data"},"1727395200":{"timestamp":1727395200,"cssClass":"api-nodata","message":"No Data"},"1727481600":{"timestamp":1727481600,"cssClass":"api-nodata","message":"No Data"},"1727568000":{"timestamp":1727568000,"cssClass":"api-nodata","message":"No Data"},"1727654400":{"timestamp":1727654400,"cssClass":"api-nodata","message":"No Data"},"1727740800":{"timestamp":1727740800,"cssClass":"api-nodata","message":"No Data"},"1727827200":{"timestamp":1727827200,"cssClass":"api-nodata","message":"No Data"},"1727913600":{"timestamp":1727913600,"cssClass":"api-nodata","message":"No Data"},"1728000000":{"timestamp":1728000000,"cssClass":"api-nodata","message":"No Data"},"1728086400":{"timestamp":1728086400,"cssClass":"api-nodata","message":"No Data"},"1728172800":{"timestamp":1728172800,"cssClass":"api-nodata","message":"No Data"},"1728259200":{"timestamp":1728259200,"cssClass":"api-nodata","message":"No Data"},"1728345600":{"timestamp":1728345600,"cssClass":"api-nodata","message":"No Data"},"1728432000":{"timestamp":1728432000,"cssClass":"api-nodata","message":"No Data"},"1728518400":{"timestamp":1728518400,"cssClass":"api-nodata","message":"No Data"},"1728604800":{"timestamp":1728604800,"cssClass":"api-nodata","message":"No Data"},"1728691200":{"timestamp":1728691200,"cssClass":"api-nodata","message":"No Data"},"1728777600":{"timestamp":1728777600,"cssClass":"api-nodata","message":"No Data"},"1728864000":{"timestamp":1728864000,"cssClass":"api-nodata","message":"No Data"},"1728950400":{"timestamp":1728950400,"cssClass":"api-nodata","message":"No Data"},"1729036800":{"timestamp":1729036800,"cssClass":"api-nodata","message":"No Data"},"1729123200":{"timestamp":1729123200,"cssClass":"api-nodata","message":"No Data"},"1729209600":{"timestamp":1729209600,"cssClass":"api-nodata","message":"No Data"},"1729296000":{"timestamp":1729296000,"cssClass":"api-nodata","message":"No Data"},"1729382400":{"timestamp":1729382400,"cssClass":"api-nodata","message":"No Data"},"1729468800":{"timestamp":1729468800,"cssClass":"api-nodata","message":"No Data"},"1729555200":{"timestamp":1729555200,"cssClass":"api-nodata","message":"No Data"},"1729641600":{"timestamp":1729641600,"cssClass":"api-nodata","message":"No Data"},"1729728000":{"timestamp":1729728000,"cssClass":"api-nodata","message":"No Data"},"1729814400":{"timestamp":1729814400,"cssClass":"api-nodata","message":"No Data"},"1729900800":{"timestamp":1729900800,"cssClass":"api-nodata","message":"No Data"},"1729987200":{"timestamp":1729987200,"cssClass":"api-nodata","message":"No Data"},"1730073600":{"timestamp":1730073600,"cssClass":"api-nodata","message":"No Data"},"1730160000":{"timestamp":1730160000,"cssClass":"api-nodata","message":"No Data"},"1730246400":{"timestamp":1730246400,"cssClass":"api-nodata","message":"No Data"},"1730332800":{"timestamp":1730332800,"cssClass":"api-nodata","message":"No Data"},"1730419200":{"timestamp":1730419200,"cssClass":"api-nodata","message":"No Data"},"1730505600":{"timestamp":1730505600,"cssClass":"api-nodata","message":"No Data"},"1730592000":{"timestamp":1730592000,"cssClass":"api-nodata","message":"No Data"},"1730678400":{"timestamp":1730678400,"cssClass":"api-nodata","message":"No Data"},"1730764800":{"timestamp":1730764800,"cssClass":"api-nodata","message":"No Data"},"1730851200":{"timestamp":1730851200,"cssClass":"api-nodata","message":"No Data"},"1730937600":{"timestamp":1730937600,"cssClass":"api-nodata","message":"No Data"},"1731024000":{"timestamp":1731024000,"cssClass":"api-nodata","message":"No Data"},"1731110400":{"timestamp":1731110400,"cssClass":"api-nodata","message":"No Data"},"1731196800":{"timestamp":1731196800,"cssClass":"api-nodata","message":"No Data"},"1731283200":{"timestamp":1731283200,"cssClass":"api-up","message":"Status OK"},"1731369600":{"timestamp":1731369600,"cssClass":"api-up","message":"Status OK"}},"uptime0Day":"100","uptime90Day":"100","dailyUps":193,"dailyDown":0,"dailyDegraded":0}
diff --git a/package.json b/package.json
index 2db926fc..c8ffb51e 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"build": "vite build",
"preview": "vite preview",
"preschedule": "node build.js",
- "schedule": "vite-node src/lib/server/startup.js",
+ "schedule": "node src/lib/server/startup.js",
"development": "vite dev",
"dev": "npm-run-all --parallel schedule development",
"prettify": "prettier --write ."
diff --git a/src/lib/components/incident.svelte b/src/lib/components/incident.svelte
index 07f1f81d..67d92f04 100644
--- a/src/lib/components/incident.svelte
+++ b/src/lib/components/incident.svelte
@@ -92,7 +92,9 @@
{/if}
{#if monitor.image}
{#if monitor.image}
{#if data.site.logo}
-
+
{/if}
{#if data.site.siteName}
@@ -33,7 +38,9 @@
>
{#if navItem.iconURL}
diff --git a/src/lib/server/check.js b/src/lib/server/check.js
index 9ae65acd..9e6d3376 100644
--- a/src/lib/server/check.js
+++ b/src/lib/server/check.js
@@ -1,6 +1,6 @@
// @ts-nocheck
-import { ENV } from "$lib/server/constants.js";
-import { IsStringURLSafe } from "$lib/server/tool.js";
+import { ENV } from "./constants.js";
+import { IsStringURLSafe } from "./tool.js";
import dotenv from "dotenv";
dotenv.config();
import fs from "fs-extra";
diff --git a/src/lib/server/cron-minute.js b/src/lib/server/cron-minute.js
index 3652353c..9f4ed3f7 100644
--- a/src/lib/server/cron-minute.js
+++ b/src/lib/server/cron-minute.js
@@ -2,18 +2,13 @@
import axios from "axios";
import ping from "ping";
import fs from "fs-extra";
-import { UP, DOWN, DEGRADED } from "$lib/server/constants.js";
+import { UP, DOWN, DEGRADED } from "./constants.js";
import {
GetNowTimestampUTC,
GetMinuteStartNowTimestampUTC,
GetMinuteStartTimestampUTC
-} from "$lib/server/tool.js";
-import {
- GetIncidents,
- GetEndTimeFromBody,
- GetStartTimeFromBody,
- CloseIssue
-} from "$lib/server/github.js";
+} from "./tool.js";
+import { GetIncidents, GetEndTimeFromBody, GetStartTimeFromBody, CloseIssue } from "./github.js";
import Randomstring from "randomstring";
import Queue from "queue";
import dotenv from "dotenv";
diff --git a/src/lib/server/data/monitors.json b/src/lib/server/data/monitors.json
new file mode 100644
index 00000000..af7abfbb
--- /dev/null
+++ b/src/lib/server/data/monitors.json
@@ -0,0 +1,94 @@
+[
+ {
+ "name": "Google Search",
+ "description": "Search the world's information, including webpages, images, videos and more.",
+ "tag": "google-search",
+ "image": "/google.png",
+ "api": {
+ "method": "GET",
+ "url": "https://www.google.com/webhp",
+ "hideURLForGet": true,
+ "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
+ "timeout": 10000
+ },
+ "folderName": "google-search",
+ "dayDegradedMinimumCount": 1,
+ "dayDownMinimumCount": 1,
+ "includeDegradedInDowntime": false,
+ "path0Day": "/Users/rajnandan1/Code/kener/db/google-search.0day.utc.json",
+ "path90Day": "/Users/rajnandan1/Code/kener/db/google-search.90day.utc.json",
+ "hasAPI": true
+ },
+ {
+ "name": "Svelte Website",
+ "description": "Cybernetically enhanced web apps https://svelte.dev/",
+ "tag": "svelte-website",
+ "api": {
+ "method": "GET",
+ "url": "https://svelte.dev/",
+ "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
+ "timeout": 10000
+ },
+ "image": "/svelte.svg",
+ "folderName": "svelte-website",
+ "dayDegradedMinimumCount": 1,
+ "dayDownMinimumCount": 1,
+ "includeDegradedInDowntime": false,
+ "path0Day": "/Users/rajnandan1/Code/kener/db/svelte-website.0day.utc.json",
+ "path90Day": "/Users/rajnandan1/Code/kener/db/svelte-website.90day.utc.json",
+ "hasAPI": true
+ },
+ {
+ "name": "Earth",
+ "description": "Our blue planet",
+ "tag": "earth",
+ "defaultStatus": "UP",
+ "image": "/earth.png",
+ "cron": "*/2 * * * *",
+ "folderName": "earth",
+ "dayDegradedMinimumCount": 1,
+ "dayDownMinimumCount": 1,
+ "includeDegradedInDowntime": false,
+ "path0Day": "/Users/rajnandan1/Code/kener/db/earth.0day.utc.json",
+ "path90Day": "/Users/rajnandan1/Code/kener/db/earth.90day.utc.json",
+ "hasAPI": false
+ },
+ {
+ "name": "Frogment",
+ "description": "A free openAPI spec editor and linter that breaks down your spec into fragments to make editing easier and more intuitive. Visit https://www.frogment.com https://www.frogment.com",
+ "tag": "frogment",
+ "image": "/frogment.png",
+ "api": {
+ "method": "GET",
+ "url": "https://www.frogment.com",
+ "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
+ "timeout": 10000
+ },
+ "folderName": "frogment",
+ "dayDegradedMinimumCount": 1,
+ "dayDownMinimumCount": 1,
+ "includeDegradedInDowntime": false,
+ "path0Day": "/Users/rajnandan1/Code/kener/db/frogment.0day.utc.json",
+ "path90Day": "/Users/rajnandan1/Code/kener/db/frogment.90day.utc.json",
+ "hasAPI": true
+ },
+ {
+ "name": "OkBookmarks",
+ "description": "Stop forgetting about your bookmarks https://okbookmarks.com/",
+ "tag": "okbookmarks",
+ "image": "https://okbookmarks.com/app/mybookmark.png",
+ "api": {
+ "method": "GET",
+ "url": "https://okbookmarks.com/",
+ "eval": "(function (statusCode, responseTime, responseData) {\n\tlet statusCodeShort = Math.floor(statusCode/100);\n if(statusCode == 429 || (statusCodeShort >=2 && statusCodeShort <= 3)) {\n return {\n\t\t\tstatus: 'UP',\n\t\t\tlatency: responseTime,\n }\n } \n\treturn {\n\t\tstatus: 'DOWN',\n\t\tlatency: responseTime,\n\t}\n})",
+ "timeout": 10000
+ },
+ "folderName": "okbookmarks",
+ "dayDegradedMinimumCount": 1,
+ "dayDownMinimumCount": 1,
+ "includeDegradedInDowntime": false,
+ "path0Day": "/Users/rajnandan1/Code/kener/db/okbookmarks.0day.utc.json",
+ "path90Day": "/Users/rajnandan1/Code/kener/db/okbookmarks.90day.utc.json",
+ "hasAPI": true
+ }
+]
\ No newline at end of file
diff --git a/database/site.json b/src/lib/server/data/site.json
similarity index 99%
rename from database/site.json
rename to src/lib/server/data/site.json
index d14aa0fe..d5a9a1d8 100644
--- a/database/site.json
+++ b/src/lib/server/data/site.json
@@ -7,7 +7,7 @@
"github": {
"owner": "rajnandan1",
"repo": "kener",
- "incidentSince": 720
+ "incidentSince": 48
},
"metaTags": {
"description": "Kener: Open-source modern looking Node.js status page tool, designed to make service monitoring and incident handling a breeze. It offers a sleek and user-friendly interface that simplifies tracking service outages and improves how we communicate during incidents. And the best part? Kener integrates seamlessly with GitHub, making incident management a team effort—making it easier for us to track and fix issues together in a collaborative and friendly environment.",
diff --git a/src/lib/server/github.js b/src/lib/server/github.js
index 7e0096ec..2c75a484 100644
--- a/src/lib/server/github.js
+++ b/src/lib/server/github.js
@@ -1,6 +1,6 @@
// @ts-nocheck
import axios from "axios";
-import { GetMinuteStartNowTimestampUTC } from "$lib/server/tool.js";
+import { GetMinuteStartNowTimestampUTC } from "./tool.js";
import { marked } from "marked";
import { fileURLToPath } from "url";
import { dirname } from "path";
diff --git a/src/lib/server/ninety.js b/src/lib/server/ninety.js
index a0487f45..0ad969f6 100644
--- a/src/lib/server/ninety.js
+++ b/src/lib/server/ninety.js
@@ -1,7 +1,7 @@
// @ts-nocheck
import fs from "fs-extra";
-import { GetMinuteStartNowTimestampUTC, BeginningOfDay } from "$lib/server/tool.js";
-import { StatusObj, ParseUptime } from "$lib/helpers.js";
+import { GetMinuteStartNowTimestampUTC, BeginningOfDay } from "./tool.js";
+import { StatusObj, ParseUptime } from "../helpers.js";
function getDayMessage(type, numOfMinute) {
if (numOfMinute > 59) {
diff --git a/src/lib/server/startup.js b/src/lib/server/startup.js
index 2b1c04bb..e4fd2766 100644
--- a/src/lib/server/startup.js
+++ b/src/lib/server/startup.js
@@ -12,15 +12,13 @@ import path from "path";
import yaml from "js-yaml";
import { Cron } from "croner";
-import { API_TIMEOUT } from "$lib/server/constants.js";
-import siteDataRaw from "$lib/server/config/site.yaml?raw";
-import monitorDataRaw from "$lib/server/config/monitors.yaml?raw";
+import { API_TIMEOUT } from "./constants.js";
-import { IsValidURL, IsValidHTTPMethod, ValidateIpAddress } from "$lib/server/tool.js";
-import { GetAllGHLabels, CreateGHLabel } from "$lib/server/github.js";
-import { Minuter } from "$lib/server/cron-minute.js";
+import { IsValidURL, IsValidHTTPMethod, ValidateIpAddress } from "./tool.js";
+import { GetAllGHLabels, CreateGHLabel } from "./github.js";
+import { Minuter } from "./cron-minute.js";
import axios from "axios";
-import { Ninety } from "$lib/server/ninety.js";
+import { Ninety } from "./ninety.js";
let monitors = [];
let site = {};
const envSecrets = [];
diff --git a/src/lib/server/stores/monitors.js b/src/lib/server/stores/monitors.js
index 8f5f236f..1cf5f465 100644
--- a/src/lib/server/stores/monitors.js
+++ b/src/lib/server/stores/monitors.js
@@ -3,7 +3,10 @@ import fs from "fs-extra";
import path from "path";
// Load the JSON data from the file system
-const monitorsDataPath = path.join(process.cwd(), "database", "monitors.json");
-const monitorsData = fs.readJSONSync(monitorsDataPath, "utf8");
+let monitorsData = {};
+try {
+ const monitorsDataPath = path.join(process.cwd(), "database", "monitors.json");
+ monitorsData = fs.readJSONSync(monitorsDataPath, "utf8");
+} catch (error) {}
// Create a readonly store
export const monitorsStore = readable(monitorsData, () => {});
diff --git a/src/lib/server/stores/site.js b/src/lib/server/stores/site.js
index 2f66cd86..ea002af9 100644
--- a/src/lib/server/stores/site.js
+++ b/src/lib/server/stores/site.js
@@ -3,7 +3,10 @@ import fs from "fs-extra";
import path from "path";
// Load the JSON data from the file system
-const siteDataPath = path.join(process.cwd(), "database", "site.json");
-const siteData = fs.readJSONSync(siteDataPath, "utf8");
+let siteData = {};
+try {
+ const siteDataPath = path.join(process.cwd(), "database", "site.json");
+ siteData = fs.readJSONSync(siteDataPath, "utf8");
+} catch (error) {}
// Create a readonly store
export const siteStore = readable(siteData, () => {});
diff --git a/src/lib/server/webhook.js b/src/lib/server/webhook.js
index 0497976f..7edf81ee 100644
--- a/src/lib/server/webhook.js
+++ b/src/lib/server/webhook.js
@@ -1,14 +1,14 @@
// @ts-nocheck
import fs from "fs-extra";
-import { monitorsStore } from "$lib/server/stores/monitors";
+import { monitorsStore } from "./stores/monitors";
import { get } from "svelte/store";
import { ParseUptime } from "$lib/helpers.js";
import {
GetMinuteStartNowTimestampUTC,
GetNowTimestampUTC,
GetMinuteStartTimestampUTC
-} from "$lib/server/tool.js";
-import { GetStartTimeFromBody, GetEndTimeFromBody } from "$lib/server/github.js";
+} from "./tool.js";
+import { GetStartTimeFromBody, GetEndTimeFromBody } from "./github.js";
import Randomstring from "randomstring";
const API_TOKEN = process.env.API_TOKEN;
const API_IP = process.env.API_IP;