Bitmutex-Website - Batteries Included Business Starter Template : Strapi5 + Next15 + Postgres + SocketIO
Bitmutex-Website - A modern
, cloud-native
ready-to-use
business website starter template
with all the batteries included from SEO to Reusable Blocks. Built using Strapi 5
at Backend and NextJs 15 SSR
with React 19
in Frontend as a BFF (Backend For Frontend).
Screenshot | Illustration |
---|---|
![]() |
![]() |
- 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)
π¦ 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
Location | Command | Description |
---|---|---|
Project Root | pnpm client |
Run the client development server from the project root. |
pnpm server |
Run the server development server from the project root. | |
pnpm setup:client |
Install dependencies for the client and copy .env file. |
|
pnpm setup:server |
Install dependencies for the server and copy .env file. |
|
pnpm spawn |
Install dependencies for root, client, and server in one go. | |
pnpm dev |
Start Strapi (server) and Next.js (client) in parallel for development. | |
pnpm build |
Build both server and client in parallel, start server, and exit on build result. | |
pnpm start |
Start server and client in parallel (production mode). | |
pnpm seed |
Import seed data into Strapi from seed-data.tar.gz . |
|
pnpm export |
Export Strapi data without encryption to seed-data . |
|
pnpm repo:upstream |
Fetch and merge latest changes from upstream/main . |
|
pnpm repo:sync |
Pull the latest changes from origin/main . |
|
pnpm backup |
Uploads Strapi export seed-data.tar.gz to Cloudflare R2 Storage |
|
Backend Server | pnpm develop |
Start Strapi in development mode. |
pnpm start |
Start Strapi in production mode. | |
pnpm build |
Build Strapi project. | |
pnpm strapi |
Run Strapi CLI commands. | |
pnpm deploy |
Deploy the Strapi project. | |
Frontend Client | pnpm dev |
Start Next.js in development mode using Turbopack. |
pnpm build |
Build the Next.js application for production. | |
pnpm start |
Start Next.js in production mode. | |
pnpm lint |
Run ESLint to check for code quality issues. |
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
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
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
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
pnpm dev
This will start both strapi and nextjs in development mode (next will have live refresh
and watch
enabled)
- 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 runpm2 start ecosystem.config.cjs
-- Runpm2 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 usingpm2 save
andpm2 startup
commands. Use/server/src/admin/vite.config.ts
to control admin dashboard domain access
npx @strapi/upgrade latest
OR
pnpx @strapi/upgrade latest
This will upgrade strapi to its latest version. More info here
You may run this on the project root,
pnpm export
or you may run this in server
directory by doing cd server
pnpm strapi export --no-encrypt -f ../seed-data
After running this a file named seed-data.tar.gz
will be created at project root
docker-compose up --build
This will start:
- PostgreSQL at
localhost:5432
- Strapi CMS at
http://localhost:1337
- Next.js Frontend at
http://localhost:3000
To manually import seed data try:
docker exec -it bitmutex-strapi bash
yarn strapi import -f /seed-data.tar.gz --force
These credentials are created automatically when
AUTO_CREATE_ADMIN=true
indocker-compose.yml
or.env
insideserver
directory.
- Email:
[email protected]
- Password:
strapiadmin
π¨ Change the default password after the first login!
If you encounter issues, feel free to open an issue.
Designed, Developed and Maintained by Bitmutex Technologies