We have completed all the basic features for our YouTube Summarize AI app, which we have been working on. These include full CRUD functionality, authentication, search, pagination, and AI video summarization. If you still need to complete your project, check out our previous posts in this Epic Next.js 14 tutorial series.
This post will cover how to deploy your project to Strapi Cloud.
It is the easiest and hassle-free way to deploy your Strapi CMS projects.
Get Everything You Need to Run Strapi in Production
Here are some items you get out of the box using Strapi Headless CMS Cloud that you don't have to set up yourself.
You also can access real-time logs, share and collaborate on your project with others, and use many other features. you can learn more about Strapi Cloud here
Currently, Strapi Cloud is a paid feature, but you can try it out for FREE for 14 days (no credit card required). The goal is to eventually have a free-tier. However, since we are an open-source company, Strapi Headless CMS is free for anyone to use. When we started Strapi Cloud last year, we targeted small organizations with our $99 offering; we now offer a developer plan at $29 per month, which includes all the features mentioned above.
There are many ways to host your Strapi CMS project, and we encourage you to use the best option available. In the future, I will create another blog post covering Strapi backend deployment to Render. The caveat is that when using your own hosting solution, you will be responsible for setting up your own database, file storage, and anything else that is required.
But today, we will take the hassle-free approach and use Strapi Cloud, which offers a FREE 14-day trial.
To deploy your project, you just need a GitHub repo with your project. Since you followed this tutorial, you should be ready to go.
Here is the repo of my project.
Let's get started.
We will start by creating a Strapi Cloud Account. You will use your GitHub account to sign in. To do so, navigate to the Strapi Cloud Login.
You are going to choose GitHub as your login method.
Once you click on the link, you will see the following screen. Click the Authorize Strapi Cloud
button.
Now that you have your account, create your first project!
You should be greeted with the following page. Let's click the Create Project
button.
You will be greeted with the following screen to give Strapi Cloud a try. Notice that you do not have to provide your credit card.
Click the Create my project
button to continue.
Now, import your project via GitHub. Click on the button and follow the steps.
Once you authorize GitHub, you should see the following page. If not, you may need to refresh your browser.
Notice I chose my GitHub account PaulBratslavsky
and pointed to my repository strapi-5-next-14-project-deploy.
Let's continue by completing the steps in the Setup section.
I will give my project a Display Name, point to my main branch, and select New York as my region.
Afterward, we will click on the Show advanced settings
button. Since our frontend
and backend
are in the same repo, we need to point to our Strapi CMS project in the /backend
folder.
I will keep the default node version, and since we don't have any environment variables, I will click on the Create project
button.
You should see the following screen.
As the process continues, you will be redirected to the following page, where you should see the real-time logs for your deployment process.
Once your project finishes deploying, you should see the following screen. You can continue your project by clicking the Visit app
button.
If you get the This site can't provide a secure connection
message, you have to give it a moment to allow all the changes to propagate.
Once the process is finished, you will be greeted with the Create Admin user screen.
Go ahead and create your first user. Once you have done so, you will be greeted with the Strapi dashboard screen.
Congratulations, you have deployed your very first Strapi project.
As a bonus, let's examine how we can transfer local Strapi data to seed our new cloud instance.
Let's start by logging into Strapi cloud, going to our deployed application, and logging in.
In your Strapi admin panel, click on the Visit App
button. This will take you to your deployed app.
Enter your credentials to log in.
Navigate to Settings
=> Transfer Tokens
and click the Add new Transfer Token
button.
Fill it the following options.
Name: Transfer Description: Transfer Token Token duration: 7 days Token type Full Access
And finally, click the Save
button.
You should now see your generated token.
To transfer our data, we will use the Strapi CLI Transfer command.
Ensure you are in your backend
folder and run the following command to see all the helpful options.
yarn strapi help transfer
You should see the following output.
$ strapi help transfer
Usage: strapi transfer [options]
Transfer data from one source to another
Options:
--from <sourceURL> URL of the remote Strapi instance to get data from
--from-token <token> Transfer token for the remote Strapi source
--to <destinationURL> URL of the remote Strapi instance to send data to
--to-token <token> Transfer token for the remote Strapi destination
--force Automatically answer "yes" to all prompts, including
potentially destructive requests, and run
non-interactively.
--exclude <comma-separated data types> Exclude data using comma-separated types. Available types:
content,files,config
--only <command-separated data types> Include only these types of data (plus schemas). Available
types: content,files,config
-h, --help display help for command
✨ Done in 2.16s.
➜ backend git:(main)
We will use the transfer --to
command to point to our Strapi cloud instance.
In my case, it is https://clever-dawn-ec1866942d.strapiapp.com/admin
Notice I am including the admin
portion of the url.
To start the transfer, I will type the following in my terminal: You will need to use your URL and Token, which we just generated.
yarn strapi transfer --to https://clever-dawn-ec1866942d.strapiapp.com/admin
Then press enter, and it will prompt you for the token that we generated just a minute ago.
? Please enter your transfer token for the remote Strapi destination [input is hidden]
Paste it in and press enter
to continue.
You will see the following message if you don't have Strapi Enterprise.
? There are differences in schema between the source and destination, and the data listed above will be lost. Are you sure you want to continue? (y/N)
You will see the following message, so click y' and
enter` to continue.
The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed? (y/N)
You will see the following warning regarding Review Workflows. ' This is perfectly normal. Press
y' and enter to continue.
You should see a similar output.
Starting transfer...
✔ entities: 46 transfered (size: 58.2 KB) (elapsed: 985 ms)
✔ assets: 15 transfered (size: 9.6 MB) (elapsed: 9698 ms)
✔ links: 74 transfered (size: 15.3 KB) (elapsed: 481 ms)
✔ configuration: 36 transfered (size: 108.9 KB) (elapsed: 414 ms)
┌─────────────────────────────────────────┬───────┬───────────────┐
│ Type │ Count │ Size │
├─────────────────────────────────────────┼───────┼───────────────┤
│ entities │ 46 │ 58.2 KB │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- api::global.global │ 2 │ ( 1.5 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- api::home-page.home-page │ 2 │ ( 1.9 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- api::summary.summary │ 12 │ ( 41.8 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::i18n.locale │ 1 │ ( 253 B ) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::upload.file │ 3 │ ( 4.9 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::upload.folder │ 1 │ ( 265 B ) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::users-permissions.permission │ 21 │ ( 5.8 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::users-permissions.role │ 2 │ ( 656 B ) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- plugin::users-permissions.user │ 2 │ ( 1 KB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ assets │ 15 │ 9.6 MB │
├─────────────────────────────────────────┼───────┼───────────────┤
│ -- .jpg │ 15 │ ( 9.6 MB) │
├─────────────────────────────────────────┼───────┼───────────────┤
│ links │ 74 │ 15.3 KB │
├─────────────────────────────────────────┼───────┼───────────────┤
│ configuration │ 36 │ 108.9 KB │
├─────────────────────────────────────────┼───────┼───────────────┤
│ Total │ 171 │ 9.8 MB │
└─────────────────────────────────────────┴───────┴───────────────┘
Transfer process has been completed successfully!
✨ Done in 22.50s.
Once you finish, go back into your Strapi Project, which we deployed in the cloud, hit refresh, and you should now see your data.
We will keep this open because we need our project's url and token for the next step.
Nice. We just seeded our initial data into our Cloud App.
In the next blog post, we will deploy our front end to Vercel and connect both projects.
We are on our final stretch. See you in the next post.
This project has been updated to use Next.js 15 and Strapi 5.
If you have any questions, feel free to stop by at our Discord Community for our daily "open office hours" from 12:30 PM CST to 1:30 PM CST.
If you have a suggestion or find a mistake in the post, please open an issue on the GitHub repository.
You can also find the blog post content in the Strapi Blog.
Feel free to make PRs to fix any issues you find in the project, or let me know if you have any questions.
Happy coding!