Strapi gives you the option to choose the most appropriate database for your project. The following documentation covers how to install these databases locally for development purposes and on various hosted or cloud server solutions for staging or production purposes.
Deploying Strapi itself is covered in the Deployment Guide. SQLite is the default Quick Start and recommended database to quickly create an app locally. This will create a new project and launch it in the browser. The Quick Start Guide is a bel aleb lbc step-by-step tutorial.
These instructions show how to start using Strapi with a MongoDB database. If you have additional questions, please see the official MongoDB documentation. Then Download the package and follow the installation instructions to complete the process.
To begin using MongoDB, connect a mongo. You have now installed MongoDB for Windows You are now ready to install Strapi with MongoDB locally. Follow these steps to install MongoDB onto your Mac developer environment:. You have now installed MongoDB for Mac. Follow these steps to install MongoDB onto your Ubuntu environment:.
You have now installed MongoDB for Linux.
You have successfully installed Strapi with MongoDB on your local development environment. You are now ready to create your first user. MongoDB Atlas automatically exposes the database credentials into a single environment variable accessible by your app.
To locate it, follow these steps:. You are now ready use Strapi locally or to deploy your project to an external hosting provider and use MongoDB Atlas as your database server. Databases Strapi gives you the option to choose the most appropriate database for your project. Install SQLite locally Simply use the strapi new my-project --quickstart command.
Choose your installation type Custom manual settings? Choose your main database: MongoDB? Database name: my-project? Host: Authentication database Maybe "admin" or blank :? The app has been connected to the database successfully!Free and open source, forever.
The entire codebase is available on GitHub and is maintained by hundreds of contributors. Each project requires specific requirements. Easily customize the admin panel as well as the API. One language to rule them all. Plugins system included.
Install auth system, content management, custom plugins, and more, in seconds. Start getting results in just four commands. Follow the instructions in the following console. I was going for Parse server but after seeing Strapi, it is way better, thanks for releasing this. We saw many benefits in terms of time and resources costs and satisfaction in our teams.
The client can add more data whenever they decide and they are able to see the updates on the app without having to wait for a new version of their app. Keep control. Deliver faster. Building self-hosted, customizable and performant Content API has never been easier. Open source Free and open source, forever. Customizable Each project requires specific requirements. Self-hosted Security is crucial for companies.
Host your data safely, on your own servers.
Subscribe to RSS
GDPR compliant. Extensible by design Plugins system included. Read the documentation. Trusted by thousands of developers Thousands of developers are already trusting and using Strapi to manage their content.
Franz Recinos Software Engineer I was going for Parse server but after seeing Strapi, it is way better, thanks for releasing this.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account. It has been a long time since we haven't asked for feedback from the community Over the last 6 months, we worked hard to release the beta.
The feedback that we received are amazing and we want to continue on that path. Your happiness is our top priority and we want to resolve all the pain points and issues you encountered using Strapi. Please, try to be concise and describe your use case as much as possible. We already identified many pains but we are pretty sure that we haven't listed them all.
We look forward to reading all your comments. Issue: No way to add underscores or dashes to collection names. As an alternative, being able to name collections camelCase. Context: This makes it difficult to organize a large number of collections visually. Context: This makes it difficult to visually find fields when they have been added to the model after initial model creation. Issue: Lack of walk through examples for setting up a custom controller to fulfill a simple purpose.
I would dare to say almost every serious project built on strapi quickly escapes the self generated nature and requires custom controller builds to obtain needed functionality. Not everyone that goes with strapi wishes to use GraphQL either. When I go to sails, express, symfony, laravel. NET, or rails documentation, one of the entry points to be made is how one builds a basic controller with basic action methods that gather information and feed it back to the client.
There needs to be documentation for beginners to get a grasp on the contexts of the strapi env and how to build out a custom controller using whichever ORM is needed. Perhaps a bar with Mongoose and Bookshelf options on it to swap between examples.
One can read mongoose's and bookshelf's documentation but using them in the context of strapis env is a different story and would really help me in hitting the ground running on a project. Context: The photo gallery is a little basic, and we would benefit from a more feature rich gallery, i. Context: The CTM plugin has been a useful but extremely buggy for many months now, from white screen errors, to deleted models still showing up, and new models not showing up at all. That and when you have as many models as me, that very nested database entry is a major headache to actually manage and debug when stuff breaks.
Making it effectively pointless when something breaks as you have to delete it and completely redo all your customizations. Context: When the media is an important piece of information it's hard to find the correct entry. Context: Extremely old issue, when you mark a field as unique, the constraint is not actually applied to the database. And if you add the constraint manually and try to POST a duplicate entry, you will get a server error instead of a 4xx error for a duplicate value.
Issue: Unable to over-ride the admin plugin in such a way that you can customize or add onto the admin users model. Context: Strapi should be handling all databases with an equal footing as much as possible, bookshelf databases don't have aggregations. For relational one-ways a simple example is tags on a blog post while keeping the total entries in the database small and allowing for simple adding of new tags without the use of enumeration.Now that you have created your API it's really important to document its available end-points.
The documentation plugin takes out most of your pain to generate your documentation. If installed, this plugin will scan all the routes available from your. Once the plugin is installed it will create a documentation folder in each model of your project, so you can easily modify the default generated documentation.
When you start your server with this plugin installed it will automatically create the following files in your APIs we will see how it works for the plugins. The plugin scans all the routes available in your model to create the paths field.
This plugin comes with an interface that is available in your administration panel and a configuration file. The openapiinfox-strapi-configserversexternalDocs and security fields are located in the. Here you can specify all your environment variables, licenses, external documentation and so one You can add all the entries listed in the specification. When you change a field in the settings. Then you just need to identify the path you want to modify.
You can modify the default generated tags by adding a new one at the end of the file, it works the same way for the components. You can easily modify the description, summary, parameters of a path however, for a response like the you will need to write the full object.
Take a look at the. To modify your generated swagger files security on a specific model, for example to allow the public to use it, you will need to override the security for each path's action. See the below example:. As you can see in that example, you are defining "no security" whereas normally you would need a bearer token to access. You will need to do this manually as the documentation plugin rewrites files and cannot pull permissions from the database as this would require a server restart each time the docs are updated.
In order to display a plugin's end-point in the documentation you need to add a description key in the config object. Furthermore, the algorithm will try to find the model to generate the best response possible.
There's another property to guide the algorithm to create the best response possible, the actionType key. When we can't know by the controller name the type of the returned response like find and findOne you can specify it with this key.Have a question about this project?
Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub?Strapi Tutorial and Introduction
Sign in to your account. Skip to content. Labels 26 Milestones 1. Labels 26 Milestones 1 New issue. Production build will not connect to MongoDB opened Apr 10, by omar-enrique. Better webhooks: retry request if it fails type: feature request opened Apr 10, by Jolg Required fields with components opened Apr 10, by Tansito. Feedback on 3.
Subscribe to RSS
Configure the View any entity cannot be saved opened Apr 9, by emaddoma. PUT generates error opened Apr 9, by inverleighdigital. Extending a Model Service "Create" return when alongside with files opened Apr 8, by maisur. Renaming a content type doesn't change the file names opened Apr 8, by locopati. Allow to configure JWT expiration good first issue priority: low source: plugin:users-permissions type: enhancement opened Apr 7, by phlmn.
Cannot delete file already deleted in Cloudinary good first issue priority: low source: plugin:upload status: confirmed type: bug opened Apr 7, by jiv-e.
Can't disable aggregation on GraphQL opened Apr 2, by diogotcorreia. Email plugin not sending attachment opened Apr 1, by victormidp. A Collection with a Component cannot have its name changed despite allowed opened Mar 31, by asitemade4u. Missing Change Password in user permissions? VK provider crashes the server opened Mar 30, by FutsalShuffle. Limit not respected when querying multiple media type with GraphQL priority: medium source: plugin:graphql status: confirmed type: bug opened Mar 30, by LorbusChris.
Previous Next. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account. Hi, I'd like to explore the possibility of creating new field types to further expand what's already within Strapi. How would I go about this? Hi niallobrien you'll have to modify the content-type-builder plugin and the content-manager plugins.
In order to do so you have to start your project in development mode. Adding a new type is not optimal at the moment you might have to modify the core of this two plugins. Well we're currently working on the upload, but since the Input Library has been redone it should be normally easier to create new types for the front end partyou'll will just have to edit a json file if the GUI doesn't contain it already.
Hi guys! If this enhancement is difficult to implement I believe socould I ask if you could include a location field type soon? Thanks, and compliments! I'm also considering to use Strapi but I don't feel confident using it without a feature to add custom field types The great virtue of Strapi.
This practically doesn't really exist in today's world, believe it or not. They all want to keep your stuff in the cloud behind a paywall and give you toys, like graphCMS, like contentful and others or else are oldish or directly abandoned, like Keystone.
You can even develop templates and use these from the command line generator. Also, the road is open to develop and make pull requests I only hope I'll be able to do this in the future. So I don't think it's fair to compare something like graphCMS completely behind a paywall and a community driven open source project.
So yeah, after they go open source, the comparison will be fair. Also, don't forget the services that Contentful for example gives you: the Sync API alone justifies the cost for me. And this is something totally managed, totally handled by their servers. They offer different services which live "behind that paywall" :.
UserGalileo Unfortunately, the backend will remain closed from their slack :. Also, it doesn't make sense for them to do that. Their business model hasn't been thought about a full open-source strategy in mind like we're doing Would be open to assisting in implementation, am a bit new to Strapi however so some direction would be wonderful if possible.
Right now if I add an Image field to the user I have problems reading it back with the strapi-sdk in nuxt. This feature will be implemented. I try your way but when, on the admin, I add the custom field and save, the server stopped. I look to where the schema is generated and I can't find it. I'm start strapi with MongoDB and looking to have custom field in Object format. ChristopherDosin possible yes. Very difficult. Upgradability on strapi versions and keeping modifications?
Hopefully, those custom fields will come in the near future.Well, last weekend I wanted to dig into some good old React without fancy stuffs like Redux-Saga. So I started a side project to create a tiny boilerplate with nothing more than Create React App to implement the authentication flow with Strapia Node.
Note: the source code of this article is available on GitHub. You need to register your first user and then you're ready to go! I'm a huge fan of the React Boilerplate architecture so I created something similar to organize my code:.
To do so, we just need to follow the official documentation and modify the fakeAuth example and use our auth. Now that all our routes are implemented we need the create our views. The way we declared our routes allows us to have one component that is responsible for creating the correct form according to the location.
First of all, let's create a forms. The generateForm method is in charge of getting the data from the forms. To create the form we just need to map over the data retrieve in the forms. Well, at this point all the views needed for authenticating your users should be created! We just need to make the API call to access the app. To make the API call, I have a request helper that you can get in the demo app so we just need to use it in our handleSubmit function:.
Nothing fancy here, once we get the response from the API we just store the needed informations in either the localStorage or the sessionStorage and we redirect the user to the HomePage.
Well we just achieved the most difficult part because using a custom provider like Facebook is easy as pie! In this example, I will show you how to use it with Facebook.
At this point, we need to implement only one lifecycle componentDidMount which makes the API call and redirects the user depending on the response in the ConnectPage container:.
Go to Facebook developers and create an app called test. Now that you have created your app on Facebook you need to configure the Facebook provider in your project. With the hope that this small tutorial helped you authenticating your users with React and Strapi. In my opinion, there is not much to do and it is very easy!
Anyway here you can find the boilerplate which was created with Create React App from this weekend. Also another full example using the React Boilerplate available here which also has the authentication flow already implemented. This second example uses React, Redux-Saga and is also the boilerplate we used to build the admin on Strapi.
Creating the view To create the form we just need to map over the data retrieve in the forms. Setting up Strapi Now that you have created your app on Facebook you need to configure the Facebook provider in your project. Conclusion With the hope that this small tutorial helped you authenticating your users with React and Strapi. Feel free to share it and give you your feedback in the comments!
You enjoyed this article? Sign up to get our latest posts!