# Creating a Plugin

> Build a DS Server plugin step by step: a .NET class library with IPlugin, a controller, middleware and settings, deployment, testing and OAuth protection.

- **Product:** DS Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** DS Server > Plugins > Creating a Plugin
- **Web URL:** https://docs.textcontrol.com/ds-server/plugins/creating/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/plugins/creating/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/plugins/creating/llms-full.txt

---

## On This Page

- [Prerequisites](https://docs.textcontrol.com/ds-server/plugins/creating/#prerequisites)
- [Create the Project](https://docs.textcontrol.com/ds-server/plugins/creating/#create-the-project)
- [Install the NuGet Package](https://docs.textcontrol.com/ds-server/plugins/creating/#install-the-nuget-package)
- [Write the Code](https://docs.textcontrol.com/ds-server/plugins/creating/#write-the-code)
- [Configure the Plugin](https://docs.textcontrol.com/ds-server/plugins/creating/#configure-the-plugin)
- [Build and Deploy the Plugin](https://docs.textcontrol.com/ds-server/plugins/creating/#build-and-deploy-the-plugin)
- [Test the Plugin](https://docs.textcontrol.com/ds-server/plugins/creating/#test-the-plugin)
- [Protect the Endpoint With OAuth](https://docs.textcontrol.com/ds-server/plugins/creating/#protect-the-endpoint-with-oauth)
- [Add a Page to the Admin Portal](https://docs.textcontrol.com/ds-server/plugins/creating/#add-a-page-to-the-admin-portal)
- [Troubleshooting](https://docs.textcontrol.com/ds-server/plugins/creating/#troubleshooting)
- [Next Steps](https://docs.textcontrol.com/ds-server/plugins/creating/#next-steps)

---

## Nearby

- **Previous:** [Plugins](https://docs.textcontrol.com/ds-server/plugins/llms.txt)
- **Next:** [Plugin Services](https://docs.textcontrol.com/ds-server/plugins/services/llms.txt)
