You can find the source code on GitHub: https://github.com/squidex/squidex
To work with the source code you need the following tools.
We generally recommend to install Docker on your Developer machine. It makes your live much easier.
.NET Core 2.2 SDK (for older versions of Squidex)
We also provide ready to use docker configurations: https://github.com/squidex/squidex-docker.
Just execute the following commands to get a MongoDB installation for development:
git clone https://github.com/squidex/squidex-dockercd squidex-docker/dependenciesdocker-compose up -d
NodeJS (>= 10.0)
Usually newer versions are better but we made the experience that newer versions of NodeJS are more memory hungry in some situations.
You can use any editor you want, but our recommendation is to use:
Visual Studio 2019 Community Edition for the backend.
You have to run both, frontend and backend, independently. The first time it feels redundant and annoying and we also had some code to run the webpack dev server automatically when the application is started. But you will recognize that it takes a minute for the webpack dev server to start. Therefore we decoupled the commands, so that you can keep the webpack dev server running, even when you have to restart the backend application.
The frontend is written with Angular and webpack. Therefore you have to run the webpack web dev server. It is a server application that builds the website and watches the file system. Whenever you make a change to a file, the server will run the build process and reload the website automatically. It tries to compile only the files that have changed and can even reload the style sheets without reloading the site in some cases.
cd frontend # Go to the frontendnpm i # Install all dependencies, only needed the first timenpm start
npm rebuild node-sass --force (Only if you have issues with node-sass)
npm test (Runs the unit tests and listens for changes)
npm run test:coverage (Runs the unit tests and calculates the test coverage).
Btw: As the name webpack dev server indicates, it is only used for development. For production we bundle and minimize all typescript, html and sass files and add the bundles to the deployment package. So don't be worried when the frontend downloads hundred of files during development.
cd backendcd src/Squidexdotnet restore # Install all dependenciesdotnet run
Open http://localhost:5000 to run Squidex.
You can also run and debug the backend with Visual Studio 2019. But here are some things you should do before you start your debug session:
Recommended: Ensure that you
Squidexwhich means that you use the integrated Kestrel web server, which starts faster than IIS Express.
Recommended: Toggle of the
Launch browser setting. You just want to keep Squidex open during development and not close and open the window all the time to make debugging the frontend with your browser easier.
Ensure that you use port 5000 for development. This is required to have a proper setting for identity server and authentication in general.