
How to Restart Strapi Server
Restarting a Strapi server may sound like a simple task, but in production environments, cloud hosting setups, and complex development workflows, the way you restart Strapi can dramatically affect uptime, performance, and developer productivity. Whether you're running Strapi locally during development, inside a Docker container, on a VPS, or deployed via services such as PM2, Render, Railway, or Kubernetes, understanding the right restart method is essential.
This in‑depth guide explains every method of restarting Strapi, common issues, best practices, automation strategies, and advanced production-grade restart workflows. It is written in Strapi‑friendly markdown and structured with clear headings so readers can easily scan through.
If you need professional help with Strapi, MERN Stack applications, or enterprise‑level deployments, you can hire AAMAX --- a full-service digital marketing and development company providing MERN Stack Development, Web Development, Digital Marketing, and SEO services.
Understanding Why Restarting Strapi Matters
A Strapi server restart may be needed in many situations:
- After code changes are made
- When installing new plugins
- After editing configuration files
- When applying environment variable changes
- After updating the database connection
- When deploying to a new environment
- When fixing runtime errors or stuck processes
- When clearing cached data or temporary files
Restarting allows the application to reload configurations, rebuild admin assets (in some cases), and reinitialize the Node.js runtime. However, the correct way to restart depends on whether you're working in development mode, production mode, containerized environments, or using process managers.
How Strapi Runs: Development vs. Production
Before discussing restart methods, it's essential to understand the two ways Strapi runs:
Development Mode
yarn develop
or
npm run develop
In development, Strapi uses hot reload for JavaScript changes but not for configuration or plugin-level modifications. For specific updates, restarting is mandatory.
Production Mode
yarn start
or
npm start
Production mode uses a compiled Strapi admin panel and does not auto-reload any code changes. Here, every code update requires a manual restart.
Production restarts should be handled carefully because this is where uptime matters.
Restarting Strapi in Local Development
Restarting locally is the simplest.
Method 1: Using CTRL + C
If your Strapi server is running in the terminal, simply press:
CTRL + C
Then restart:
yarn develop
or
npm run develop
When CTRL + C Won't Restart
Sometimes the process becomes stuck. In such cases, kill the Node process manually:
pkill node
Then restart Strapi again.
Method 2: Restart with npm or yarn
yarn develop
or
npm run develop
This fully reloads the admin panel, APIs, and back-end logic.
Restarting Strapi in Production (Most Important Section)
Restarting Strapi in a production environment must be done safely to avoid downtime.
Using PM2 (Recommended)
PM2 is the most common process manager for Strapi in production.
Start Strapi with PM2:
pm2 start yarn --name strapi -- start
or for npm:
pm2 start npm --name strapi -- start
Restart using PM2:
pm2 restart strapi
This instantly restarts the Strapi server.
Reload for zero-downtime restarts:
pm2 reload strapi
Reloading is safer than restarting because it avoids request interruption.
Check Logs After Restart
pm2 logs strapi
This confirms Strapi restarted without errors.
PM2 Common Commands
-
Stop Strapi:
pm2 stop strapi -
Start again:
pm2 start strapi -
Delete process:
pm2 delete strapi
PM2 ensures Strapi restarts even after a server crash or reboot, making it the best choice for production applications.
Restarting Strapi in Docker
If you're running Strapi in Docker, the restart method depends on your setup.
Restart a Docker Container
docker restart strapi
If the container name is different, adjust accordingly.
Stop and Start Again
docker stop strapi
docker start strapi
Rebuild and Restart (for code changes)
docker-compose down
docker-compose up --build -d
or:
docker compose down
docker compose up --build -d
This is essential when:
- Updating Strapi files
- Installing plugins
- Changing environment variables
- Altering the Dockerfile
When Restarting Isn't Enough
In some cases, you may need to prune containers:
docker system prune
or rebuild the entire image if dependencies changed.
Restarting Strapi on Cloud Hosting Platforms
Many modern platforms automate rebuilds and restarts.
Restarting Strapi on Render
Render redeploys automatically when you push code to GitHub.
If you want a manual restart:
- Go to your Render dashboard.
- Open your service.
- Click Manual Deploy → Clear Cache and Deploy.
This forces a rebuild and restart.
Restarting Strapi on Railway
Railway automatically restarts after code changes.
You can restart manually:
railway logs
railway up
or via the dashboard using the Redeploy button.
Restarting Strapi on Vercel or Netlify (Not Recommended)
These platforms do not support hosting Strapi backends. If you somehow run Strapi there using serverless functions, a redeploy automatically restarts the functions. However, Strapi should ideally run on:
- VPS
- Docker
- Render
- Railway
- Strapi Cloud
Restarting Strapi on Strapi Cloud
If you're using the official Strapi Cloud:
- Log in to your dashboard.
- Select your project.
- Click Re-deploy to apply any code updates.
- Restart options appear under the deployment section.
Strapi Cloud handles the underlying containers automatically.
Restarting After Admin Panel Changes
Any time you:
- Install a plugin\
- Remove a plugin\
- Modify admin UI configuration\
- Update Strapi dependencies
...you must rebuild the admin panel.
Step 1: Rebuild Admin
yarn build
or
npm run build
Step 2: Restart the Server
pm2 restart strapi
or:
yarn start
Failing to rebuild results in broken admin UI or missing plugin settings.
Restarting After Environment Variable Changes
Changes in .env require a full restart.
Example:
DATABASE_PASSWORD=NewPass123
API_TOKEN_SALT=xyz123
Restart:
pm2 restart strapi
or Docker rebuild:
docker compose up --build -d
Environment variables never apply without restarting Strapi.
Restarting Strapi After Database Changes
Changes in database configuration include:
- Database host
- Port
- Username or password
- Connection pool settings
- Switching from SQLite to PostgreSQL or MySQL
Restart Process:
- Update
config/database.jsor.env - Rebuild (optional)
- Restart using PM2 or Docker
If Strapi fails to connect, check logs:
pm2 logs strapi
Restarting Strapi When it Crashes or Freezes
A sudden crash may occur due to:
- Memory leaks
- Plugin issues
- Bad queries
- Corrupted configurations
- Large database operations
- Out-of-memory errors
Fix: Kill the Process
pkill node
Then restart:
pm2 start strapi
or:
yarn start
Investigate Logs:
pm2 logs
Automating Strapi Restarts
PM2 Auto-Restart on Crash
PM2 automatically restarts the process:
pm2 start strapi --watch
Use cautiously, because watch mode in production can lead to unnecessary restarts.
Cron Job Restart Example
0 3 * * * pm2 restart strapi
This restarts Strapi daily at 3 AM.
GitHub Actions Restart Workflow
Push to main branch triggers:
ssh user@server "cd /var/www/strapi && git pull && yarn build && pm2 restart strapi"
This automates deployment and restart cycles.
Best Practices for Restarting Strapi Safely
- Build before restart in production.
- Never rebuild admin panel while users are online.
- Use PM2 reload for zero downtime.
- Offload uploads to cloud storage (S3/Spaces/Cloudinary).
- Keep database separate from Strapi container when using Docker.
- Use load balancers for enterprise deployments.
- Always check logs after restart.
- Do not restart while running migrations (if any).
Most Common Restart-Related Errors and Fixes
Error: Cannot find module
Fix:
rm -rf node_modules
yarn install
pm2 restart strapi
Error: Admin panel blank
Fix:
yarn build
pm2 restart strapi
Error: Database authentication failed
Check .env and restart.
Error: Port already in use
Kill the process:
pkill node
Then restart.
Conclusion
Restarting a Strapi server may seem simple, but the correct restart process depends entirely on your hosting environment, deployment strategy, and architecture. From local development to full production environments using PM2, Docker, Kubernetes, Render, or Strapi Cloud, each method requires different steps to ensure uptime, stability, and performance.
By following the detailed instructions above, you can safely restart Strapi in any environment without causing downtime or breaking your application. For businesses or developers needing expert assistance with Strapi, MERN Stack applications, or enterprise deployment workflows, you can hire AAMAX --- a full-service agency offering MERN Stack Development, Web Development, SEO, and Digital Marketing services.
This guide gives you everything required to restart Strapi properly and maintain a healthy, production-ready application.






