diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..f7edf91
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,48 @@
+kind: pipeline
+type: docker
+name: deploy
+
+steps:
+# GO api
+  - name: build_api
+    image: golang
+    environment:
+      - GIN_MODE=release
+    commands:
+      - cd Api
+      - go build
+# Platformio esp firmware
+#  - name: build_esp
+# C# frontend
+# upload docker
+  - name: upload_frontend
+    when:
+      branch:
+      - master
+      settings:
+      dockerfile: ManagementPage/ManagementPage/Dockerfile
+      repo:  "registry.jacknet.io/51m0n/environment-api"
+      username: simon
+      password:
+        from_secret: docker_password
+      registry: registry.jacknet.io
+      auto_tag: true
+# upload docker
+  - name: upload_api
+    depends_on:
+      - build_api
+    image: plugins/docker
+    when:
+      branch:
+      - master
+    settings:
+      context: Api
+      dockerfile: Api/Dockerfile
+      repo:  "registry.jacknet.io/51m0n/environment-api"
+      username: simon
+      password:
+        from_secret: docker_password
+      registry: registry.jacknet.io
+      auto_tag: true
+# upload firmware blob
+#  - name: upload_esp
\ No newline at end of file
diff --git a/Api/Dockerfile b/Api/Dockerfile
new file mode 100644
index 0000000..5914d74
--- /dev/null
+++ b/Api/Dockerfile
@@ -0,0 +1,9 @@
+FROM ubuntu
+
+EXPOSE 8080
+
+ENV GIN_MODE=release
+
+COPY EnvironmentManagerAPI /EnvironmentManagerAPI
+
+ENTRYPOINT ["./EnvironmentManagerAPI"]
\ No newline at end of file
diff --git a/ManagementPage/.dockerignore b/ManagementPage/.dockerignore
new file mode 100644
index 0000000..3729ff0
--- /dev/null
+++ b/ManagementPage/.dockerignore
@@ -0,0 +1,25 @@
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/azds.yaml
+**/bin
+**/charts
+**/docker-compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md
\ No newline at end of file
diff --git a/ManagementPage/ManagementPage/Dockerfile b/ManagementPage/ManagementPage/Dockerfile
new file mode 100644
index 0000000..92f7b66
--- /dev/null
+++ b/ManagementPage/ManagementPage/Dockerfile
@@ -0,0 +1,22 @@
+#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
+WORKDIR /app
+EXPOSE 80
+EXPOSE 443
+
+FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
+WORKDIR /src
+COPY ["ManagementPage/ManagementPage.csproj", "ManagementPage/"]
+RUN dotnet restore "ManagementPage/ManagementPage.csproj"
+COPY . .
+WORKDIR "/src/ManagementPage"
+RUN dotnet build "ManagementPage.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "ManagementPage.csproj" -c Release -o /app/publish
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "ManagementPage.dll"]
\ No newline at end of file
diff --git a/ManagementPage/ManagementPage/ManagementPage.csproj b/ManagementPage/ManagementPage/ManagementPage.csproj
index d6e0563..f23054f 100644
--- a/ManagementPage/ManagementPage/ManagementPage.csproj
+++ b/ManagementPage/ManagementPage/ManagementPage.csproj
@@ -4,10 +4,13 @@
     net6.0
     enable
     enable
+    a667e9e0-64d9-4a5e-a721-f9c32f29af02
+    Linux
   
 
   
     
+    
     
     
   
diff --git a/ManagementPage/ManagementPage/ManagementPage.csproj.user b/ManagementPage/ManagementPage/ManagementPage.csproj.user
index 3052f3a..373ca0d 100644
--- a/ManagementPage/ManagementPage/ManagementPage.csproj.user
+++ b/ManagementPage/ManagementPage/ManagementPage.csproj.user
@@ -5,5 +5,7 @@
     root/Common/MVC/Controller
     RazorPageScaffolder
     root/Common/RazorPage
+    P:\EnvironmentManagement\ManagementPage\ManagementPage\Properties\PublishProfiles\registry.jacknet.io.pubxml
+    Docker
   
 
\ No newline at end of file
diff --git a/ManagementPage/ManagementPage/Properties/launchSettings.json b/ManagementPage/ManagementPage/Properties/launchSettings.json
index b2cdac3..9f5b2a5 100644
--- a/ManagementPage/ManagementPage/Properties/launchSettings.json
+++ b/ManagementPage/ManagementPage/Properties/launchSettings.json
@@ -1,4 +1,4 @@
-{
+{
   "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
@@ -10,12 +10,12 @@
   "profiles": {
     "ManagementPage": {
       "commandName": "Project",
-      "dotnetRunMessages": true,
       "launchBrowser": true,
-      "applicationUrl": "https://environment.51m0n.com;http://+:80",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
-      }
+      },
+      "applicationUrl": "https://environment.51m0n.com;http://+:80",
+      "dotnetRunMessages": true
     },
     "IIS Express": {
       "commandName": "IISExpress",
@@ -23,6 +23,13 @@
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
       }
+    },
+    "Docker": {
+      "commandName": "Docker",
+      "launchBrowser": true,
+      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+      "publishAllPorts": true,
+      "useSSL": true
     }
   }
-}
+}
\ No newline at end of file