diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml
new file mode 100644
index 0000000..eefc68e
--- /dev/null
+++ b/.github/workflows/deployment.yml
@@ -0,0 +1,29 @@
+name: Deploy to Server
+
+on:
+ push:
+ tags:
+ - 'v*.*.*'
+ workflow_dispatch:
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: 检出代码
+ uses: actions/checkout@v3
+
+ - name: 部署到服务器
+ uses: appleboy/ssh-action@v1
+ with:
+ host: ${{ secrets.SERVER_HOST }}
+ username: ${{ secrets.SERVER_USERNAME }}
+ key: ${{ secrets.SERVER_SSH_KEY }}
+ passphrase: ${{ secrets.SSH_PASSPHRASE }}
+ script: |
+ docker pull ghcr.io/drizzletime/foxel:dev
+ docker stop foxel-container || true
+ docker rm foxel-container || true
+ docker run -d --name foxel-container -p 8848:80 \
+ -e "DEFAULT_CONNECTION=${{ secrets.DEFAULT_CONNECTION }}" \
+ --pull always ghcr.io/drizzletime/foxel:dev
diff --git a/Dockerfile b/Dockerfile
index f9c856c..5df662c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,7 +16,10 @@ COPY ["Foxel.csproj", "./"]
RUN dotnet restore "Foxel.csproj"
COPY . .
WORKDIR "/src/"
+RUN dotnet tool install --global dotnet-ef
+ENV PATH="${PATH}:/root/.dotnet/tools"
RUN dotnet build "./Foxel.csproj" -c $BUILD_CONFIGURATION -o /app/build
+RUN dotnet ef migrations add InitialCreate
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
@@ -25,12 +28,13 @@ RUN dotnet publish "./Foxel.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:U
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
+COPY --from=build /src/Migrations /app/Migrations
RUN apt-get update && apt-get install -y nginx && rm -rf /var/lib/apt/lists/*
COPY --from=build-frontend /src/Web/dist /var/www/html
COPY /Web/nginx.conf /etc/nginx/nginx.conf
RUN mkdir -p /var/lib/nginx/body /var/cache/nginx /var/run/nginx /app/Uploads \
- && chown -R $APP_UID:$APP_UID /var/lib/nginx /var/cache/nginx /var/run/nginx /var/log/nginx /etc/nginx /var/www/html /app/Uploads \
+ && chown -R $APP_UID:$APP_UID /var/lib/nginx /var/cache/nginx /var/run/nginx /var/log/nginx /etc/nginx /var/www/html /app/Uploads /app/Migrations \
&& mkdir -p /run \
&& chmod 777 /run
diff --git a/Foxel.csproj b/Foxel.csproj
index 65dd4ec..ca26b5c 100644
--- a/Foxel.csproj
+++ b/Foxel.csproj
@@ -29,6 +29,7 @@