- ---
- uid: Guides.Deployment
- title: Deploying the Bot
- ---
-
- # Deploying a Discord.Net Bot
-
- After finishing your application, you may want to deploy your bot to a
- remote location such as a Virtual Private Server (VPS) or another
- computer so you can keep the bot up and running 24/7.
-
- ## Recommended VPS
-
- For small-medium scaled bots, a cheap VPS (~$5) might be sufficient
- enough. Here is a list of recommended VPS provider.
-
- * [DigitalOcean](https://www.digitalocean.com/)
- * Description: American cloud infrastructure provider headquartered
- in New York City with data centers worldwide.
- * Location(s):
- * Asia: Singapore, India
- * America: Canada, United States
- * Europe: Netherlands, Germany, United Kingdom
- * Based in: United States
- * [Vultr](https://www.vultr.com/)
- * Description: DigitalOcean-like
- * Location(s):
- * Asia: Japan, Australia, Singapore
- * America: United States
- * Europe: United Kingdom, France, Netherlands, Germany
- * Based in: United States
- * [OVH](https://www.ovh.com/)
- * Description: French cloud computing company that offers VPS,
- dedicated servers and other web services.
- * Location(s):
- * Asia: Australia, Singapore
- * America: United States, Canada
- * Europe: United Kingdom, Poland, Germany
- * Based in: Europe
- * [Scaleway](https://www.scaleway.com/)
- * Description: Cheap but powerful VPS owned by [Online.net](https://online.net/).
- * Location(s):
- * Europe: France, Netherlands
- * Based in: Europe
- * [Time4VPS](https://www.time4vps.eu/)
- * Description: Affordable and powerful VPS Hosting in Europe.
- * Location(s):
- * Europe: Lithuania
- * Based in: Europe
-
- ## .NET Core Deployment
-
- > [!NOTE]
- > This section only covers the very basics of .NET Core deployment.
- > To learn more about .NET Core deployment,
- > visit [.NET Core application deployment] by Microsoft.
-
- When redistributing the application - whether for deployment on a
- remote machine or for sharing with another user - you may want to
- publish the application; in other words, to create a
- self-contained package without installing the dependencies
- and the runtime on the target platform.
-
- ### Framework-dependent Deployment
-
- To deploy a framework-dependent package (i.e. files to be used on a
- remote machine with the `dotnet` command), simply publish
- the package with:
-
- * `dotnet publish -c Release`
-
- This will create a package with the **least dependencies**
- included with the application; however, the remote machine
- must have `dotnet` runtime installed before the remote could run the
- program.
-
- > [!TIP]
- > Do not know how to run a .NET Core application with
- > the `dotnet` runtime? Navigate to the folder of the program
- > (typically under `$projFolder/bin/Release`) and
- > enter `dotnet program.dll` where `program.dll` is your compiled
- > binaries.
-
- ### Self-contained Deployment
-
- To deploy a self-contained package (i.e. files to be used on a remote
- machine without the `dotnet` runtime), publish with a specific
- [Runtime ID] with the `-r` switch.
-
- This will create a package with dependencies compiled for the target
- platform, meaning that all the required dependencies will be included
- with the program. This will result in **larger package size**;
- however, that means the copy of the runtime that can be run
- natively on the target platform.
-
- For example, the following command will create a Windows
- executable (`.exe`) that is ready to be executed on any
- Windows 10 x64 based machine:
-
- * `dotnet publish -c Release -r win10-x64`
-
- [.NET Core application deployment]: https://docs.microsoft.com/en-us/dotnet/core/deploying/
- [Runtime ID]: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
|