A modern, AI-powered personal website built with Node.js and Express, featuring multi-language support and dynamic content loading.
- 🌐 Multi-language support (English/Chinese)
- 📱 Responsive design with modern UI/UX
- 📊 Visitor counting system
- 📝 Dynamic content loading
- ✨ Markdown article support
- 🔄 Automatic language detection
- 🎨 Beautiful animations and transitions
- Node.js (v14 or higher)
- npm (v6 or higher)
- A reverse proxy (recommended: Nginx) for production deployment
- Clone the repository:
git clone https://github.com/qiaozhishuo/qiaozhishuo.com.git
cd qiaozhishuo.com
- Install dependencies:
npm install
- Start the development server:
npm run dev
The site will be available at http://localhost:3000
.
├── content/ # Content files (markdown)
│ ├── blog/
│ ├── news/
│ └── media/
├── css/ # Stylesheets
├── js/ # JavaScript files
├── nginx/ # Nginx configuration samples
└── deploy/ # Deployment scripts
- Create a
.env
file in the root directory:
PORT=3000
NODE_ENV=development
- Configure your domain in the Nginx configuration:
- Copy
nginx/sample.conf
to create your own configuration - Replace
your-domain.com
with your actual domain - Update SSL certificate paths
- Set up SSL certificates (recommended: Let's Encrypt):
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
- Configure Nginx:
- Use the sample configuration in
nginx/sample.conf
as a template - Update domain names and SSL certificate paths
- Start the application:
npm start
- Never commit sensitive information:
- SSL certificates
- Environment variables
- Server configurations
- API keys
- Use secure headers (already configured in Nginx sample)
- Keep dependencies updated
- Use HTTPS in production
- Implement rate limiting for API endpoints
- Create markdown files in
content/news/
- Update
content/news/index.json
- Support both English and Chinese versions
- English version:
article-name.md
- Chinese version:
article-name-zh.md
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - See LICENSE for details
For support, please open an issue in the GitHub repository.