--- 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: security: oauth2: client: registration: authentik: provider: authentik client-id: 4CsVDypjllNpB6oaqBh8JNVtRt5kFIzIQcjtJFCo client-secret: nknziTm88F8AM6qW5NTelvtRYKG50pw8dACUXgz6fa3apDA6ATkxjbABgEdfHZWs97PFwRyVTr55bcApRqwrtmDefJMlJk1oYeOxhH6DA2oyiDXfXjfR2zVjZLMArnIC client-name: authentik scope: openid,email,profile authorization-grant-type: authorization_code redirect-uri: "{baseUrl}/{action}/oauth2/code/{registrationId}" provider: authentik: user-name-attribute: sub issuer-uri: https://authentik.kucharczyk.xyz/application/o/komga/ services: komga: image: gotson/komga:1.20.0 container_name: komga depends_on: - authentik-server networks: public: ipv4_address: 192.168.240.34 ports: - "25600:25600" labels: caddy: comic.${DOMAIN} caddy.reverse_proxy: "{{ upstreams 25600 }}" volumes: - "${DOCKER_STORAGE_PATH}/komga:/config" - "${COMIC_PATH}:/data" - "${TORRENTS_SEED_PATH}:/import" configs: - 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