{"id":26707277,"url":"https://github.com/aamitn/bitmutex-website","last_synced_at":"2026-05-16T21:13:38.574Z","repository":{"id":282486108,"uuid":"948754299","full_name":"aamitn/bitmutex-website","owner":"aamitn","description":"Bitmutex Website - A Strapi 5 and NextJs15 based businesss starter website template with batteries included.","archived":false,"fork":false,"pushed_at":"2026-05-10T14:58:06.000Z","size":436774,"stargazers_count":23,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-10T16:30:44.170Z","etag":null,"topics":["cms","netxjs","strapi","template","website"],"latest_commit_sha":null,"homepage":"https://bitmutex.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aamitn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-14T22:40:26.000Z","updated_at":"2026-05-10T14:58:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"4dea91aa-4390-4f9f-b973-fba6f0b59800","html_url":"https://github.com/aamitn/bitmutex-website","commit_stats":null,"previous_names":["aamitn/bitmutex-website"],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/aamitn/bitmutex-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fbitmutex-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fbitmutex-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fbitmutex-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fbitmutex-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aamitn","download_url":"https://codeload.github.com/aamitn/bitmutex-website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aamitn%2Fbitmutex-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33119066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","netxjs","strapi","template","website"],"created_at":"2025-03-27T06:28:26.481Z","updated_at":"2026-05-16T21:13:38.569Z","avatar_url":"https://github.com/aamitn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BM Site - Batteries Included Business Starter Template : Strapi5 + Next16 + React19 +  Postgres17 + SocketIO + SSR \u0026 RSC Goodness\n\n**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 16 SSR/AppRouter/RSC` with `React 19` in Frontend as a BFF (Backend For Frontend) alongside `Postgres17` as DB. Supports Latest Node 24 LTS with cloud native and bare-metal deployment options.\n\n[![Better Stack Badge](https://uptime.betterstack.com/status-badges/v1/monitor/1mjch.svg)](https://uptime.betterstack.com/?utm_source=status_badge)\n[![Deploy Strapi \u0026 Next.js via SSH](https://github.com/aamitn/bitmutex-website/actions/workflows/deploy.yml/badge.svg)](https://github.com/aamitn/bitmutex-website/actions/workflows/deploy.yml)\n[![Build \u0026 Publish Docker Image](https://github.com/aamitn/bitmutex-website/actions/workflows/docker_publish.yml/badge.svg)](https://github.com/aamitn/bitmutex-website/actions/workflows/docker_publish.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=aamitn_bitmutex-website\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=aamitn_bitmutex-website)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=aamitn_bitmutex-website\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=aamitn_bitmutex-website)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=aamitn_bitmutex-website\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=aamitn_bitmutex-website)\n[![Docker Hub](https://img.shields.io/badge/Docker%20Hub-bitmutex%2Fbm--site-blue?logo=docker)](https://hub.docker.com/r/bitmutex/bm-site)\n![Docker Pulls](https://img.shields.io/docker/pulls/bitmutex/bm-site)\n![Docker Image Size](https://img.shields.io/docker/image-size/bitmutex/bm-site/latest)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=aamitn_bitmutex-website\u0026metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=aamitn_bitmutex-website)\n[![GitHub release](https://img.shields.io/github/v/release/aamitn/bitmutex-website)](https://github.com/aamitn/bitmutex-website/releases/latest)\n[![GitHub release](https://img.shields.io/github/v/release/aamitn/bitmutex-website?include_prereleases)](https://github.com/aamitn/bitmutex-website/releases)\n\n\u003c!--\n\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=aamitn_bitmutex-website\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=aamitn_bitmutex-website)\n--\u003e\n\n Manually [DOWNLOAD](https://github.com/aamitn/bitmutex-website/releases/download/INTERNAL-0/seed-data.tar.gz) INIT SEED DATA and `must be placed in repo root` for versions below `2.8.40` . Data in [this](https://github.com/aamitn/bitmutex-website/releases/tag/INTERNAL-0) internal releae\n\n## SINGLE COMMAND DEPLOY 🛠️📦🚀\n\n- For  macOS / Linux(Bash)\n```sh\ncurl -sL https://raw.githubusercontent.com/aamitn/bitmutex-website/main/scripts/install.sh | bash\n```\n\n- For Windows (PowerShell)\n```sh\nirm https://raw.githubusercontent.com/aamitn/bitmutex-website/main/scripts/install.ps1 | iex\n```\n\n- For Windows (CMD)\n```sh\npowershell -ExecutionPolicy Bypass -NoProfile -Command \"irm https://raw.githubusercontent.com/aamitn/bitmutex-website/main/scripts/install.ps1 | iex\"\n\nOR\n\ncurl -fsSL https://raw.githubusercontent.com/aamitn/bitmutex-website/main/scripts/install.ps1 | powershell -ExecutionPolicy Bypass -NoProfile -\n```\n\u003cimg src=\"https://gitlab.com/aamitn/assets/-/raw/main/bm-site-data/lighthouse.png\" width=\"450\" height=\"auto\"\u003e\n\n\n| Screenshot | Illustration |\n|------------|--------------|\n| \u003cimg src=\"https://gitlab.com/aamitn/assets/-/raw/main/bm-site-data/ss.png\" width=\"450\" height=\"250\"\u003e | \u003cimg src=\"https://github.com/aamitn/bitmutex-website/releases/download/INTERNAL-0/illustration.gif\" width=\"450\" height=\"250\"\u003e |\n\n\u003cimg src=\"https://gitlab.com/aamitn/assets/-/raw/main/bm-site-data/ER_Diagram.png\" width=\"800\" height=\"auto\"\u003e\n\n\n## 🚀 Features\n-  **Strapi 5 CMS** (Headless API-driven backend)\n-  **Next.js 16** (Fast, SSR-capable frontend)\n-  **PostgreSQL 17** (Database for Strapi)\n-  **Docker-Compose Support** (For seamless development \u0026 deployment)\n-  **Native Built-In Live Chat to Discord** (Powered by Socket.io integrated within strapi, No 3rd Party Service/Embed/Widgets)\n-  **Strapi Auto-Admin User Creation** (Creates admin user on first run)\n-  **Health Check \u0026 Auto-Restart** (Ensures services stay healthy)\n-  **Sitewide Dynamic SEO** (with Strapi SEO Plugin Integration)\n-  **Multiple Custom Collections, Reusable Blocks and Single Types**\n-  **Real-Time Features** (Provides live website visitor count)\n\n\n## 📂 Project Structure\n```\n📦 bitmutex-website\n├── 📂 client # Next.js frontend\n\t\t├── Dockerfile\n├── 📂 server # Strapi backend (Backend CMS)\n\t\t├── Dockerfile\n├── 📜 copy-env.mts # Used by root level project package.json for auto copying of .env.example to .env in both `client` and `server` folders\n├── 📜 docker-compose.yml # Container configuration\n├── 📜 seed-data.tar.gz # Database seed (must be imported manually for data reproducability)\n├── 📜 ecosystem.config.cjs (Used for production deployments with PM2)\n├── 📜 package.json (root level dependencies to initialize setup of client and server apps)\n├── 📜 package.lock.json (npm lockfile)\n├── 📜 yarn.lock(yarn lockfile, YARN is preferred for this project )\n└── 📜 README.md # This file\n```\n\n## Available Commands\n\n| Location        | Command              | Description |\n|-----------------|----------------------|-------------|\n| **Project Root** | `pnpm client`        | Run the **client** development server from the project root. |\n|                 | `pnpm server`        | Run the **server** development server from the project root. |\n|                 | `pnpm setup:client`  | Install dependencies for the client and copy `.env` file. |\n|                 | `pnpm setup:server`  | Install dependencies for the server and copy `.env` file. |\n|                 | `pnpm spawn`         | Install dependencies for root, client, and server in one go. |\n|                 | `pnpm dev`           | Start **Strapi** (server) and **Next.js** (client) in parallel for development. |\n|                 | `pnpm build`         | Build both server and client in parallel, start server, and exit on build result. |\n|                 | `pnpm start`         | Start server and client in parallel (production mode). |\n|                 | `pnpm seed`          | Import seed data into Strapi from `seed-data.tar.gz`. |\n|                 | `pnpm export`        | Export Strapi data without encryption to `seed-data`. |\n|                 | `pnpm repo:upstream` | Fetch and merge latest changes from `upstream/main`. |\n|                 | `pnpm repo:sync`     | Pull the latest changes from `origin/main`. |\n|                 | `pnpm backup`        | Uploads Strapi export `seed-data.tar.gz` to Cloudflare R2 Storage |\n|                 | `pnpm clean`        | Removes root and client , server folder's node_modules, dist, build, .turbo and other static folders |\n|                 | `pnpm deepclean`        | Same as clean with added lockfile removal |\n| **Backend Server**      | `pnpm develop`       | Start Strapi in development mode. |\n|                 | `pnpm start`         | Start Strapi in production mode. |\n|                 | `pnpm build`         | Build Strapi project. |\n|                 | `pnpm strapi`        | Run Strapi CLI commands. |\n|                 | `pnpm deploy`        | Deploy the Strapi project. |\n| **Frontend Client**      | `pnpm dev`           | Start Next.js in development mode using Turbopack. |\n|                 | `pnpm build`         | Build the Next.js application for production. |\n|                 | `pnpm start`         | Start Next.js in production mode. |\n|                 | `pnpm lint`          | Run ESLint to check for code quality issues. |\n\n  \n## ⚙️Setup Instructions\n\n 0️⃣ 1-Step Docker Deploy \n ```sh\n git clone --depth=1 https://github.com/aamitn/bitmutex-website.git \u0026\u0026 cd bitmutex-website \u0026\u0026 docker compose up\n```\n##### Read docker build instructions [DOCKER.md](/DOCKER.md) , for Kubernetes Deployments and Helm Charts Read [K8S.md](/K8S.md)  \n\n\n### 1️⃣ **Clone the Repository**\n```sh\ngit clone --depth=1 https://github.com/aamitn/bitmutex-website.git\ncd  bitmutex-website\n```\n##### omit the `--depth=1` if you want to download the repo with lifetime git history , genrally required for devs contributing to this project\n\n\n### 2️⃣ **Install Dependencies and Setup Env File**\n\n```sh\npnpm spawn\n```\nThis 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.\n- Set `DATABASE_CLIENT=postgres/mysql/sqlite`\n- Go to `/server/config/database.ts` and provide DB Credentials there\n\n\n### 3️⃣ **Run Strapi and Next initially to create strapi DB schemas**\n  ```\n pnpm dev\n  ```\n- After running this strapi should start, go to `http://localhost:1337` and create admin user\n- Ctrl-C to stop both strapi and next\n- For Local Dev , in /server (Strapi) folder , edit `config/server.ts` and comment out the below line:\n```bash\nurl: 'https://strapiadmin.bitmutex.com', //backend fqdn url //comment for local-dev\n```\n\n### 4️⃣ **Import/Seed DB**\nYou may run this on the project root,\n  ```\n pnpm seed\n  ```\n  or you may run this in `server` directory by doing `cd server`\n  ```sh\n pnpm strapi import -f ../seed-data.tar.gz --force\n  ```\n After running this strapi should strart, go to `http://localhost:1337` and create admin user\n\n\n### 5️⃣.1️⃣  **Finally Start the application for development**\n  ```sh\npnpm dev\n  ```\n  This will start both strapi and nextjs  in development mode (next will have `live refresh` and `watch` enabled)\n\n### 5️⃣.1️⃣  **Start the application in prod mode**\n  ```sh\npnpm build  OR pnpm turbo build --no-cache\npnpm start\n  ```\n  This will start both strapi and nextjs  in production mode, no debugging.\n \n### 6️⃣  **Build for Production**\n- Change your .env vars accordingly for production use case\n- Go to project root and run `pnpm build`\n- Ensure build is successful adn run `pnpm start`\n\u003e To run in cloud VPS/Hosting, use `pm2` , just close any other running instances\n  -- Navigate to project root and run `pm2 start ecosystem.config.cjs`\n  -- Run `pm2 list` to check status and go to [`http://localhost:1337] and [http://localhost:3001]`\n  -- If all started successfully, then autostart the app on machine restart using `pm2 save` and `pm2 startup`\n\u003e If using  `oxmgr` , just close any other running instances\n  -- Navigate to project root and run `oxmgr apply oxfile.toml`\n  -- Run `pm2 list` to check status and go to [`http://localhost:1337] and [http://localhost:3001]`\n  -- If all started successfully, then autostart the app on machine restart using `oxmgr service install` and `oxmgr ui` to monitor. \n  commands.\n\u003e Use `/server/src/admin/vite.config.ts` `/server/config/server.ts` to control admin dashboard domain access\n\n### 7️⃣  **Upgrade Strapi to Latest Version**\n  ```sh\n  npx @strapi/upgrade latest \n  OR\n  pnpx @strapi/upgrade latest \n  ```\n  This will upgrade  strapi to its latest version. More info [here](https://docs.strapi.io/cms/upgrade-tool)\n\n### 8️⃣ **Export DB**\nYou may run this on the project root,\n  ```\n pnpm export\n  ```\n  or you may run this in `server` directory by doing `cd server`\n  ```sh\n  pnpm strapi export --no-encrypt -f ../seed-data\n  ```\n After running this a file named `seed-data.tar.gz` will be created at project root\n\n\n## ☁️ Cloud Native Setup Instructions\n\n```sh\ndocker-compose  up  --build\n```\n\nThis will start:\n- PostgreSQL at `localhost:5432`\n- Strapi CMS at `http://localhost:1337`\n- Next.js Frontend at `http://localhost:3000`\n\n\n## 🔑 Default Admin Credentials\n\u003e These credentials are created automatically when `AUTO_CREATE_ADMIN=true` in `docker-compose.yml` or `.env` inside `server` directory.\n\n-  **Email**: `admin@bitmutex.com`\n-  **Password**: `strapiadmin`   \n🚨 **Change the default password after the first login!**\n\n\n## 📞 Support\nIf you encounter issues, feel free to [ open an issue](https://github.com/aamitn/bitmutex-website/issues/new/choose).\nDesigned, Developed and Maintained by `Bitmutex Technologies`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faamitn%2Fbitmutex-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faamitn%2Fbitmutex-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faamitn%2Fbitmutex-website/lists"}