mirror of
https://github.com/Nighthawk42/VDM.git
synced 2026-08-30 04:30:21 +00:00
2.4 KiB
2.4 KiB
VDM Project To-Do List
This document tracks major functional, operational, and architectural improvements for the VDM server. Unlike roadmap.md, this list is focused on engineering and deployment tasks rather than user-facing gameplay features.
1. Production-Ready Web Server & SSL
Goal: Move beyond the development server and mkcert to a proper, secure production setup.
- [ ] Reverse Proxy: Deploy the application behind a production-grade reverse proxy like Nginx or Caddy. This is the standard for web applications, providing better performance, security, and stability than running Uvicorn directly exposed to the internet.
- [ ] Proper SSL: Use the reverse proxy to manage SSL certificates automatically with Let's Encrypt. This will provide a real, trusted certificate for any domain the application is hosted on, removing the need for
mkcert. - [ ] Process Management: Use a process manager like Gunicorn to run the FastAPI application, allowing for multiple worker processes and better resource management.
2. Docker Support
Goal: Containerize the entire application for easy, reproducible, and isolated deployments.
- [ ] Create a
Dockerfile: Define the environment for the VDM server, including the Python version, dependency installation fromrequirements.txt, and the command to run the server. - [ ] Create a
docker-compose.yml: Write a Compose file to make it trivial to start the entire application stack (the VDM server and potentially its databases) with a singledocker-compose upcommand. This dramatically simplifies setup for new developers and production environments.
3. Modern Frontend Framework Migration
Goal: Rebuild the frontend using a modern JavaScript framework to improve scalability, maintainability, and the developer experience.
- [ ] Choose a Framework: Evaluate and select a framework. React (with Vite for the build tool) is a strong contender due to its vast ecosystem and component-based architecture, which is a perfect fit for our UI.
- [ ] Component-Based Refactoring: Break down the existing HTML and JavaScript into reusable components (e.g.,
ChatLog,PlayerList,MessageInput). - [ ] State Management: Replace the current manual state object with a dedicated state management library like Zustand or Redux Toolkit for a more robust and predictable UI.