proxy backend
This commit is contained in:
136
BUILD.md
Normal file
136
BUILD.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# Building WLED Controller for Windows
|
||||
|
||||
This guide explains how to build a standalone Windows executable for WLED Controller.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js 20 or higher
|
||||
- npm
|
||||
|
||||
## Build Steps
|
||||
|
||||
### 1. Install Dependencies
|
||||
|
||||
First, install dependencies for both frontend and backend:
|
||||
|
||||
```powershell
|
||||
# Install backend dependencies
|
||||
cd backend
|
||||
npm install
|
||||
|
||||
# Install frontend dependencies
|
||||
cd ../frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
### 2. Run Database Migrations
|
||||
|
||||
Ensure your database is set up:
|
||||
|
||||
```powershell
|
||||
cd backend
|
||||
npm run prisma:migrate
|
||||
npm run prisma:generate
|
||||
```
|
||||
|
||||
### 3. Build the Executable
|
||||
|
||||
From the backend directory, run:
|
||||
|
||||
```powershell
|
||||
cd backend
|
||||
npm run package
|
||||
```
|
||||
|
||||
This command will:
|
||||
1. Build the frontend and copy it to `backend/public`
|
||||
2. Build the backend TypeScript code to JavaScript
|
||||
3. Package everything into a single Windows executable
|
||||
|
||||
The executable will be created at: `release/wled-controller.exe`
|
||||
|
||||
## Running the Executable
|
||||
|
||||
### First Time Setup
|
||||
|
||||
1. Copy the `wled-controller.exe` file to your desired location
|
||||
2. In the same directory, create a `prisma` folder
|
||||
3. Copy the `backend/prisma/dev.db` file (your database) to the same directory as the exe
|
||||
|
||||
Your directory structure should look like:
|
||||
```
|
||||
your-install-folder/
|
||||
├── wled-controller.exe
|
||||
└── prisma/
|
||||
└── dev.db
|
||||
```
|
||||
|
||||
### Running
|
||||
|
||||
Simply double-click `wled-controller.exe` or run from command line:
|
||||
|
||||
```powershell
|
||||
.\wled-controller.exe
|
||||
```
|
||||
|
||||
The application will start on port 3000 (configurable via PORT environment variable).
|
||||
|
||||
Access the web interface at: http://localhost:3000
|
||||
|
||||
## Configuration
|
||||
|
||||
You can set environment variables before running:
|
||||
|
||||
```powershell
|
||||
# Set custom port
|
||||
$env:PORT=8080
|
||||
.\wled-controller.exe
|
||||
|
||||
# Set custom database path
|
||||
$env:DATABASE_URL="file:./custom-path/wled.db"
|
||||
.\wled-controller.exe
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Database Not Found
|
||||
|
||||
If you see database errors, ensure:
|
||||
- The `prisma` folder exists in the same directory as the exe
|
||||
- The `dev.db` file is in the `prisma` folder
|
||||
- File permissions allow reading/writing
|
||||
|
||||
### Port Already in Use
|
||||
|
||||
If port 3000 is already in use, set a different port:
|
||||
|
||||
```powershell
|
||||
$env:PORT=3001
|
||||
.\wled-controller.exe
|
||||
```
|
||||
|
||||
### Missing Dependencies
|
||||
|
||||
The executable includes all Node.js dependencies, but requires:
|
||||
- Windows 10 or higher (64-bit)
|
||||
- No additional runtime needed
|
||||
|
||||
## Development vs Production
|
||||
|
||||
- **Development**: Use `npm run dev` in both frontend and backend directories
|
||||
- **Production Build**: Use `npm run package` to create the executable
|
||||
|
||||
## File Sizes
|
||||
|
||||
The packaged executable will be approximately 80-100 MB due to:
|
||||
- Node.js runtime
|
||||
- All npm dependencies
|
||||
- Frontend static files
|
||||
- Prisma binaries
|
||||
|
||||
## Notes
|
||||
|
||||
- The executable is self-contained and includes the Node.js runtime
|
||||
- All frontend files are served from the built-in web server
|
||||
- Database file can be backed up by copying the `dev.db` file
|
||||
- Scheduler tasks will run automatically when the executable starts
|
||||
Reference in New Issue
Block a user