strapi-nextjs-docker-boilerplate
strapi-nextjs-docker-boilerplate copied to clipboard
🎨 Boilerplate for building Dockerized 🐳 applications using Strapi v4 + Next.js + Postgres +Nginx
Table of Contents
- Current Status
- What for?
- Features & Stacks
- Backend
- Frontend
- Database
- Reverse Proxy
- Containerization
- Environment Variables Management
- Installation and Usage
- Installation
- Usage
- Security for Endpoints
- Contributing
- Authors
- License
Current Status
This package is currently under development and should be consider BETA in terms of state. We are currently accepting contributions to help develop and maintain this package.
For more information on contributing please see the contrib message below.
What for?
- Easy development & production environment
- Easy frontend adoption (just delete frontend folder and create your best)
- Creating full-stack applications for small or medium size projects
Features & Stacks
Backend
- Strapi v4
- Node.js v16 for Docker Image
- Yarn package manager
Frontend
- Next.js v12.2
- React.js v18.2
- Typescript v4.7
- Node.js-alpine for Docker Image
- Yarn package manager
Database
- Postgres v12-alpine
- Linux/amd64 platform for platform error on Apple M1 chips
- Named volumes
Reverse Proxy
- Nginx Latest
- Fastcgi support
- Mime-types
- Security configs
Containerization
- Docker-compose v3 for container orchestration 🐳
- Seperated Dockerfiles for development and production
Environment Variables Management
- One file for backend + frontend + database + nginx
Installation and Usage
You have to currently exist Docker and Docker Compose on your system:
Installation
- Clone the repo
- Copy
.env.examplefile to.env - Change credentials with secure and strong ones
- If you are on development, be sure
ENVIRONMENT=developmenton .env file - If you are on production or want to production build, change with
ENVIRONMENT=production - Be sure
localhost:80is accesible and not using from another process (Nginx runs on 80) - Pull necessary images:
docker-compose pull
Usage
- Build and up your docker-compose file if everything is ok:
docker-compose build && docker-compose up -d
- Now you can access to Next.js frontend on
http://localhostand Strapi backend (admin) onhttp://localhost/strapi/admin - Register with your e-mail and password.
- Go to
Content-Type Builder, It has sample content type asArticleand this content type has three field astitlebodyandcover. - For creating new
Article, go toContent Managerand clickArticleon left pane, clickCreate new entryand fill the blanks > click Publish! - For testing API endpoint you need to give public access to the
Articleso- Go to
Settings>User & Permissions Plugin>Roles>Public>Articleand selectfindfindOne, If you need more, select what you want and save! - Go to the
http://localhost/strapi/api/articles
- Go to
Security for Endpoints
Secure all your Strapi related endpoints in Nginx, make sure to use API tokens to connect to the backend and keep this information private. The Nginx config that on the repo is for development, not production ⛔️
Contributing
We are always welcome for contributions to help shape this package.
If interested please feel free to email the maintainer Burak at: [email protected]
Authors
- Burak Ibis:
- Github: @buraste
- Twitter: @helloburaste
License
See the LICENSE file for licensing information.