A modern website for the Kungpao China Rock Revival Band, built with Strapi (headless CMS) and Next.js.
- 🎵 Music Library - Songs with synchronized lyrics (original Chinese + Czech translation)
- 📅 Event Calendar - Concert dates with "Add to Calendar" functionality
- 🖼️ Media Galleries - Photo and video galleries from performances
- 🛍️ E-commerce Ready - Infrastructure for merch store
- 📱 Responsive Design - Mobile-first, works on all devices
- 🌐 Bilingual Support - Czech and Chinese content
- Strapi 4.x - Headless CMS
- PostgreSQL - Database
- Node.js 20+ - Runtime
- Next.js 14+ - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn/ui - UI components
- Docker & Docker Compose - Containerization
- GitHub Actions - CI/CD
- Dev Containers - Development environment
- Docker Desktop
- Visual Studio Code with Dev Containers extension
- Git
-
Clone the repository
git clone https://github.com/musarosro/kungpao-web.git cd kungpao-web -
Open in Dev Container
- Open VS Code
- Press
Cmd+Shift+P(macOS) orCtrl+Shift+P(Windows/Linux) - Select "Dev Containers: Reopen in Container"
- Wait for the container to build and install dependencies
-
Start Strapi Backend
cd backend npm run developBackend will be available at http://localhost:1337
-
Start Next.js Frontend (in a new terminal)
cd frontend npm run devFrontend will be available at http://localhost:3000
- Create your Strapi admin account at http://localhost:1337/admin
- Configure content types (see Content Structure section)
- Add some initial content
- The Next.js frontend will automatically fetch data from Strapi
kungpao-web/
├── .devcontainer/ # Dev container configuration
├── .github/ # GitHub Actions workflows
├── backend/ # Strapi CMS
│ ├── src/
│ │ ├── api/ # Content type APIs
│ │ └── extensions/ # Custom extensions
│ ├── config/ # Strapi configuration
│ ├── database/ # Database files
│ └── public/ # Uploaded media
├── frontend/ # Next.js application
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── lib/ # Utilities and helpers
│ └── public/ # Static assets
└── legacy/ # Old website (reference)
- Song - Music tracks with audio files, lyrics (original + translation), sync timestamps
- Event - Concert dates, venues, descriptions, calendar integration data
- Band Member - Member profiles, instruments, bio
- Gallery Item - Photos and videos with categories and descriptions
- News - Latest updates and announcements
- Product (future) - Merchandise items for e-commerce
# Build backend
cd backend
npm run build
# Build frontend
cd frontend
npm run buildCI/CD workflows are configured for:
- Linting and testing on PR
- Building Docker images
- Deploying to production server
See .github/workflows/ for details.
HOST=0.0.0.0
PORT=1337
APP_KEYS=generate-random-keys
API_TOKEN_SALT=generate-random-salt
ADMIN_JWT_SECRET=generate-random-secret
TRANSFER_TOKEN_SALT=generate-random-salt
JWT_SECRET=generate-random-secret
DATABASE_CLIENT=postgres
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=kungpao
DATABASE_USERNAME=kungpao
DATABASE_PASSWORD=your-secure-password
DATABASE_SSL=false
NODE_ENV=developmentNEXT_PUBLIC_STRAPI_API_URL=http://localhost:1337
STRAPI_API_TOKEN=your-api-tokenThis is a private project for Kungpao band. For suggestions or issues, please contact the repository owner.
© 2025 Kungpao China Rock Revival Band. All rights reserved.