Skip to content

Bitmutex Website - A Strapi5 and NextJs15 based businesss starter website template with batteries included.

License

Notifications You must be signed in to change notification settings

aamitn/bitmutex-website

Repository files navigation

Image

Bitmutex-Website - Batteries Included Business Starter Template : Strapi5 + Next15 + Postgres + SocketIO

Bitmutex-Website - A modern, containerized businness website starter template with all the batteries included from SEO to Reusable Blocks

🚀 Features

  • Strapi 5 CMS (Headless API-driven backend)

  • Next.js 15 (Fast, SSR-capable frontend)

  • PostgreSQL 15 (Database for Strapi)

  • Docker-Compose Support (For seamless development & deployment)

  • Native Built-In Live Chat to Discord (Powered by Socket.io integrated within strapi, No 3rd Party Service/Embed/Widgets)

  • Strapi Auto-Admin User Creation (Creates admin user on first run)

  • Health Check & Auto-Restart (Ensures services stay healthy)

  • Sitewide Dynamic SEO (with Strapi SEO Plugin Integration)

  • Multiple Custom Collections, Reusable Blocks and Single Types

  • Real-Time Features (Provides live website visitor count)


📂 Project Structure

📦 bitmutex-website
├── 📂 client # Next.js frontend
		├── Dockerfile
├── 📂 server # Strapi backend (Backend CMS)
		├── Dockerfile
├── 📜 copy-env.mts # Used by root level project package.json for auto copying of .env.example to .env in both `client` and `server` folders
├── 📜 docker-compose.yml # Container configuration
├── 📜 seed-data.tar.gz # Database seed (must be imported manually for data reproducability)
├── 📜 ecosystem.config.cjs (Used for production deployments with PM2)
├── 📜 package.json (root level dependencies to initialize setup of client and server apps)
├── 📜 package.lock.json (npm lockfile)
├── 📜 yarn.lock(yarn lockfile, YARN is preferred for this project )
└── 📜 README.md # This file

⚙️Setup Instructions

1️⃣ Clone the Repository

git clone --depth=1 https://github.com/aamitn/bitmutex-website.git
cd  bitmutex-website
omit the --depth=1 if you want to download the repo with lifetime git history , genrally required for devs contributing to this project

2️⃣ Install Dependencies and Setup Env File

pnpm spawn

This will run pnpm install and also copies .env.example to .env on both client and server directories. After this step setup your .env vars accordingly on the auto-generated file. Create your databases as required. Schema will be auto-generated by Strapi.

  • Set DATABASE_CLIENT=postgres/mysql/sqlite
  • Go to /server/config/database.ts and provide DB Credentials there

3️⃣ Run Strapi and Next initially to create strapi

pnpm dev
  • After running this strapi should start, go to http://localhost:1337 and create admin user
  • Ctrl-C to stop both strapi and next

4️⃣ Import/Seed DB

You may run this on the project root,

pnpm seed

or you may run this in server directory by doing cd server

pnpm strapi import -f ../seed-data.tar.gz --force

After running this strapi should strart, go to http://localhost:1337 and create admin user

5️⃣ **Finally Start the application for development **

pnpm dev

This will start both strapi and nextjs in development mode (next will have live refresh and watch enabled)

6️⃣ Build for Production

  • Change your .env vars accordingly for production use case
  • Go to project root and run pnpm build
  • Ensure build is successful adn run pnpm start

To run in cloud VPS/Hosting, use pm2 , just close any other running instances -- Navigate to project root and run pm2 start ecosystem.config.cjs -- Run pm2 list to check status and go to [http://localhost:1337] and [http://localhost:3001] -- If all started successfully, then autostart the app on machine restart using pm2 save and pm2 startup commands. Use /server/src/admin/vite.config.ts to control admin dashboard domain access

7️⃣ **Upgrade Strapi to Latest Version **

npx @strapi/upgrade latest 
OR
pnpx @strapi/upgrade latest 

This will upgrade strapi to its latest version. More info here

⚙️Cloud Native Setup Instructions

docker-compose  up  --build

This will start:

  • PostgreSQL at localhost:5432

  • Strapi CMS at http://localhost:1337

  • Next.js Frontend at http://localhost:3000

4️⃣ Manual Data Import (Strapi Limitation)

⚠️ Strapi does NOT support data import in Docker builds (GitHub Issue-17809)

To manually import seed data try:

docker  exec  -it  bitmutex-strapi  bash
yarn  strapi  import  -f  /seed-data.tar.gz  --force

🔑 Default Admin Credentials

These credentials are created automatically when AUTO_CREATE_ADMIN=true in docker-compose.yml or .env inside server directory.

🚨 Change the default password after the first login!


📞 Support

If you encounter issues, feel free to open an issue.

Designed, Developed and Maintained by Bitmutex Technologies

About

Bitmutex Website - A Strapi5 and NextJs15 based businesss starter website template with batteries included.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages