1
0

komga: integrate komf

This commit is contained in:
2026-01-16 11:48:50 +01:00
parent 61f73edd9a
commit 6d185c2324
+167
View File
@@ -1,5 +1,149 @@
---
configs:
komf-application-yaml:
content: |
komga:
#baseUri: http://192.168.0.106:25600 #or env:KOMF_KOMGA_BASE_URI
#komgaUser: admin@example.org #or env:KOMF_KOMGA_USER
#komgaPassword: admin #or env:KOMF_KOMGA_PASSWORD
eventListener:
enabled: true # if disabled will not connect to komga and won't pick up newly added entries
metadataLibraryFilter: [ ] # listen to all events if empty
metadataSeriesExcludeFilter: [ ]
notificationsLibraryFilter: [ ] # Will send notifications if any notification source is enabled. If empty will send notifications for all libraries
metadataUpdate:
default:
libraryType: "MANGA" # Can be "MANGA", "NOVEL" or "COMIC". Hint to help better match book numbers
updateModes: [ API ] # can use multiple options at once. available options are API, COMIC_INFO
aggregate: false # if enabled will search and aggregate metadata from all configured providers
mergeTags: false # if true and aggregate is enabled will merge tags from all providers
mergeGenres: false # if true and aggregate is enabled will merge genres from all providers
bookCovers: true # update book thumbnails
seriesCovers: true # update series thumbnails
overrideExistingCovers: true # if false will upload but not select new cover if another cover already exists
overrideComicInfo: true # Replace existing ComicInfo file. If false, only append additional data
postProcessing:
seriesTitle: true # update series title
seriesTitleLanguage: "en" # series title update language. If empty chose first matching title
fallbackToAltTitle: false # fallback to first alternative tile if series title is not found
alternativeSeriesTitles: false # use other title types as alternative title option
alternativeSeriesTitleLanguages: # alternative title languages
- "en"
- "ja"
- "ja-ro"
orderBooks: true # will order books using parsed volume or chapter number
scoreTagName: "score" # adds score tag of specified format e.g. "score: 8" only uses integer part of rating. Can be used in search using query: tag:"score: 8" in komga
readingDirectionValue: # override reading direction for all series. should be one of these: LEFT_TO_RIGHT, RIGHT_TO_LEFT, VERTICAL, WEBTOON
languageValue: # set default language for series. Must use BCP 47 format e.g. "en"
#TagName: if specified and if provider has data about publisher in that language then additional tag will be added using format ({TagName}: publisherName)
#e.g. originalPublisherTagName: "Original Publisher" will add tag "Original Publisher: Shueisha"
originalPublisherTagName:
#publisherTagNames:
# - tagName: "English Publisher"
# language: "en"
kavita:
baseUri: "http://localhost:5000" #or env:KOMF_KAVITA_BASE_URI
apiKey: "16707507-d05d-4696-b126-c3976ae14ffb" #or env:KOMF_KAVITA_API_KEY
eventListener:
enabled: false # if disabled will not connect to kavita and won't pick up newly added entries
metadataLibraryFilter: [ ] # listen to all events if empty
metadataSeriesExcludeFilter: [ ]
notificationsLibraryFilter: [ ] # Will send notifications if any notification source is enabled. If empty will send notifications for all libraries
metadataUpdate:
default:
libraryType: "MANGA" # Can be "MANGA", "NOVEL" or "COMIC". Hint to help better match book numbers
updateModes: [ API ] # can use multiple options at once. available options are API, COMIC_INFO
aggregate: false # if enabled will search and aggregate metadata from all configured providers
mergeTags: false # if true and aggregate is enabled will merge tags from all providers
mergeGenres: false # if true and aggregate is enabled will merge genres from all providers
bookCovers: false #update book thumbnails
seriesCovers: false #update series thumbnails
overrideExistingCovers: true # if false will upload but not select new cover if another cover already exists
lockCovers: true # lock cover images so that kavita does not change them
postProcessing:
seriesTitle: false #update series title
seriesTitleLanguage: "en" # series title update language. If empty chose first matching title
alternativeSeriesTitles: false # use other title types as alternative title option
alternativeSeriesTitleLanguages: # alternative title language. Only first language is used. Use single value for consistency
- "ja-ro"
orderBooks: false # will order books using parsed volume or chapter number. works only with COMIC_INFO
languageValue: # set default language for series. Must use BCP 47 format e.g. "en"
notifications:
templatesDirectory: "./" # path to a directory with templates
discord:
# List of discord webhook urls. Will call these webhooks after series or books were added.
webhooks: # config example: webhooks: ["https://discord.com/api/webhooks/9..."] (env:KOMF_DISCORD_WEBHOOKS - comma separated list of webhooks)
seriesCover: false # include series cover in message
embedColor: "1F8B4C"
apprise:
# List of apprise urls. Will call these after series or books were added.
urls:
seriesCover: false # include series cover as attachment
database:
file: ./database.sqlite # database file location.
metadataProviders:
malClientId: "" # required for mal provider. See https://myanimelist.net/forum/?topicid=1973077 env:KOMF_METADATA_PROVIDERS_MAL_CLIENT_ID
comicVineApiKey: # required for comicVine provider https://comicvine.gamespot.com/api/ env:KOMF_METADATA_PROVIDERS_COMIC_VINE_API_KEY
bangumiToken: # bangumi provider require a token to show nsfw items https://next.bgm.tv/demo/access-token env:KOMF_METADATA_PROVIDERS_BANGUMI_TOKEN
defaultProviders:
mangaUpdates:
priority: 10
enabled: true
mediaType: "MANGA" # filter used in matching. Can be NOVEL or MANGA. MANGA type includes everything except novels
authorRoles: [ "WRITER" ] # roles that will be mapped to author role
artistRoles: [ "PENCILLER","INKER","COLORIST","LETTERER","COVER" ] # roles that will be mapped to artist role
mal:
priority: 20
enabled: false
mediaType: "MANGA" # filter used in matching. Can be NOVEL or MANGA. MANGA type includes everything except novels
nautiljon:
priority: 30
enabled: false
aniList:
priority: 40
enabled: false
mediaType: "MANGA" # filter used in matching. Can be NOVEL or MANGA. MANGA type includes everything except novels
tagsScoreThreshold: 60 # tags with this score or higher will be included
tagsSizeLimit: 15 # amount of tags that will be included
yenPress:
priority: 50
enabled: false
mediaType: "MANGA" # filter used in matching. Can be NOVEL or MANGA.
kodansha:
priority: 60
enabled: false
viz:
priority: 70
enabled: false
bookWalker:
priority: 80
enabled: false
mediaType: "MANGA" # filter used in matching. Can be NOVEL or MANGA.
mangaDex:
priority: 90
enabled: false
coverLanguages:
- "en"
- "ja"
bangumi: # Chinese metadata provider. https://bgm.tv/
priority: 100
enabled: false
comicVine: # https://comicvine.gamespot.com/ requires API key. Experimental provider, can mismatch issue numbers
priority: 110
enabled: false
hentag:
priority: 120
enabled: false
server:
port: 8085 # or env:KOMF_SERVER_PORT
logLevel: INFO # or env:KOMF_LOG_LEVEL
komga-config:
content: |
spring:
@@ -41,3 +185,26 @@ services:
- source: komga-config
target: /config/application.yml
restart: unless-stopped
komf:
image: sndxr/komf:1.3.0
container_name: komf
networks:
public:
ipv4_address: 192.168.240.54
user: 1000:100
ports:
- "8085:8085"
environment:
- KOMF_KOMGA_BASE_URI=http://komga:25600
- KOMF_KOMGA_USER=lukas@kucharczyk.xyz
- KOMF_KOMGA_PASSWORD=kRalovna12514265!
- KOMF_KAVITA_BASE_URI=http://kavita:${KAVITA_INTERNAL_PORT}
- KOMF_KAVITA_API_KEY=c8023836-7aab-46ed-9409-c24b950002d4
- KOMF_LOG_LEVEL=INFO
- JAVA_TOOL_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact -XX:ShenandoahGuaranteedGCInterval=3600000 -XX:TrimNativeHeapInterval=3600000
configs:
- source: komf-application-yaml
target: /config/application.yml
volumes:
- "${DOCKER_STORAGE_PATH}/komf/config:/config"
restart: unless-stopped