From 8cd8133f9e58f67acef0872ed65a84a1285330b7 Mon Sep 17 00:00:00 2001 From: Honey Date: Wed, 18 Feb 2026 01:28:10 +0100 Subject: [PATCH] Working Web Server changes and Docker Image --- build.sh | 43 ++++++++++++++++++++++ frontend/dockerfile | 4 +- frontend/index.html | 15 ++++++++ frontend/nginx.conf | 0 frontend/package.json | 19 ++++++++++ frontend/{note-app.jsx => src/NoteApp.jsx} | 0 frontend/src/main.jsx | 9 +++++ frontend/vite.config.js | 10 +++++ 8 files changed, 97 insertions(+), 3 deletions(-) create mode 100755 build.sh create mode 100644 frontend/index.html create mode 100644 frontend/nginx.conf create mode 100644 frontend/package.json rename frontend/{note-app.jsx => src/NoteApp.jsx} (100%) create mode 100644 frontend/src/main.jsx create mode 100644 frontend/vite.config.js diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9189000 --- /dev/null +++ b/build.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +REGISTRY="gitea.honeyy.duckdns.org" +OWNER="docker" +TAG="${1:-latest}" + +FRONTEND_IMAGE="${REGISTRY}/${OWNER}/inknote-web:${TAG}" +BACKEND_IMAGE="${REGISTRY}/${OWNER}/inknote-server:${TAG}" + +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo " InkNote — Build & Push to Gitea" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" +echo " Frontend: ${FRONTEND_IMAGE}" +echo " Backend: ${BACKEND_IMAGE}" +echo "" + +echo "→ Logging in to ${REGISTRY}..." +docker login "${REGISTRY}" + +echo "" +echo "→ Building backend..." +docker build -t "${BACKEND_IMAGE}" ./backend + +echo "" +echo "→ Building frontend..." +docker build -t "${FRONTEND_IMAGE}" ./frontend + +echo "" +echo "→ Pushing backend..." +docker push "${BACKEND_IMAGE}" + +echo "" +echo "→ Pushing frontend..." +docker push "${FRONTEND_IMAGE}" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo " ✅ Done! Both images pushed to:" +echo " ${FRONTEND_IMAGE}" +echo " ${BACKEND_IMAGE}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" diff --git a/frontend/dockerfile b/frontend/dockerfile index 79cab84..8af3d66 100644 --- a/frontend/dockerfile +++ b/frontend/dockerfile @@ -1,12 +1,10 @@ -# Stage 1: Build FROM node:20-alpine AS build WORKDIR /app -COPY package.json package-lock.json* ./ +COPY package.json ./ RUN npm install COPY . . RUN npm run build -# Stage 2: Serve with nginx FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..beb6e3b --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,15 @@ + + + + + + + InkNote + + + + +
+ + + \ No newline at end of file diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 0000000..e69de29 diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..794e5f5 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,19 @@ +{ + "name": "inknote-frontend", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.3.1", + "vite": "^5.4.0" + } +} \ No newline at end of file diff --git a/frontend/note-app.jsx b/frontend/src/NoteApp.jsx similarity index 100% rename from frontend/note-app.jsx rename to frontend/src/NoteApp.jsx diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx new file mode 100644 index 0000000..5f791b8 --- /dev/null +++ b/frontend/src/main.jsx @@ -0,0 +1,9 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import NoteApp from './NoteApp.jsx' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + +) \ No newline at end of file diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..2e4510e --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + server: { + host: '0.0.0.0', + port: 3000, + }, +}) \ No newline at end of file