forked from rohit/spurrin-backend
145 lines
2.7 KiB
Markdown
145 lines
2.7 KiB
Markdown
# SpurrinAI Backend
|
|
|
|
A Node.js backend application for SpurrinAI platform.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
project-root/
|
|
├── src/
|
|
│ ├── app.js # App entry point
|
|
│ ├── config/ # Configuration files
|
|
│ ├── controllers/ # Route controllers with business logic
|
|
│ ├── middleware/ # Custom middleware
|
|
│ ├── migrations/ # Database migrations
|
|
│ ├── routes/ # Route definitions
|
|
│ ├── services/ # Business logic
|
|
│ └── utils/ # Utility functions
|
|
├── docs/ # Documentation
|
|
├── logs/ # Application logs
|
|
├── scripts/ # Build and setup scripts
|
|
├── tests/ # Test files
|
|
└── uploads/ # User uploads
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js >= 14.0.0
|
|
- MySQL >= 5.7
|
|
- npm >= 6.0.0
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone git_repository_url
|
|
cd spurrinai-backend (or respected folder )
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. Set up environment variables:
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env with your configuration
|
|
```
|
|
|
|
4. Run the setup script:
|
|
```bash
|
|
npm run setup
|
|
```
|
|
|
|
## Development Mode
|
|
|
|
1. Start the development server with hot-reload:
|
|
```bash
|
|
npm run dev
|
|
```
|
|
# Run migrations up
|
|
```bash
|
|
npm run migrate:up
|
|
```
|
|
## Production Mode
|
|
|
|
1. Build the application:
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
2. Start the production server:
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
3. For production deployment, ensure:
|
|
- Set `NODE_ENV=production` in `.env`
|
|
- Configure proper database credentials
|
|
- Set up SSL/TLS certificates
|
|
- Configure proper logging
|
|
- Set up process manager (PM2 recommended)
|
|
|
|
### Using PM2 (Recommended for Production)
|
|
|
|
1. Install PM2 globally:
|
|
```bash
|
|
npm install -g pm2
|
|
```
|
|
|
|
2. Start the application with PM2:
|
|
```bash
|
|
pm2 start src/app.js --name spurrinai-backend
|
|
```
|
|
|
|
3. Other useful PM2 commands:
|
|
```bash
|
|
# Monitor application
|
|
pm2 monit
|
|
|
|
# View logs
|
|
pm2 logs spurrinai-backend
|
|
|
|
# Restart application
|
|
pm2 restart spurrinai-backend
|
|
|
|
# Stop application
|
|
pm2 stop spurrinai-backend
|
|
|
|
# Flush logs
|
|
pm2 flush
|
|
|
|
# Delete all logs
|
|
pm2 flush spurrinai-backend
|
|
|
|
# Reload application with zero downtime
|
|
pm2 reload spurrinai-backend
|
|
```
|
|
|
|
## Database Migrations
|
|
|
|
```bash
|
|
# Create new migration
|
|
npm run migrate:create
|
|
|
|
# Run all migrations
|
|
npm run migrate
|
|
|
|
# Run migrations up
|
|
npm run migrate:up
|
|
|
|
# Run migrations down
|
|
npm run migrate:down
|
|
```
|
|
|
|
|
|
## Support
|
|
|
|
For support, please contact:
|
|
- Email: contact@tech4biz.io
|
|
- Issue Tracker: GitHub Issues
|
|
|
|
## License
|
|
|
|
UNLICENSED - All rights reserved by Tech4biz Solutions |