diff --git a/API/API.csproj b/API/API.csproj
index 50a464d0b..393f5669c 100644
--- a/API/API.csproj
+++ b/API/API.csproj
@@ -211,4 +211,8 @@
+
+
+
+
diff --git a/API/Data/Seed.cs b/API/Data/Seed.cs
index 2c7eb373b..d376fc3fb 100644
--- a/API/Data/Seed.cs
+++ b/API/Data/Seed.cs
@@ -9,6 +9,7 @@ using API.Entities.Enums;
using API.Services;
using Kavita.Common;
using Microsoft.AspNetCore.Identity;
+using Microsoft.EntityFrameworkCore;
namespace API.Data
{
@@ -70,5 +71,21 @@ namespace API.Data
await context.SaveChangesAsync();
}
+
+ public static async Task SeedSeriesMetadata(DataContext context)
+ {
+ await context.Database.EnsureCreatedAsync();
+
+ context.Database.EnsureCreated();
+ var series = await context.Series
+ .Include(s => s.Metadata).ToListAsync();
+
+ foreach (var s in series)
+ {
+ s.Metadata ??= new SeriesMetadata();
+ }
+
+ await context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file
diff --git a/Dockerfile.alpine b/Dockerfile.alpine
new file mode 100644
index 000000000..faacfa823
--- /dev/null
+++ b/Dockerfile.alpine
@@ -0,0 +1,28 @@
+#This Dockerfile is for the musl alpine build of Kavita.
+FROM alpine:latest
+
+MAINTAINER Chris P
+
+#Installs the needed dependencies
+RUN apk update && apk add --no-cache wget curl pwgen icu-dev bash
+
+#Downloads Kavita, unzips and moves the folders to where they need to be
+RUN wget https://github.com/Kareadita/Kavita/releases/download/v0.3.7/kavita-linux-musl-x64.tar.gz \
+ && tar -xzf kavita*.tar.gz \
+ && mv Kavita/ /kavita/ \
+ && rm kavita*.gz \
+ && chmod +x /kavita/Kavita
+
+#Creates the needed folders
+RUN mkdir /manga /kavita/data /kavita/temp /kavita/cache
+
+RUN sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json
+
+COPY entrypoint.sh /entrypoint.sh
+
+EXPOSE 5000
+
+WORKDIR /kavita
+
+ENTRYPOINT ["/bin/bash"]
+CMD ["/entrypoint.sh"]
diff --git a/Dockerfile.arm b/Dockerfile.arm
new file mode 100644
index 000000000..e28430a38
--- /dev/null
+++ b/Dockerfile.arm
@@ -0,0 +1,27 @@
+#This Dockerfile pulls the latest git commit and builds Kavita from source
+
+#Production image
+FROM ubuntu:focal
+
+#Move the output files to where they need to be
+COPY Kavita /kavita
+
+#Installs program dependencies
+RUN apt-get update \
+ && apt-get install -y libicu-dev libssl1.1 pwgen \
+ && rm -rf /var/lib/apt/lists/*
+
+#Creates the manga storage directory
+RUN mkdir /kavita/data
+
+RUN cp /kavita/appsettings.Development.json /kavita/appsettings.json \
+ && sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json
+
+COPY entrypoint.sh /entrypoint.sh
+
+EXPOSE 5000
+
+WORKDIR /kavita
+
+ENTRYPOINT ["/bin/bash"]
+CMD ["/entrypoint.sh"]
diff --git a/build_target.sh b/build_target.sh
new file mode 100644
index 000000000..56c54ba79
--- /dev/null
+++ b/build_target.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+mkdir Projects
+
+cd Projects
+
+git clone https://github.com/Kareadita/Kavita.git
+git clone https://github.com/Kareadita/Kavita-webui.git
+
+cd Kavita
+chmod +x build.sh
+
+#Builds program based on the target platform
+
+if [ "$TARGETPLATFORM" == "linux/amd64" ]
+then
+ ./build.sh linux-x64
+ mv /Projects/Kavita/_output/linux-x64 /Projects/Kavita/_output/build
+elif [ "$TARGETPLATFORM" == "linux/arm/v7" ]
+then
+ ./build.sh linux-arm
+ mv /Projects/Kavita/_output/linux-arm /Projects/Kavita/_output/build
+elif [ "$TARGETPLATFORM" == "linux/arm64" ]
+then
+ ./build.sh linux-arm64
+ mv /Projects/Kavita/_output/linux-arm64 /Projects/Kavita/_output/build
+fi