DeepOcean Deploy is an advanced local deployment and automation engine designed to eliminate the headache of managing large, multi-tier projects.
Originally built to handle the complex, 10+ sub-project deployments of the massive DeepOcean ecosystem, this tool proved so effective that it evolved into a standalone, open-source orchestrator. Whether you are deploying a monolithic architecture, managing microservices, or simply looking for a robust general-purpose automation tool, DeepOcean Deploy turns hours of manual configuration into a literal One-Click operation.
- 🚀 One-Click Deployments: Group multiple processes, tasks, and scripts into a single "Project" and run them sequentially with one click.
- 🧠 Dynamic Custom Tools (Roslyn): Write your automation steps in pure C#. The engine dynamically compiles your code at runtime using Roslyn—no need to rebuild the main application!
- 🎨 Auto-Generated UI: When you define properties in your custom C# tools, the dashboard automatically generates a nested visual form for them. Zero HTML/JS required.
- 📦 Runtime NuGet Restore: Need a third-party library for a custom tool? Just reference it, and the engine will fetch the NuGet package on the fly before execution.
- 🔌 Plugin System (.CTP): Easily share your automation scripts with others by Exporting/Importing Custom Tools as
.CTP(Custom Tools Plugin) files. - 📝 Real-Time Logging: Monitor your deployment processes with a live, color-coded logging console right in the browser.
DeepOcean Deploy runs as a lightweight local server (powered by EmbedIO). It provides a beautiful, responsive web interface where you can orchestrate your deployment workflows.
Create a C# class to define what inputs your tool needs. The UI will automatically read this class and generate a configuration form.
namespace DeepOcean.Deploy.Tools
{
public class DatabaseBackupTool : EventTools
{
public string ConnectionString { get; set; } = string.Empty;
public bool BackupToCloud { get; set; }
}
}Write the actual execution logic. The configuration filled out by the user in the UI is passed directly to your Start method!
using DeepOcean.Deploy.Tools;
namespace DeepOcean.Deploy.WorkFlow
{
internal class DatabaseBackupTool_WorkFlow
{
public static object Start(DatabaseBackupTool Config)
{
DeepOcean.Deploy.DeployController.AddLog($"Connecting to: {Config.ConnectionString}");
if (Config.BackupToCloud) {
// Automation logic here
}
return true;
}
}
}- Clone the repository:
git clone https://github.com/YourUsername/DeepOcean.Deploy.git
- Navigate to the project directory:
cd DeepOcean.Deploy - Run the application:
dotnet run
- Open your browser and navigate to:
http://localhost:5000
We welcome contributions! If you have ideas for new built-in tools, UI improvements, or core engine enhancements, feel free to open an issue or submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.