From 590ee771c117e3cbe83c470cb21c279e2227ed37 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Wed, 28 Jul 2021 15:07:06 -0500 Subject: [PATCH 01/14] Refactored logs to use a logs/ folder and also roll over after 10MB. A maximum of 5 logs will persist (50MB of log data). --- API/Services/Tasks/BackupService.cs | 19 ++++++++++--------- API/appsettings.Development.json | 6 +++--- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/API/Services/Tasks/BackupService.cs b/API/Services/Tasks/BackupService.cs index a5b115c3f..e04e5373f 100644 --- a/API/Services/Tasks/BackupService.cs +++ b/API/Services/Tasks/BackupService.cs @@ -20,6 +20,7 @@ namespace API.Services.Tasks private readonly ILogger _logger; private readonly IDirectoryService _directoryService; private readonly string _tempDirectory = Path.Join(Directory.GetCurrentDirectory(), "temp"); + private readonly string _logDirectory = Path.Join(Directory.GetCurrentDirectory(), "logs"); private readonly IList _backupFiles; @@ -28,7 +29,7 @@ namespace API.Services.Tasks _unitOfWork = unitOfWork; _logger = logger; _directoryService = directoryService; - + var maxRollingFiles = config.GetMaxRollingFiles(); var loggingSection = config.GetLoggingFileName(); var files = LogFiles(maxRollingFiles, loggingSection); @@ -53,7 +54,7 @@ namespace API.Services.Tasks var fi = new FileInfo(logFileName); var files = maxRollingFiles > 0 - ? _directoryService.GetFiles(Directory.GetCurrentDirectory(), $@"{fi.Name}{multipleFileRegex}\.log") + ? _directoryService.GetFiles(_logDirectory, $@"{Path.GetFileNameWithoutExtension(fi.Name)}{multipleFileRegex}\.log") : new[] {"kavita.log"}; return files; } @@ -63,17 +64,17 @@ namespace API.Services.Tasks { _logger.LogInformation("Beginning backup of Database at {BackupTime}", DateTime.Now); var backupDirectory = Task.Run(() => _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.BackupDirectory)).Result.Value; - + _logger.LogDebug("Backing up to {BackupDirectory}", backupDirectory); if (!DirectoryService.ExistOrCreate(backupDirectory)) { _logger.LogError("Could not write to {BackupDirectory}; aborting backup", backupDirectory); return; } - + var dateString = DateTime.Now.ToShortDateString().Replace("/", "_"); var zipPath = Path.Join(backupDirectory, $"kavita_backup_{dateString}.zip"); - + if (File.Exists(zipPath)) { _logger.LogInformation("{ZipFile} already exists, aborting", zipPath); @@ -83,7 +84,7 @@ namespace API.Services.Tasks var tempDirectory = Path.Join(_tempDirectory, dateString); DirectoryService.ExistOrCreate(tempDirectory); DirectoryService.ClearDirectory(tempDirectory); - + _directoryService.CopyFilesToDirectory( _backupFiles.Select(file => Path.Join(Directory.GetCurrentDirectory(), file)).ToList(), tempDirectory); try @@ -142,10 +143,10 @@ namespace API.Services.Tasks _logger.LogError(ex, "There was an issue deleting {FileName}", file.Name); } } - + } _logger.LogInformation("Finished cleanup of Database backups at {Time}", DateTime.Now); } - + } -} \ No newline at end of file +} diff --git a/API/appsettings.Development.json b/API/appsettings.Development.json index 35e9218b9..9d93e100a 100644 --- a/API/appsettings.Development.json +++ b/API/appsettings.Development.json @@ -17,10 +17,10 @@ "Microsoft.AspNetCore.Hosting.Internal.WebHost": "Information" }, "File": { - "Path": "kavita.log", + "Path": "logs/kavita.log", "Append": "True", - "FileSizeLimitBytes": 0, - "MaxRollingFiles": 0 + "FileSizeLimitBytes": 10485760, + "MaxRollingFiles": 5 } }, "Port": 5000 From b0a623dbc2c054f6d3fdcc9f67a07836e01d3c7e Mon Sep 17 00:00:00 2001 From: Chris Plaajtes Date: Wed, 28 Jul 2021 16:19:15 -0400 Subject: [PATCH 02/14] Updated entrypoint to accomodate new logs folder --- entrypoint.sh | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 3a5328354..0db3d824a 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -46,6 +46,20 @@ else ln -s /kavita/data/cache /kavita/cache fi +if [ -d /kavita/data/logs ] +then + if [ -d /kavita/logs ] + then + unlink /kavita/logs + ln -s /kavita/data/logs /kavita/logs + else + ln -s /kavita/data/logs /kavita/logs + fi +else + mkdir /kavita/data/logs + ln -s /kavita/data/logs /kavita/logs +fi + if [ -d /kavita/data/stats ] then if [ -d /kavita/stats ] @@ -60,25 +74,6 @@ else ln -s /kavita/data/stats /kavita/stats fi -# Checks for the log file - -if test -f "/kavita/data/logs/kavita.log" -then - rm /kavita/kavita.log - ln -s /kavita/data/logs/kavita.log /kavita/ -else - if [ -d /kavita/data/logs ] - then - echo "" > /kavita/data/logs/kavita.log || true - ln -s /kavita/data/logs/kavita.log /kavita/ - else - mkdir /kavita/data/logs - echo "" > /kavita/data/logs/kavita.log || true - ln -s /kavita/data/logs/kavita.log /kavita/ - fi - -fi - chmod +x ./Kavita ./Kavita From 0b99277923938c8af5aba2116c0f774f05765333 Mon Sep 17 00:00:00 2001 From: Chris Plaajtes Date: Tue, 3 Aug 2021 12:58:16 -0400 Subject: [PATCH 03/14] Merged docker tagging actions into one --- .github/workflows/stable-docker.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/stable-docker.yml b/.github/workflows/stable-docker.yml index 9f4dc8363..cea58295b 100644 --- a/.github/workflows/stable-docker.yml +++ b/.github/workflows/stable-docker.yml @@ -81,16 +81,7 @@ jobs: context: . platforms: linux/amd64,linux/arm/v7,linux/arm64 push: true - tags: kizaing/kavita:latest - - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - context: . - platforms: linux/amd64,linux/arm/v7,linux/arm64 - push: true - tags: kizaing/kavita:${{ steps.parse-version.outputs.VERSION }} + tags: kizaing/kavita:latest, kizaing/kavita:${{ steps.parse-version.outputs.VERSION }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} From 9a6cd5ca492109993ad256a886cfbd67e6ab63a0 Mon Sep 17 00:00:00 2001 From: Chris Plaatjes Date: Thu, 5 Aug 2021 01:14:04 -0400 Subject: [PATCH 04/14] Cleaned up and fixed old docker files --- Dockerfile.alpine | 28 ---------------------------- Dockerfile.arm | 27 --------------------------- docker-compose.yml | 3 --- 3 files changed, 58 deletions(-) delete mode 100644 Dockerfile.alpine delete mode 100644 Dockerfile.arm diff --git a/Dockerfile.alpine b/Dockerfile.alpine deleted file mode 100644 index faacfa823..000000000 --- a/Dockerfile.alpine +++ /dev/null @@ -1,28 +0,0 @@ -#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 deleted file mode 100644 index e28430a38..000000000 --- a/Dockerfile.arm +++ /dev/null @@ -1,27 +0,0 @@ -#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/docker-compose.yml b/docker-compose.yml index fe479badd..15623731a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,10 +4,7 @@ services: image: kizaing/kavita:latest volumes: - ./manga:/manga - - ./data/temp:/kavita/temp - - ./data/cache:/kavita/cache - ./data:/kavita/data - - ./data/logs:/kavita/logs ports: - "5000:5000" restart: unless-stopped From dc7b4e7a2a150243df86c4c021e53a5c614a02d1 Mon Sep 17 00:00:00 2001 From: majora2007 Date: Fri, 27 Aug 2021 17:58:00 +0000 Subject: [PATCH 05/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index c1b0f91a7..5b68eb51a 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.3 + 0.4.4.4 en From c8e38240321db303ec04dd03e8f3501860504a14 Mon Sep 17 00:00:00 2001 From: Chris Plaatjes Date: Fri, 27 Aug 2021 14:40:33 -0400 Subject: [PATCH 06/14] Added check for Windows builds so copy works (#528) * Added check for Windows builds so copy works * Removed appsettings copy, no longer needed * Fixed a bad build due to duplicate file copy Co-authored-by: Joseph Milazzo --- API/API.csproj | 1 - Dockerfile | 3 +-- build.sh | 8 +++++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/API/API.csproj b/API/API.csproj index 7d2707e28..c49d3eb28 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -73,7 +73,6 @@ - diff --git a/Dockerfile b/Dockerfile index 496db0002..a1d36ee56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,7 @@ RUN apt-get update \ #Creates the data 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 +RUN sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json COPY entrypoint.sh /entrypoint.sh diff --git a/build.sh b/build.sh index d2ff49006..ccecbd597 100755 --- a/build.sh +++ b/build.sh @@ -97,7 +97,13 @@ Package() cp ../LICENSE "$lOutputFolder"/LICENSE.txt echo "Renaming API -> Kavita" - mv "$lOutputFolder"/API "$lOutputFolder"/Kavita + + if [ $runtime == "win-x64" ] || [ $runtime == "win-x86" ] + then + mv "$lOutputFolder"/API.exe "$lOutputFolder"/Kavita.exe + else + mv "$lOutputFolder"/API "$lOutputFolder"/Kavita + fi echo "Creating tar" cd ../$outputFolder/"$runtime"/ From bfb34533f4ca59cd9498a6d3a568123eb5556492 Mon Sep 17 00:00:00 2001 From: majora2007 Date: Fri, 27 Aug 2021 18:50:15 +0000 Subject: [PATCH 07/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index 5b24799ba..c1b0f91a7 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.2 + 0.4.4.3 en From 69ebd09fcdd77a0eafc0d8fdbbbbbdc0b0f106eb Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Fri, 27 Aug 2021 12:51:06 -0700 Subject: [PATCH 08/14] Fixed an issue with ordering of chapters within a volume for selecting first cover image. (#529) --- API/Services/MetadataService.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/API/Services/MetadataService.cs b/API/Services/MetadataService.cs index fe2a27172..aa175c021 100644 --- a/API/Services/MetadataService.cs +++ b/API/Services/MetadataService.cs @@ -20,7 +20,7 @@ namespace API.Services private readonly IArchiveService _archiveService; private readonly IBookService _bookService; private readonly IImageService _imageService; - private readonly ChapterSortComparer _chapterSortComparer = new ChapterSortComparer(); + private readonly ChapterSortComparerZeroFirst _chapterSortComparerForInChapterSorting = new ChapterSortComparerZeroFirst(); /// /// Width of the Thumbnail generation /// @@ -102,7 +102,7 @@ namespace API.Services , false)) return; volume.Chapters ??= new List(); - var firstChapter = volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).FirstOrDefault(); + var firstChapter = volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparerForInChapterSorting).FirstOrDefault(); if (firstChapter == null) return; @@ -127,13 +127,13 @@ namespace API.Services // If firstCover is null and one volume, the whole series is Chapters under Vol 0. if (series.Volumes.Count == 1) { - coverImage = series.Volumes[0].Chapters.OrderBy(c => double.Parse(c.Number), _chapterSortComparer) + coverImage = series.Volumes[0].Chapters.OrderBy(c => double.Parse(c.Number), _chapterSortComparerForInChapterSorting) .FirstOrDefault(c => !c.IsSpecial)?.CoverImage; } if (!HasCoverImage(coverImage)) { - coverImage = series.Volumes[0].Chapters.OrderBy(c => double.Parse(c.Number), _chapterSortComparer) + coverImage = series.Volumes[0].Chapters.OrderBy(c => double.Parse(c.Number), _chapterSortComparerForInChapterSorting) .FirstOrDefault()?.CoverImage; } } From 0f7592276ed27e59b935ba2d156cf43f786e8add Mon Sep 17 00:00:00 2001 From: majora2007 Date: Fri, 27 Aug 2021 20:01:06 +0000 Subject: [PATCH 09/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index 5b68eb51a..5d0221730 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.4 + 0.4.4.5 en From 07060f2e0dbde19a51894bce3692ffcb8660b7c0 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Fri, 27 Aug 2021 13:47:06 -0700 Subject: [PATCH 10/14] Always output appsettings.json (#530) --- API/API.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/API/API.csproj b/API/API.csproj index c49d3eb28..74bf6fbbc 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -117,6 +117,9 @@ + + Always + From ba81808e02d6a2479ae70d10f49f79b4d660d0ea Mon Sep 17 00:00:00 2001 From: majora2007 Date: Fri, 27 Aug 2021 20:55:44 +0000 Subject: [PATCH 11/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index 5d0221730..af8b91cc9 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.5 + 0.4.4.6 en From 6b2d1215977cd39faa1a2225310312a64ad9df72 Mon Sep 17 00:00:00 2001 From: Chris Plaatjes Date: Fri, 27 Aug 2021 18:08:32 -0400 Subject: [PATCH 12/14] Added fix to copy appsettings.json --- build.sh | 4 +++- monorepo-build.sh | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index ccecbd597..2e76cfdf0 100755 --- a/build.sh +++ b/build.sh @@ -97,7 +97,6 @@ Package() cp ../LICENSE "$lOutputFolder"/LICENSE.txt echo "Renaming API -> Kavita" - if [ $runtime == "win-x64" ] || [ $runtime == "win-x86" ] then mv "$lOutputFolder"/API.exe "$lOutputFolder"/Kavita.exe @@ -105,6 +104,9 @@ Package() mv "$lOutputFolder"/API "$lOutputFolder"/Kavita fi + echo "Copying appsettings.json" + cp appsettings.Development.json $lOutputFolder/appsettings.json + echo "Creating tar" cd ../$outputFolder/"$runtime"/ tar -czvf ../kavita-$runtime.tar.gz Kavita diff --git a/monorepo-build.sh b/monorepo-build.sh index 826184a04..be452b235 100755 --- a/monorepo-build.sh +++ b/monorepo-build.sh @@ -56,6 +56,9 @@ Package() echo "Show API structure" find + + echo "Copying appsettings.json" + cp appsettings.Development.json $lOutputFolder/appsettings.json echo "Creating tar" cd ../$outputFolder/"$runtime"/ From 3fe45a90db0f0749c4baa571e7f1da80501b728a Mon Sep 17 00:00:00 2001 From: Kizaing Date: Fri, 27 Aug 2021 22:24:52 +0000 Subject: [PATCH 13/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index af8b91cc9..b10ce71a6 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.6 + 0.4.4.7 en From 4d1b2e0884fc81ad6d92347704cf05a503a3b782 Mon Sep 17 00:00:00 2001 From: majora2007 Date: Fri, 27 Aug 2021 22:46:27 +0000 Subject: [PATCH 14/14] Bump versions by dotnet-bump-version. --- Kavita.Common/Kavita.Common.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index 5b24799ba..c1b0f91a7 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -4,7 +4,7 @@ net5.0 kavitareader.com Kavita - 0.4.4.2 + 0.4.4.3 en