150 lines
3.2 KiB
Markdown
150 lines
3.2 KiB
Markdown
# Deploy Setup Guide
|
|
|
|
This guide explains how to configure the admin dashboard to deploy to your main KHY website when they are in separate repositories.
|
|
|
|
## Repository Structure Examples
|
|
|
|
### Example 1: Sibling Directories
|
|
|
|
```
|
|
Documents/
|
|
├── khy_website/ # Main website repository
|
|
│ ├── index.html
|
|
│ ├── data/
|
|
│ └── assets/
|
|
└── khy_admin/ # Admin repository
|
|
├── admin.html
|
|
├── data/
|
|
└── assets/
|
|
```
|
|
|
|
**Setup**: Run `npm run setup` and enter `../khy_website`
|
|
|
|
### Example 2: Different Parent Directories
|
|
|
|
```
|
|
Documents/
|
|
├── projects/
|
|
│ └── khy_website/ # Main website repository
|
|
└── admin_tools/
|
|
└── khy_admin/ # Admin repository
|
|
```
|
|
|
|
**Setup**: Run `npm run setup` and enter `../../projects/khy_website`
|
|
|
|
### Example 3: Absolute Paths
|
|
|
|
```
|
|
/Users/george/Documents/khy_website/ # Main website
|
|
/Users/george/Documents/admin_tools/ # Admin repository
|
|
```
|
|
|
|
**Setup**: Run `npm run setup` and enter `/Users/george/Documents/khy_website`
|
|
|
|
## Setup Process
|
|
|
|
1. **Run the setup script**:
|
|
|
|
```bash
|
|
npm run setup
|
|
```
|
|
|
|
2. **Enter the path to your main KHY website**:
|
|
|
|
- Use relative paths like `../khy_website` or `../../projects/khy_website`
|
|
- Use absolute paths like `/full/path/to/khy_website`
|
|
|
|
3. **Verify the configuration**:
|
|
- The script will check if the path exists
|
|
- It will verify required files are present
|
|
- It will update `deploy-config.js` with your settings
|
|
|
|
## Manual Configuration
|
|
|
|
If you prefer to configure manually, edit `deploy-config.js`:
|
|
|
|
```javascript
|
|
module.exports = {
|
|
targets: {
|
|
main: "../khy_website", // Change this to your path
|
|
},
|
|
defaultTarget: "main",
|
|
// ... rest of config
|
|
};
|
|
```
|
|
|
|
## Testing the Setup
|
|
|
|
After setup, test the configuration:
|
|
|
|
```bash
|
|
# Test with the configured path
|
|
npm run deploy
|
|
|
|
# Test with a specific path
|
|
node deploy.js /path/to/your/khy_website
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### "Target directory does not exist"
|
|
|
|
- Check the path you entered during setup
|
|
- Use absolute paths if relative paths don't work
|
|
- Make sure the main website directory exists
|
|
|
|
### "Missing required files"
|
|
|
|
- Ensure your main website has `index.html` and `data/products.json`
|
|
- The admin will create these files if they don't exist
|
|
|
|
### "Permission denied"
|
|
|
|
- Make sure you have write permissions to the main website directory
|
|
- On macOS/Linux, you might need to adjust file permissions
|
|
|
|
## Advanced Usage
|
|
|
|
### Multiple Targets
|
|
|
|
You can configure multiple deployment targets:
|
|
|
|
```javascript
|
|
targets: {
|
|
staging: "../khy_website_staging",
|
|
production: "../khy_website",
|
|
backup: "/backup/khy_website"
|
|
}
|
|
```
|
|
|
|
Then deploy to specific targets:
|
|
|
|
```bash
|
|
node deploy.js staging
|
|
node deploy.js production
|
|
```
|
|
|
|
### Custom File Mappings
|
|
|
|
Modify `filesToCopy` in `deploy-config.js` to copy different files:
|
|
|
|
```javascript
|
|
filesToCopy: [
|
|
{
|
|
source: "data/products.json",
|
|
target: "data/products.json",
|
|
description: "Product catalog data",
|
|
},
|
|
{
|
|
source: "assets/images",
|
|
target: "assets/images",
|
|
description: "Product images",
|
|
isDirectory: true,
|
|
},
|
|
{
|
|
source: "config/settings.json",
|
|
target: "config/admin-settings.json",
|
|
description: "Admin settings",
|
|
},
|
|
];
|
|
```
|