[PR #23] [MERGED] refactor(web): refactor the web interface using Nuxt and NuxtUI #22

Closed
opened 2026-05-06 16:08:16 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/BreizhHardware/ntfy_alerts/pull/23
Author: @BreizhHardware
Created: 6/20/2025
Status: Merged
Merged: 6/20/2025
Merged by: @BreizhHardware

Base: devHead: refactor/web-nuxt


📝 Commits (8)

  • bdffae8 refactor(web): refactor the web interface using Nuxt and NuxtUI
  • a1faa3e Update web/components/LatestUpdates.vue
  • 4c696bf Update src/api.rs
  • ebe8853 Update web/components/LatestUpdates.vue
  • 869f22a Update src/api.rs
  • 82c613f Update Dockerfile
  • 5e3af6f Update src/api.rs
  • c01603f fix(api): Fix missing import

📊 Changes

28 files changed (+9225 additions, -257 deletions)

View changed files

📝 .github/dependabot.yaml (+18 -0)
📝 .github/workflows/create_dev.yml (+45 -3)
📝 .github/workflows/create_release.yml (+62 -8)
📝 .github/workflows/dependabot-build.yml (+24 -11)
📝 .gitignore (+1 -0)
📝 Dockerfile (+4 -4)
📝 entrypoint.sh (+4 -1)
📝 nginx.conf (+14 -2)
📝 src/api.rs (+98 -1)
web/.gitignore (+24 -0)
web/README.md (+75 -0)
web/app.vue (+26 -0)
web/assets/css/main.css (+2 -0)
web/components/AppFooter.vue (+6 -0)
web/components/AppHeader.vue (+6 -0)
web/components/DockerRepoSection.vue (+106 -0)
web/components/GithubRepoSection.vue (+106 -0)
web/components/LatestUpdates.vue (+48 -0)
web/index.html (+0 -69)
web/nuxt.config.ts (+25 -0)

...and 8 more files

📄 Description

This pull request introduces significant changes to integrate a Nuxt.js frontend with the existing Rust backend, enhance CI/CD workflows, and improve the Docker setup. The most important changes include adding a frontend build process, updating workflows to handle both frontend and backend artifacts, modifying the API to expose update information, and updating the Docker configuration to serve the frontend alongside the backend.

Frontend Integration:

  • Added a Nuxt.js frontend with basic components (AppHeader, AppFooter, LatestUpdates, etc.) and Tailwind CSS for styling. (web/app.vue, web/components/AppFooter.vue, web/components/AppHeader.vue, web/assets/css/main.css, [1] [2] [3] [4]
  • Added .gitignore and README.md for the frontend project to manage dependencies and document setup instructions. (web/.gitignore, web/README.md, [1] [2]

CI/CD Workflow Enhancements:

  • Updated create_dev.yml and create_release.yml workflows to include steps for building the Nuxt.js frontend and uploading it as an artifact. (.github/workflows/create_dev.yml, .github/workflows/create_release.yml, [1] [2]
  • Modified dependabot-build.yml to build both the backend and frontend during Dependabot-triggered builds. (.github/workflows/dependabot-build.yml, .github/workflows/dependabot-build.ymlL31-R59)

API Enhancements:

  • Added a new API endpoint /latest_updates to fetch the latest updates from the database, including repository, version, and changelog details. (src/api.rs, F9aa122fL9R9, [1] [2] [3]

Docker Configuration Updates:

  • Updated the Dockerfile to include Node.js and serve the Nuxt.js frontend alongside the Rust backend. (Dockerfile, [1] [2]
  • Updated nginx.conf to proxy requests to the Nuxt.js server for frontend and to the Rust backend for API routes. (nginx.conf, [1] [2]

Runtime Changes:

  • Modified entrypoint.sh to start the Nuxt.js server in the background alongside the Rust application. (entrypoint.sh, entrypoint.shL9-R12)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/BreizhHardware/ntfy_alerts/pull/23 **Author:** [@BreizhHardware](https://github.com/BreizhHardware) **Created:** 6/20/2025 **Status:** ✅ Merged **Merged:** 6/20/2025 **Merged by:** [@BreizhHardware](https://github.com/BreizhHardware) **Base:** `dev` ← **Head:** `refactor/web-nuxt` --- ### 📝 Commits (8) - [`bdffae8`](https://github.com/BreizhHardware/ntfy_alerts/commit/bdffae83fada7ce42a36e64f8e7ba9abc813078d) refactor(web): refactor the web interface using Nuxt and NuxtUI - [`a1faa3e`](https://github.com/BreizhHardware/ntfy_alerts/commit/a1faa3ed8b9b36c2b9bb1b6a8079a69e2103782f) Update web/components/LatestUpdates.vue - [`4c696bf`](https://github.com/BreizhHardware/ntfy_alerts/commit/4c696bfb608a60a6761f48da6dc967814eb097a4) Update src/api.rs - [`ebe8853`](https://github.com/BreizhHardware/ntfy_alerts/commit/ebe8853240040ec077b4ada0b8c5dd90f71f3389) Update web/components/LatestUpdates.vue - [`869f22a`](https://github.com/BreizhHardware/ntfy_alerts/commit/869f22a9d1323ded0bbba3a21b174873c0acfde6) Update src/api.rs - [`82c613f`](https://github.com/BreizhHardware/ntfy_alerts/commit/82c613f1d3e73f02ec8d52c3e17ef2b4c3426335) Update Dockerfile - [`5e3af6f`](https://github.com/BreizhHardware/ntfy_alerts/commit/5e3af6f49a066832707336b22b30dfc18d4c89c3) Update src/api.rs - [`c01603f`](https://github.com/BreizhHardware/ntfy_alerts/commit/c01603f16f297c4e7d5ad113d65d02ff307c70c9) fix(api): Fix missing import ### 📊 Changes **28 files changed** (+9225 additions, -257 deletions) <details> <summary>View changed files</summary> 📝 `.github/dependabot.yaml` (+18 -0) 📝 `.github/workflows/create_dev.yml` (+45 -3) 📝 `.github/workflows/create_release.yml` (+62 -8) 📝 `.github/workflows/dependabot-build.yml` (+24 -11) 📝 `.gitignore` (+1 -0) 📝 `Dockerfile` (+4 -4) 📝 `entrypoint.sh` (+4 -1) 📝 `nginx.conf` (+14 -2) 📝 `src/api.rs` (+98 -1) ➕ `web/.gitignore` (+24 -0) ➕ `web/README.md` (+75 -0) ➕ `web/app.vue` (+26 -0) ➕ `web/assets/css/main.css` (+2 -0) ➕ `web/components/AppFooter.vue` (+6 -0) ➕ `web/components/AppHeader.vue` (+6 -0) ➕ `web/components/DockerRepoSection.vue` (+106 -0) ➕ `web/components/GithubRepoSection.vue` (+106 -0) ➕ `web/components/LatestUpdates.vue` (+48 -0) ➖ `web/index.html` (+0 -69) ➕ `web/nuxt.config.ts` (+25 -0) _...and 8 more files_ </details> ### 📄 Description This pull request introduces significant changes to integrate a Nuxt.js frontend with the existing Rust backend, enhance CI/CD workflows, and improve the Docker setup. The most important changes include adding a frontend build process, updating workflows to handle both frontend and backend artifacts, modifying the API to expose update information, and updating the Docker configuration to serve the frontend alongside the backend. ### Frontend Integration: * Added a Nuxt.js frontend with basic components (`AppHeader`, `AppFooter`, `LatestUpdates`, etc.) and Tailwind CSS for styling. (`web/app.vue`, `web/components/AppFooter.vue`, `web/components/AppHeader.vue`, `web/assets/css/main.css`, [[1]](diffhunk://#diff-391bba2b12d17867ba6d098b2904617871b026ae7a3c33289c819aa9db9925ffR1-R26) [[2]](diffhunk://#diff-39aae688d49a536bf7df7a2d27ca5297116d9477383a74e3c69e84dc8e18fda6R1-R6) [[3]](diffhunk://#diff-1577fdc3d08bfb90d33e9f9171f2d2d5f52801d2624f94313efcc1673a70a89fR1-R6) [[4]](diffhunk://#diff-13d2be2ff1cf8dd95f389b42f546fb58c4dba638bf57282067b5e60a1a56bba5R1-R2) * Added `.gitignore` and `README.md` for the frontend project to manage dependencies and document setup instructions. (`web/.gitignore`, `web/README.md`, [[1]](diffhunk://#diff-eb21b8e770d7801488fd31f4ce7347af008db04ee5dd1e71be870312b62ddf35R1-R24) [[2]](diffhunk://#diff-4a534cf0dab53faad7a19d1926cb05f63ebf793e827bdf11a4a19e0e654ef639R1-R75) ### CI/CD Workflow Enhancements: * Updated `create_dev.yml` and `create_release.yml` workflows to include steps for building the Nuxt.js frontend and uploading it as an artifact. (`.github/workflows/create_dev.yml`, `.github/workflows/create_release.yml`, [[1]](diffhunk://#diff-c4114a59cd84a4cb927fc9222b6c607028df66194e4baa8f53a2640165c3aad0R56-R88) [[2]](diffhunk://#diff-20b4af9a743edb3be348e23e792bf3fb0ad92637b44fafa6c5de878558abce7dR88-R119) * Modified `dependabot-build.yml` to build both the backend and frontend during Dependabot-triggered builds. (`.github/workflows/dependabot-build.yml`, [.github/workflows/dependabot-build.ymlL31-R59](diffhunk://#diff-a4f89406b12426011f056340ff43d5f8d40ffbdf81bfcea59c03537b9604cce7L31-R59)) ### API Enhancements: * Added a new API endpoint `/latest_updates` to fetch the latest updates from the database, including repository, version, and changelog details. (`src/api.rs`, F9aa122fL9R9, [[1]](diffhunk://#diff-adea2445327e39eb215de697b440dbbc02135357380fb612a10a9e659129a46bR72-R76) [[2]](diffhunk://#diff-adea2445327e39eb215de697b440dbbc02135357380fb612a10a9e659129a46bR90) [[3]](diffhunk://#diff-adea2445327e39eb215de697b440dbbc02135357380fb612a10a9e659129a46bR402-R483) ### Docker Configuration Updates: * Updated the `Dockerfile` to include Node.js and serve the Nuxt.js frontend alongside the Rust backend. (`Dockerfile`, [[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L4-R13) [[2]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L23-R23) * Updated `nginx.conf` to proxy requests to the Nuxt.js server for frontend and to the Rust backend for API routes. (`nginx.conf`, [[1]](diffhunk://#diff-1f91f64bfa3fb0a1ece881887af0a2356b8c529a96fb91c1894745b2a1a009aaR12-R21) [[2]](diffhunk://#diff-1f91f64bfa3fb0a1ece881887af0a2356b8c529a96fb91c1894745b2a1a009aaR64-R70) ### Runtime Changes: * Modified `entrypoint.sh` to start the Nuxt.js server in the background alongside the Rust application. (`entrypoint.sh`, [entrypoint.shL9-R12](diffhunk://#diff-6f9d41d046756f0ddc2fcee0626bdb50100d12b88f293734eff742818e03efa2L9-R12)) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
BreizhHardware/ntfy_alerts#22
No description provided.