forked from rohit/spurrin-backend
2.7 KiB
2.7 KiB
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
- Clone the repository:
git clone git_repository_url
cd spurrinai-backend (or respected folder )
- Install dependencies:
npm install
- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration
- Run the setup script:
npm run setup
Development Mode
- Start the development server with hot-reload:
npm run dev
Run migrations up
npm run migrate:up
Production Mode
- Build the application:
npm run build
- Start the production server:
npm start
- For production deployment, ensure:
- Set
NODE_ENV=productionin.env - Configure proper database credentials
- Set up SSL/TLS certificates
- Configure proper logging
- Set up process manager (PM2 recommended)
- Set
Using PM2 (Recommended for Production)
- Install PM2 globally:
npm install -g pm2
- Start the application with PM2:
pm2 start src/app.js --name spurrinai-backend
- Other useful PM2 commands:
# 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
# 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