Single-page application using React Router v7 for ShipNode deployment.
- Client-side routing with React Router v7
- Vite for fast development and optimized builds
- TypeScript support
- Static frontend deployment
pnpm install
pnpm devServer runs on http://localhost:5173
react-router-app/
├── src/
│ ├── main.tsx
│ ├── App.tsx
│ └── routes/
│ ├── home.tsx
│ └── about.tsx
├── index.html
├── vite.config.ts
├── package.json
├── shipnode.conf
└── README.md
// src/App.tsx
import { createBrowserRouter, RouterProvider } from 'react-router';
import { routes } from './routes';
const router = createBrowserRouter(routes);
export function App() {
return <RouterProvider router={router} />;
}APP_TYPE=frontend
SSH_USER=root
SSH_HOST=your-server-ip
REMOTE_PATH=/var/www/react-app
DOMAIN=yourdomain.comshipnode deployShipNode configures Caddy to handle SPA routing:
- All requests go to
index.html - Client-side router handles the route
- No 404 errors on page refresh
ShipNode auto-detects build output directory:
dist/(Vite default)build/(CRA default)public/(Svelte default)