mirror of
https://github.com/System-End/My-website.git
synced 2026-04-20 00:25:21 +00:00
My website
|
|
||
|---|---|---|
| .github/workflows | ||
| .vscode | ||
| public | ||
| src | ||
| .editorconfig | ||
| .env.example | ||
| .eslintrc.cjs | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| dev.ps1 | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.worker.json | ||
| vite.config.ts | ||
| wrangler.toml | ||
Personal Website with Cloudflare Integration
🏗️ Architecture Overview
This project implements a modern web application architecture leveraging Cloudflare's edge computing capabilities. The architecture consists of two primary components:
- React Frontend: A Single Page Application (SPA) built with React and TypeScript
- Cloudflare Pages: Static site hosting with global CDN distribution
🚀 Getting Started
Prerequisites
- Node.js (v16.0.0 or higher)
- npm (v7.0.0 or higher)
- Cloudflare account
- Last.fm account and API key
- Git
API Keys Setup
-
Last.fm API Key:
- Visit Last.fm API Account Creation
- Sign in with your Last.fm account
- Fill in the application details
- Save your API key
- Your username can be found in your profile URL: last.fm/user/YOUR_USERNAME
-
Cloudflare Setup:
- Create an account at Cloudflare
- Get your Account ID from the dashboard
- Create an API token with Pages deployment permissions
Environment Setup
- Clone the repository:
git clone https://github.com/EndofTimee/personal-site
cd personal-site
- Create a
.envfile in the root directory:
VITE_LASTFM_API_KEY=your_lastfm_api_key
VITE_LASTFM_USERNAME=your_lastfm_username
CLOUDFLARE_API_TOKEN=your_cloudflare_api_token
CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id
- Install dependencies:
npm install
💻 Local Development
Start the development server:
npm start
The application will be available at http://localhost:3000
Component Structure
The project follows a modular component structure:
src/
├── components/
│ ├── LastFMTrack/ # Music integration
│ ├── GithubRepos/ # GitHub repository display
│ ├── LoadingFox/ # Loading states
│ └── ParallaxEffect/ # Visual effects
├── App.tsx # Main application component
└── index.tsx # Application entry point
🌐 Deployment
Automated Deployment
The project includes a PowerShell deployment script:
npm run deploy
This script:
- Loads environment variables
- Installs dependencies
- Builds the React application
- Deploys to Cloudflare Pages
- Sets up environment secrets
Manual Deployment Steps
If you need to deploy manually:
npm run build
npx wrangler pages deploy ./dist
Environment Configuration
Cloudflare Pages Configuration:
-
Build settings:
- Build command:
npm run build - Build output directory:
dist - Node.js version: 16 (or higher)
- Build command:
-
Environment variables:
- Production branch:
main - Preview branches:
dev/*
- Production branch:
🐛 Troubleshooting
Common Issues
-
Build Issues:
# Clear dependency cache rm -rf node_modules npm clean-cache --force npm install -
Environment Variables:
# Verify environment variables npx wrangler secret list
📚 Additional Resources
🤝 Contributing
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details