From 8faa717ebbd59a73a01fb378c483da6448d0496c Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 4 Aug 2026 22:02:01 +0100 Subject: [PATCH] Some stuff --- .env.example | 3 + audiobookshelf/.gitkeep | 0 audiobookshelf/absdatabase.sqlite | Bin 0 -> 2490368 bytes .../v2.15.0-series-column-unique.js | 210 ++++++++++++++ .../migrations/v2.15.1-reindex-nocase.js | 43 +++ .../migrations/v2.15.2-index-creation.js | 93 ++++++ .../migrations/v2.17.0-uuid-replacement.js | 102 +++++++ .../migrations/v2.17.3-fk-constraints.js | 259 +++++++++++++++++ ....4-use-subfolder-for-oidc-redirect-uris.js | 84 ++++++ .../v2.17.5-remove-host-from-feed-urls.js | 74 +++++ .../v2.17.6-share-add-isdownloadable.js | 68 +++++ .../migrations/v2.17.7-add-indices.js | 83 ++++++ .../v2.19.1-copy-title-to-library-items.js | 164 +++++++++++ .../v2.19.4-improve-podcast-queries.js | 219 ++++++++++++++ .../v2.20.0-improve-author-sort-queries.js | 272 ++++++++++++++++++ .../migrations/v2.26.0-create-auth-tables.js | 163 +++++++++++ .../v2.33.0-add-discover-query-indexes.js | 74 +++++ .../v2.35.0-add-last-refresh-token.js | 84 ++++++ docker-compose.yml | 252 ++++++++-------- grocy/config/config-dist.php | 233 +++++++++++++++ nextcloud/Dockerfile | 2 +- searxng/settings.yml.new | 40 +-- 22 files changed, 2349 insertions(+), 173 deletions(-) create mode 100644 audiobookshelf/.gitkeep create mode 100644 audiobookshelf/absdatabase.sqlite create mode 100644 audiobookshelf/migrations/v2.15.0-series-column-unique.js create mode 100644 audiobookshelf/migrations/v2.15.1-reindex-nocase.js create mode 100644 audiobookshelf/migrations/v2.15.2-index-creation.js create mode 100644 audiobookshelf/migrations/v2.17.0-uuid-replacement.js create mode 100644 audiobookshelf/migrations/v2.17.3-fk-constraints.js create mode 100644 audiobookshelf/migrations/v2.17.4-use-subfolder-for-oidc-redirect-uris.js create mode 100644 audiobookshelf/migrations/v2.17.5-remove-host-from-feed-urls.js create mode 100644 audiobookshelf/migrations/v2.17.6-share-add-isdownloadable.js create mode 100644 audiobookshelf/migrations/v2.17.7-add-indices.js create mode 100644 audiobookshelf/migrations/v2.19.1-copy-title-to-library-items.js create mode 100644 audiobookshelf/migrations/v2.19.4-improve-podcast-queries.js create mode 100644 audiobookshelf/migrations/v2.20.0-improve-author-sort-queries.js create mode 100644 audiobookshelf/migrations/v2.26.0-create-auth-tables.js create mode 100644 audiobookshelf/migrations/v2.33.0-add-discover-query-indexes.js create mode 100644 audiobookshelf/migrations/v2.35.0-add-last-refresh-token.js create mode 100644 grocy/config/config-dist.php diff --git a/.env.example b/.env.example index 5af4be6..95fbc45 100644 --- a/.env.example +++ b/.env.example @@ -94,6 +94,9 @@ COLLABORA_PASSWORD= # PIHOLE_PASSWORD= +# Hardcover API Key required for Hardcover as a Metadata Provider, get one here: https://docs.hardcover.app/api/getting-started/ +HARDCOVER_TOKEN= + # # Jitsi settings (comms.scarif.space) # Image: jitsi/web:latest diff --git a/audiobookshelf/.gitkeep b/audiobookshelf/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/audiobookshelf/absdatabase.sqlite b/audiobookshelf/absdatabase.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..6689b2171e01c39ccbe4c77993b83d038271f98d GIT binary patch literal 2490368 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

uTg)Re))hwT3 zfEgnhQws;x%mL1(i%h*_@;12QO?LNy0HB52C;&o%&Txhi8Ze%*0s`v+5C?c`=m-i2VW8QBp{4;Q;WQ%@i5}g-2t|TAJpK=7 z+jV0tJpL~d0^#w0Kp$+}B{AC0@syzNL;^^e@ ze-Zy<9&f!M;ug#?8AZHxJpM1@MC0*)5#JV%|BJYsc>G_)6U5{HA`TiJ{}=I_@c6%o zJA=pnMZ64SXqnOS2if<>${$ScFG=HXDZMfMe~dgg@$-}aE^}-4f8^de`DFRSqa^=} zV~^*4C%m#2mJT(jVJ{=A*sseX z5I7p=hDpwV-vnWJ=4(b&4J$Sx7MPp?C=K9H0`N^1CA%JWipsgcI|xW2xYT3|7_K@T z+K>$!g#ZvrKsM5W_HK%x?kJoa;>B?3GlvmEy5NSj7eGPS$=iq*GPj?HKLwz9WX_Eu zxWb^FB*0>U8{cjNjv7ma?wElLI}9-*0sNi=oSUU%0oM>-0qzZULkMeQ0f*jX7m*GV z_6;HfA|OB2_M5saKEiO6*p3dv1S?+v+YkOS*r>p!GO_Sn9|=g}+;Culj7iyn{}$f> z)Pp@d?u7T=e|4k=0QZfDc?n{vu(Ob!;p5yR?9fDDpLVz36wUw*xklKBV$_?6vmn_BaYGo; zuA(Ca1N&it`R!iLP2}_-kqo3=oEyR@@BzT;p)xk6*t{~g6Sm_H(Bv#&&;g~*6oI3v zaBd=J>WIj;lXDX}bxDNVJ)E1!Swte-?&jP?PF)h=b{FR+a_W)@w;dt3Ey_{5lXKgu z{IWYZx2?(zyPb2}s=Tf#&TXr5vTh5x!4Il2gVlxO1ZzDr*l{8P^Xgi_gftZcsU8C7 z=-kS=sauo_bqnXVRe4M|b8cIegLD(;CX%fql0URvn43uMPk8>{R^{!4=l^Y0&P{m! z-&Wp*`~1Hx$`1+8|J$nEj_~}yt;)*?&;Q%1oQm-L zzpcuL2+#l9s$7Qf{J*WrLkQ3R+lm|lSn2cO)VoE=Kba{0pH?TXwJZBy$7}mPnt5L? zNPi&p$EA;@v*o8Jj}^Z>{=2zDI1}*qCiWIaSiL{1fFppf$YqfHOf>My)&TR3!d!+qzB!CKkN=CnsPp*0 z2#h+9|BJw=^Z37r70ToPB6#aO{x5>J&g1{Se|@}l9{(4Sk;nf$Mg8V2zWfN|5pXT<9YmF1Ux>B{|mGXkN=B+$Mg8VDgYkO>;Hv3=RDjZ;56d# ze<6Q2<0$0HW`sgsYDOsJfaZ@D@hx*g5w|fT6!E(9`hO8Z9{(31P@OU2o7xHv6jv`ZYSpP3@_6U#v3%MTIqeV_L;qiYFLLUDYA>{FY z5kemS7a`>Fe-T0+{}-w2~Va@^P^y6e;E7@qdxH5s&|i z6u$BJzmPu(Ti9tKR}p&|k?JiT{}(B$;_-ixS|=X=7b!vF@qdxZARhl0DUadte-T0+ z{}(B5;qiZwsuLdn7byne@qdvT4Icj&DV^Z)f02p?9{(39G!VxBFEW#A+bi3yO5Q%v zK%#*}1BnI_4I~;!G>~W@(LkbsL<5Ni5)J%g*8l@tOzi)E?5&)~W@(LkbsL<5Ni5)Hi4HIT&rU+Fy{dH+NMi3So4BpOIGkZ2&$K%#*}1BnI_4I~

~W@(LkbsL<5Ni5)C98c%^F~vHxG`Js^4iL<5Ni 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□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 z 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

Er=DXP^Mci7tKwS`w+&)1w- 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 NN+W#udtG+m{|9O~db$7r literal 0 HcmV?d00001 diff --git a/audiobookshelf/migrations/v2.15.0-series-column-unique.js b/audiobookshelf/migrations/v2.15.0-series-column-unique.js new file mode 100644 index 0000000..7f8526f --- /dev/null +++ b/audiobookshelf/migrations/v2.15.0-series-column-unique.js @@ -0,0 +1,210 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration script cleans any duplicate series in the `Series` table and + * adds a unique index on the `name` and `libraryId` columns. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.15.0 migration] UPGRADE BEGIN: 2.15.0-series-column-unique ') + + // Run reindex nocase to fix potential corruption issues due to the bad sqlite extension introduced in v2.12.0 + logger.info('[2.15.0 migration] Reindexing NOCASE indices to fix potential hidden corruption issues') + await queryInterface.sequelize.query('REINDEX NOCASE;') + + // Check if the unique index already exists + const seriesIndexes = await queryInterface.showIndex('Series') + if (seriesIndexes.some((index) => index.name === 'unique_series_name_per_library')) { + logger.info('[2.15.0 migration] Unique index on Series.name and Series.libraryId already exists') + logger.info('[2.15.0 migration] UPGRADE END: 2.15.0-series-column-unique ') + return + } + + // The steps taken to deduplicate the series are as follows: + // 1. Find all duplicate series in the `Series` table. + // 2. Iterate over the duplicate series and find all book IDs that are associated with the duplicate series in `bookSeries` table. + // 2.a For each book ID, check if the ID occurs multiple times for the duplicate series. + // 2.b If so, keep only one of the rows that has this bookId and seriesId. + // 3. Update `bookSeries` table to point to the most recent series. + // 4. Delete the older series. + + // Use the queryInterface to get the series table and find duplicates in the `name` and `libraryId` column + const [duplicates] = await queryInterface.sequelize.query(` + SELECT name, libraryId + FROM Series + GROUP BY name, libraryId + HAVING COUNT(name) > 1 + `) + + // Print out how many duplicates were found + logger.info(`[2.15.0 migration] Found ${duplicates.length} duplicate series`) + + // Iterate over each duplicate series + for (const duplicate of duplicates) { + // Report the series name that is being deleted + logger.info(`[2.15.0 migration] Deduplicating series "${duplicate.name}" in library ${duplicate.libraryId}`) + + // Determine any duplicate book IDs in the `bookSeries` table for the same series + const [duplicateBookIds] = await queryInterface.sequelize.query( + ` + SELECT bookId + FROM BookSeries + WHERE seriesId IN ( + SELECT id + FROM Series + WHERE name = :name AND libraryId = :libraryId + ) + GROUP BY bookId + HAVING COUNT(bookId) > 1 + `, + { + replacements: { + name: duplicate.name, + libraryId: duplicate.libraryId + } + } + ) + + // Iterate over the duplicate book IDs if there is at least one and only keep the first row that has this bookId and seriesId + for (const { bookId } of duplicateBookIds) { + logger.info(`[2.15.0 migration] Deduplicating bookId ${bookId} in series "${duplicate.name}" of library ${duplicate.libraryId}`) + // Get all rows of `BookSeries` table that have the same `bookId` and `seriesId`. Sort by `sequence` with nulls sorted last + const [duplicateBookSeries] = await queryInterface.sequelize.query( + ` + SELECT id + FROM BookSeries + WHERE bookId = :bookId + AND seriesId IN ( + SELECT id + FROM Series + WHERE name = :name AND libraryId = :libraryId + ) + ORDER BY sequence NULLS LAST + `, + { + replacements: { + bookId, + name: duplicate.name, + libraryId: duplicate.libraryId + } + } + ) + + // remove the first element from the array + duplicateBookSeries.shift() + + // Delete the remaining duplicate rows + if (duplicateBookSeries.length > 0) { + const [deletedBookSeries] = await queryInterface.sequelize.query( + ` + DELETE FROM BookSeries + WHERE id IN (:ids) + `, + { + replacements: { + ids: duplicateBookSeries.map((row) => row.id) + } + } + ) + } + logger.info(`[2.15.0 migration] Finished cleanup of bookId ${bookId} in series "${duplicate.name}" of library ${duplicate.libraryId}`) + } + + // Get all the most recent series which matches the `name` and `libraryId` + const [mostRecentSeries] = await queryInterface.sequelize.query( + ` + SELECT id + FROM Series + WHERE name = :name AND libraryId = :libraryId + ORDER BY updatedAt DESC + LIMIT 1 + `, + { + replacements: { + name: duplicate.name, + libraryId: duplicate.libraryId + }, + type: queryInterface.sequelize.QueryTypes.SELECT + } + ) + + if (mostRecentSeries) { + // Update all BookSeries records for this series to point to the most recent series + const [seriesUpdated] = await queryInterface.sequelize.query( + ` + UPDATE BookSeries + SET seriesId = :mostRecentSeriesId + WHERE seriesId IN ( + SELECT id + FROM Series + WHERE name = :name AND libraryId = :libraryId + AND id != :mostRecentSeriesId + ) + `, + { + replacements: { + name: duplicate.name, + libraryId: duplicate.libraryId, + mostRecentSeriesId: mostRecentSeries.id + } + } + ) + + // Delete the older series + const seriesDeleted = await queryInterface.sequelize.query( + ` + DELETE FROM Series + WHERE name = :name AND libraryId = :libraryId + AND id != :mostRecentSeriesId + `, + { + replacements: { + name: duplicate.name, + libraryId: duplicate.libraryId, + mostRecentSeriesId: mostRecentSeries.id + } + } + ) + } + } + + logger.info(`[2.15.0 migration] Deduplication complete`) + + // Create a unique index based on the name and library ID for the `Series` table + await queryInterface.addIndex('Series', ['name', 'libraryId'], { + unique: true, + name: 'unique_series_name_per_library' + }) + logger.info('[2.15.0 migration] Added unique index on Series.name and Series.libraryId') + + logger.info('[2.15.0 migration] UPGRADE END: 2.15.0-series-column-unique ') +} + +/** + * This removes the unique index on the `Series` table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.15.0 migration] DOWNGRADE BEGIN: 2.15.0-series-column-unique ') + + // Remove the unique index + await queryInterface.removeIndex('Series', 'unique_series_name_per_library') + logger.info('[2.15.0 migration] Removed unique index on Series.name and Series.libraryId') + + logger.info('[2.15.0 migration] DOWNGRADE END: 2.15.0-series-column-unique ') +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.15.1-reindex-nocase.js b/audiobookshelf/migrations/v2.15.1-reindex-nocase.js new file mode 100644 index 0000000..2ec9487 --- /dev/null +++ b/audiobookshelf/migrations/v2.15.1-reindex-nocase.js @@ -0,0 +1,43 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration script fixes old database corruptions due to the a bad sqlite extension introduced in v2.12.0. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.15.1 migration] UPGRADE BEGIN: 2.15.1-reindex-nocase ') + + // Run reindex nocase to fix potential corruption issues due to the bad sqlite extension introduced in v2.12.0 + logger.info('[2.15.1 migration] Reindexing NOCASE indices to fix potential hidden corruption issues') + await queryInterface.sequelize.query('REINDEX NOCASE;') + + logger.info('[2.15.1 migration] UPGRADE END: 2.15.1-reindex-nocase ') +} + +/** + * This downward migration script is a no-op. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.15.1 migration] DOWNGRADE BEGIN: 2.15.1-reindex-nocase ') + + // This migration is a no-op + logger.info('[2.15.1 migration] No action required for downgrade') + + logger.info('[2.15.1 migration] DOWNGRADE END: 2.15.1-reindex-nocase ') +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.15.2-index-creation.js b/audiobookshelf/migrations/v2.15.2-index-creation.js new file mode 100644 index 0000000..f1302dd --- /dev/null +++ b/audiobookshelf/migrations/v2.15.2-index-creation.js @@ -0,0 +1,93 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration script adds indexes to speed up queries on the `BookAuthor`, `BookSeries`, and `podcastEpisodes` tables. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.15.2 migration] UPGRADE BEGIN: 2.15.2-index-creation') + + // Create index for bookAuthors + logger.info('[2.15.2 migration] Creating index for bookAuthors') + const bookAuthorsIndexes = await queryInterface.showIndex('bookAuthors') + if (!bookAuthorsIndexes.some((index) => index.name === 'bookAuthor_authorId')) { + await queryInterface.addIndex('bookAuthors', ['authorId'], { + name: 'bookAuthor_authorId' + }) + } else { + logger.info('[2.15.2 migration] Index bookAuthor_authorId already exists') + } + + // Create index for bookSeries + logger.info('[2.15.2 migration] Creating index for bookSeries') + const bookSeriesIndexes = await queryInterface.showIndex('bookSeries') + if (!bookSeriesIndexes.some((index) => index.name === 'bookSeries_seriesId')) { + await queryInterface.addIndex('bookSeries', ['seriesId'], { + name: 'bookSeries_seriesId' + }) + } else { + logger.info('[2.15.2 migration] Index bookSeries_seriesId already exists') + } + + // Delete existing podcastEpisode index + logger.info('[2.15.2 migration] Deleting existing podcastEpisode index') + await queryInterface.removeIndex('podcastEpisodes', 'podcast_episodes_created_at') + + // Create index for podcastEpisode and createdAt + logger.info('[2.15.2 migration] Creating index for podcastEpisode and createdAt') + const podcastEpisodesIndexes = await queryInterface.showIndex('podcastEpisodes') + if (!podcastEpisodesIndexes.some((index) => index.name === 'podcastEpisode_createdAt_podcastId')) { + await queryInterface.addIndex('podcastEpisodes', ['createdAt', 'podcastId'], { + name: 'podcastEpisode_createdAt_podcastId' + }) + } else { + logger.info('[2.15.2 migration] Index podcastEpisode_createdAt_podcastId already exists') + } + + // Completed migration + logger.info('[2.15.2 migration] UPGRADE END: 2.15.2-index-creation') +} + +/** + * This downward migration script removes the newly created indexes and re-adds the old index on the `podcastEpisodes` table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.15.2 migration] DOWNGRADE BEGIN: 2.15.2-index-creation') + + // Remove index for bookAuthors + logger.info('[2.15.2 migration] Removing index for bookAuthors') + await queryInterface.removeIndex('bookAuthors', 'bookAuthor_authorId') + + // Remove index for bookSeries + logger.info('[2.15.2 migration] Removing index for bookSeries') + await queryInterface.removeIndex('bookSeries', 'bookSeries_seriesId') + + // Delete existing podcastEpisode index + logger.info('[2.15.2 migration] Deleting existing podcastEpisode index') + await queryInterface.removeIndex('podcastEpisodes', 'podcastEpisode_createdAt_podcastId') + + // Create index for podcastEpisode and createdAt + logger.info('[2.15.2 migration] Creating original index for podcastEpisode createdAt') + await queryInterface.addIndex('podcastEpisodes', ['createdAt'], { + name: 'podcast_episodes_created_at' + }) + + // Finished migration + logger.info('[2.15.2 migration] DOWNGRADE END: 2.15.2-index-creation') +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.0-uuid-replacement.js b/audiobookshelf/migrations/v2.17.0-uuid-replacement.js new file mode 100644 index 0000000..4316cd7 --- /dev/null +++ b/audiobookshelf/migrations/v2.17.0-uuid-replacement.js @@ -0,0 +1,102 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration script changes table columns with data type UUIDv4 to UUID to match associated models. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.17.0 migration] UPGRADE BEGIN: 2.17.0-uuid-replacement') + + logger.info('[2.17.0 migration] Changing libraryItems.mediaId column to UUID') + await queryInterface.changeColumn('libraryItems', 'mediaId', { + type: 'UUID' + }) + + logger.info('[2.17.0 migration] Changing feeds.entityId column to UUID') + await queryInterface.changeColumn('feeds', 'entityId', { + type: 'UUID' + }) + + if (await queryInterface.tableExists('mediaItemShares')) { + logger.info('[2.17.0 migration] Changing mediaItemShares.mediaItemId column to UUID') + await queryInterface.changeColumn('mediaItemShares', 'mediaItemId', { + type: 'UUID' + }) + } else { + logger.info('[2.17.0 migration] mediaItemShares table does not exist, skipping column change') + } + + logger.info('[2.17.0 migration] Changing playbackSessions.mediaItemId column to UUID') + await queryInterface.changeColumn('playbackSessions', 'mediaItemId', { + type: 'UUID' + }) + + logger.info('[2.17.0 migration] Changing playlistMediaItems.mediaItemId column to UUID') + await queryInterface.changeColumn('playlistMediaItems', 'mediaItemId', { + type: 'UUID' + }) + + logger.info('[2.17.0 migration] Changing mediaProgresses.mediaItemId column to UUID') + await queryInterface.changeColumn('mediaProgresses', 'mediaItemId', { + type: 'UUID' + }) + + // Completed migration + logger.info('[2.17.0 migration] UPGRADE END: 2.17.0-uuid-replacement') +} + +/** + * This downward migration script changes table columns data type back to UUIDv4. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.17.0 migration] DOWNGRADE BEGIN: 2.17.0-uuid-replacement') + + logger.info('[2.17.0 migration] Changing libraryItems.mediaId column to UUIDV4') + await queryInterface.changeColumn('libraryItems', 'mediaId', { + type: 'UUIDV4' + }) + + logger.info('[2.17.0 migration] Changing feeds.entityId column to UUIDV4') + await queryInterface.changeColumn('feeds', 'entityId', { + type: 'UUIDV4' + }) + + logger.info('[2.17.0 migration] Changing mediaItemShares.mediaItemId column to UUIDV4') + await queryInterface.changeColumn('mediaItemShares', 'mediaItemId', { + type: 'UUIDV4' + }) + + logger.info('[2.17.0 migration] Changing playbackSessions.mediaItemId column to UUIDV4') + await queryInterface.changeColumn('playbackSessions', 'mediaItemId', { + type: 'UUIDV4' + }) + + logger.info('[2.17.0 migration] Changing playlistMediaItems.mediaItemId column to UUIDV4') + await queryInterface.changeColumn('playlistMediaItems', 'mediaItemId', { + type: 'UUIDV4' + }) + + logger.info('[2.17.0 migration] Changing mediaProgresses.mediaItemId column to UUIDV4') + await queryInterface.changeColumn('mediaProgresses', 'mediaItemId', { + type: 'UUIDV4' + }) + + // Completed migration + logger.info('[2.17.0 migration] DOWNGRADE END: 2.17.0-uuid-replacement') +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.3-fk-constraints.js b/audiobookshelf/migrations/v2.17.3-fk-constraints.js new file mode 100644 index 0000000..5f8a5c9 --- /dev/null +++ b/audiobookshelf/migrations/v2.17.3-fk-constraints.js @@ -0,0 +1,259 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration script changes foreign key constraints for the + * libraryItems, feeds, mediaItemShares, playbackSessions, playlistMediaItems, and mediaProgresses tables. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.17.3 migration] UPGRADE BEGIN: 2.17.3-fk-constraints') + + const execQuery = queryInterface.sequelize.query.bind(queryInterface.sequelize) + + // Disable foreign key constraints for the next sequence of operations + await execQuery(`PRAGMA foreign_keys = OFF;`) + + try { + await execQuery(`BEGIN TRANSACTION;`) + + logger.info('[2.17.3 migration] Updating libraryItems constraints') + const libraryItemsConstraints = [ + { field: 'libraryId', onDelete: 'SET NULL', onUpdate: 'CASCADE' }, + { field: 'libraryFolderId', onDelete: 'SET NULL', onUpdate: 'CASCADE' } + ] + if (await changeConstraints(queryInterface, 'libraryItems', libraryItemsConstraints)) { + logger.info('[2.17.3 migration] Finished updating libraryItems constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for libraryItems constraints') + } + + logger.info('[2.17.3 migration] Updating feeds constraints') + const feedsConstraints = [{ field: 'userId', onDelete: 'SET NULL', onUpdate: 'CASCADE' }] + if (await changeConstraints(queryInterface, 'feeds', feedsConstraints)) { + logger.info('[2.17.3 migration] Finished updating feeds constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for feeds constraints') + } + + if (await queryInterface.tableExists('mediaItemShares')) { + logger.info('[2.17.3 migration] Updating mediaItemShares constraints') + const mediaItemSharesConstraints = [{ field: 'userId', onDelete: 'SET NULL', onUpdate: 'CASCADE' }] + if (await changeConstraints(queryInterface, 'mediaItemShares', mediaItemSharesConstraints)) { + logger.info('[2.17.3 migration] Finished updating mediaItemShares constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for mediaItemShares constraints') + } + } else { + logger.info('[2.17.3 migration] mediaItemShares table does not exist, skipping column change') + } + + logger.info('[2.17.3 migration] Updating playbackSessions constraints') + const playbackSessionsConstraints = [ + { field: 'deviceId', onDelete: 'SET NULL', onUpdate: 'CASCADE' }, + { field: 'libraryId', onDelete: 'SET NULL', onUpdate: 'CASCADE' }, + { field: 'userId', onDelete: 'SET NULL', onUpdate: 'CASCADE' } + ] + if (await changeConstraints(queryInterface, 'playbackSessions', playbackSessionsConstraints)) { + logger.info('[2.17.3 migration] Finished updating playbackSessions constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for playbackSessions constraints') + } + + logger.info('[2.17.3 migration] Updating playlistMediaItems constraints') + const playlistMediaItemsConstraints = [{ field: 'playlistId', onDelete: 'CASCADE', onUpdate: 'CASCADE' }] + if (await changeConstraints(queryInterface, 'playlistMediaItems', playlistMediaItemsConstraints)) { + logger.info('[2.17.3 migration] Finished updating playlistMediaItems constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for playlistMediaItems constraints') + } + + logger.info('[2.17.3 migration] Updating mediaProgresses constraints') + const mediaProgressesConstraints = [{ field: 'userId', onDelete: 'CASCADE', onUpdate: 'CASCADE' }] + if (await changeConstraints(queryInterface, 'mediaProgresses', mediaProgressesConstraints)) { + logger.info('[2.17.3 migration] Finished updating mediaProgresses constraints') + } else { + logger.info('[2.17.3 migration] No changes needed for mediaProgresses constraints') + } + + await execQuery(`COMMIT;`) + } catch (error) { + logger.error(`[2.17.3 migration] Migration failed - rolling back. Error:`, error) + await execQuery(`ROLLBACK;`) + } + + await execQuery(`PRAGMA foreign_keys = ON;`) + + // Completed migration + logger.info('[2.17.3 migration] UPGRADE END: 2.17.3-fk-constraints') +} + +/** + * This downward migration script is a no-op. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.17.3 migration] DOWNGRADE BEGIN: 2.17.3-fk-constraints') + + // This migration is a no-op + logger.info('[2.17.3 migration] No action required for downgrade') + + // Completed migration + logger.info('[2.17.3 migration] DOWNGRADE END: 2.17.3-fk-constraints') +} + +/** + * @typedef ConstraintUpdateObj + * @property {string} field - The field to update + * @property {string} onDelete - The onDelete constraint + * @property {string} onUpdate - The onUpdate constraint + */ + +/** + * @typedef SequelizeFKObj + * @property {{ model: string, key: string }} references + * @property {string} onDelete + * @property {string} onUpdate + */ + +/** + * @param {Object} fk - The foreign key object from PRAGMA foreign_key_list + * @returns {SequelizeFKObj} - The foreign key object formatted for Sequelize + */ +const formatFKsPragmaToSequelizeFK = (fk) => { + return { + references: { + model: fk.table, + key: fk.to + }, + onDelete: fk['on_delete'], + onUpdate: fk['on_update'] + } +} + +/** + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {string} tableName + * @param {ConstraintUpdateObj[]} constraints + * @returns {Promise|null>} + */ +async function getUpdatedForeignKeys(queryInterface, tableName, constraints) { + const execQuery = queryInterface.sequelize.query.bind(queryInterface.sequelize) + const quotedTableName = queryInterface.quoteIdentifier(tableName) + + const foreignKeys = await execQuery(`PRAGMA foreign_key_list(${quotedTableName});`) + + let hasUpdates = false + const foreignKeysByColName = foreignKeys.reduce((prev, curr) => { + const fk = formatFKsPragmaToSequelizeFK(curr) + + const constraint = constraints.find((c) => c.field === curr.from) + if (constraint && (constraint.onDelete !== fk.onDelete || constraint.onUpdate !== fk.onUpdate)) { + fk.onDelete = constraint.onDelete + fk.onUpdate = constraint.onUpdate + hasUpdates = true + } + + return { ...prev, [curr.from]: fk } + }, {}) + + return hasUpdates ? foreignKeysByColName : null +} + +/** + * Extends the Sequelize describeTable function to include the updated foreign key constraints + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {String} tableName + * @param {Record} updatedForeignKeys + */ +async function describeTableWithFKs(queryInterface, tableName, updatedForeignKeys) { + const tableDescription = await queryInterface.describeTable(tableName) + + const tableDescriptionWithFks = Object.entries(tableDescription).reduce((prev, [col, attributes]) => { + let extendedAttributes = attributes + + if (updatedForeignKeys[col]) { + extendedAttributes = { + ...extendedAttributes, + ...updatedForeignKeys[col] + } + } + return { ...prev, [col]: extendedAttributes } + }, {}) + + return tableDescriptionWithFks +} + +/** + * @see https://www.sqlite.org/lang_altertable.html#otheralter + * @see https://sequelize.org/docs/v6/other-topics/query-interface/#changing-and-removing-columns-in-sqlite + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {string} tableName + * @param {ConstraintUpdateObj[]} constraints + * @returns {Promise} - Return false if no changes are needed, true otherwise + */ +async function changeConstraints(queryInterface, tableName, constraints) { + const updatedForeignKeys = await getUpdatedForeignKeys(queryInterface, tableName, constraints) + if (!updatedForeignKeys) { + return false + } + + const execQuery = queryInterface.sequelize.query.bind(queryInterface.sequelize) + const quotedTableName = queryInterface.quoteIdentifier(tableName) + + const backupTableName = `${tableName}_${Math.round(Math.random() * 100)}_backup` + const quotedBackupTableName = queryInterface.quoteIdentifier(backupTableName) + + try { + const tableDescriptionWithFks = await describeTableWithFKs(queryInterface, tableName, updatedForeignKeys) + + const attributes = queryInterface.queryGenerator.attributesToSQL(tableDescriptionWithFks) + + // Create the backup table + await queryInterface.createTable(backupTableName, attributes) + + const attributeNames = Object.keys(attributes) + .map((attr) => queryInterface.quoteIdentifier(attr)) + .join(', ') + + // Copy all data from the target table to the backup table + await execQuery(`INSERT INTO ${quotedBackupTableName} SELECT ${attributeNames} FROM ${quotedTableName};`) + + // Drop the old (original) table + await queryInterface.dropTable(tableName) + + // Rename the backup table to the original table's name + await queryInterface.renameTable(backupTableName, tableName) + + // Validate that all foreign key constraints are correct + const result = await execQuery(`PRAGMA foreign_key_check(${quotedTableName});`, { + type: queryInterface.sequelize.Sequelize.QueryTypes.SELECT + }) + + // There are foreign key violations, exit + if (result.length) { + return Promise.reject(`Foreign key violations detected: ${JSON.stringify(result, null, 2)}`) + } + + return true + } catch (error) { + return Promise.reject(error) + } +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.4-use-subfolder-for-oidc-redirect-uris.js b/audiobookshelf/migrations/v2.17.4-use-subfolder-for-oidc-redirect-uris.js new file mode 100644 index 0000000..03797e3 --- /dev/null +++ b/audiobookshelf/migrations/v2.17.4-use-subfolder-for-oidc-redirect-uris.js @@ -0,0 +1,84 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +/** + * This upward migration adds an subfolder setting for OIDC redirect URIs. + * It updates existing OIDC setups to set this option to None (empty subfolder), so they continue to work as before. + * IF OIDC is not enabled, no action is taken (i.e. the subfolder is left undefined), + * so that future OIDC setups will use the default subfolder. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info('[2.17.4 migration] UPGRADE BEGIN: 2.17.4-use-subfolder-for-oidc-redirect-uris') + + const serverSettings = await getServerSettings(queryInterface, logger) + if (serverSettings.authActiveAuthMethods?.includes('openid')) { + logger.info('[2.17.4 migration] OIDC is enabled, adding authOpenIDSubfolderForRedirectURLs to server settings') + serverSettings.authOpenIDSubfolderForRedirectURLs = '' + await updateServerSettings(queryInterface, logger, serverSettings) + } else { + logger.info('[2.17.4 migration] OIDC is not enabled, no action required') + } + + logger.info('[2.17.4 migration] UPGRADE END: 2.17.4-use-subfolder-for-oidc-redirect-uris') +} + +/** + * This downward migration script removes the subfolder setting for OIDC redirect URIs. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info('[2.17.4 migration] DOWNGRADE BEGIN: 2.17.4-use-subfolder-for-oidc-redirect-uris ') + + // Remove the OIDC subfolder option from the server settings + const serverSettings = await getServerSettings(queryInterface, logger) + if (serverSettings.authOpenIDSubfolderForRedirectURLs !== undefined) { + logger.info('[2.17.4 migration] Removing authOpenIDSubfolderForRedirectURLs from server settings') + delete serverSettings.authOpenIDSubfolderForRedirectURLs + await updateServerSettings(queryInterface, logger, serverSettings) + } else { + logger.info('[2.17.4 migration] authOpenIDSubfolderForRedirectURLs not found in server settings, no action required') + } + + logger.info('[2.17.4 migration] DOWNGRADE END: 2.17.4-use-subfolder-for-oidc-redirect-uris ') +} + +async function getServerSettings(queryInterface, logger) { + const result = await queryInterface.sequelize.query('SELECT value FROM settings WHERE key = "server-settings";') + if (!result[0].length) { + logger.error('[2.17.4 migration] Server settings not found') + throw new Error('Server settings not found') + } + + let serverSettings = null + try { + serverSettings = JSON.parse(result[0][0].value) + } catch (error) { + logger.error('[2.17.4 migration] Error parsing server settings:', error) + throw error + } + + return serverSettings +} + +async function updateServerSettings(queryInterface, logger, serverSettings) { + await queryInterface.sequelize.query('UPDATE settings SET value = :value WHERE key = "server-settings";', { + replacements: { + value: JSON.stringify(serverSettings) + } + }) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.5-remove-host-from-feed-urls.js b/audiobookshelf/migrations/v2.17.5-remove-host-from-feed-urls.js new file mode 100644 index 0000000..e08877f --- /dev/null +++ b/audiobookshelf/migrations/v2.17.5-remove-host-from-feed-urls.js @@ -0,0 +1,74 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.17.5' +const migrationName = `${migrationVersion}-remove-host-from-feed-urls` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This upward migration removes the host (serverAddress) from URL columns in the feeds and feedEpisodes tables. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + logger.info(`${loggerPrefix} Removing serverAddress from Feeds table URLs`) + await queryInterface.sequelize.query(` + UPDATE Feeds + SET feedUrl = REPLACE(feedUrl, COALESCE(serverAddress, ''), ''), + imageUrl = REPLACE(imageUrl, COALESCE(serverAddress, ''), ''), + siteUrl = REPLACE(siteUrl, COALESCE(serverAddress, ''), ''); + `) + logger.info(`${loggerPrefix} Removed serverAddress from Feeds table URLs`) + + logger.info(`${loggerPrefix} Removing serverAddress from FeedEpisodes table URLs`) + await queryInterface.sequelize.query(` + UPDATE FeedEpisodes + SET siteUrl = REPLACE(siteUrl, (SELECT COALESCE(serverAddress, '') FROM Feeds WHERE Feeds.id = FeedEpisodes.feedId), ''), + enclosureUrl = REPLACE(enclosureUrl, (SELECT COALESCE(serverAddress, '') FROM Feeds WHERE Feeds.id = FeedEpisodes.feedId), ''); + `) + logger.info(`${loggerPrefix} Removed serverAddress from FeedEpisodes table URLs`) + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration script adds the host (serverAddress) back to URL columns in the feeds and feedEpisodes tables. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + logger.info(`${loggerPrefix} Adding serverAddress back to Feeds table URLs`) + await queryInterface.sequelize.query(` + UPDATE Feeds + SET feedUrl = COALESCE(serverAddress, '') || feedUrl, + imageUrl = COALESCE(serverAddress, '') || imageUrl, + siteUrl = COALESCE(serverAddress, '') || siteUrl; + `) + logger.info(`${loggerPrefix} Added serverAddress back to Feeds table URLs`) + + logger.info(`${loggerPrefix} Adding serverAddress back to FeedEpisodes table URLs`) + await queryInterface.sequelize.query(` + UPDATE FeedEpisodes + SET siteUrl = (SELECT COALESCE(serverAddress, '') || FeedEpisodes.siteUrl FROM Feeds WHERE Feeds.id = FeedEpisodes.feedId), + enclosureUrl = (SELECT COALESCE(serverAddress, '') || FeedEpisodes.enclosureUrl FROM Feeds WHERE Feeds.id = FeedEpisodes.feedId); + `) + logger.info(`${loggerPrefix} Added serverAddress back to FeedEpisodes table URLs`) + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.6-share-add-isdownloadable.js b/audiobookshelf/migrations/v2.17.6-share-add-isdownloadable.js new file mode 100644 index 0000000..9434d28 --- /dev/null +++ b/audiobookshelf/migrations/v2.17.6-share-add-isdownloadable.js @@ -0,0 +1,68 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a Sequelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.17.6' +const migrationName = `${migrationVersion}-share-add-isdownloadable` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This migration script adds the isDownloadable column to the mediaItemShares table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + if (await queryInterface.tableExists('mediaItemShares')) { + const tableDescription = await queryInterface.describeTable('mediaItemShares') + if (!tableDescription.isDownloadable) { + logger.info(`${loggerPrefix} Adding isDownloadable column to mediaItemShares table`) + await queryInterface.addColumn('mediaItemShares', 'isDownloadable', { + type: queryInterface.sequelize.Sequelize.DataTypes.BOOLEAN, + defaultValue: false, + allowNull: false + }) + logger.info(`${loggerPrefix} Added isDownloadable column to mediaItemShares table`) + } else { + logger.info(`${loggerPrefix} isDownloadable column already exists in mediaItemShares table`) + } + } else { + logger.info(`${loggerPrefix} mediaItemShares table does not exist`) + } + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This migration script removes the isDownloadable column from the mediaItemShares table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + if (await queryInterface.tableExists('mediaItemShares')) { + const tableDescription = await queryInterface.describeTable('mediaItemShares') + if (tableDescription.isDownloadable) { + logger.info(`${loggerPrefix} Removing isDownloadable column from mediaItemShares table`) + await queryInterface.removeColumn('mediaItemShares', 'isDownloadable') + logger.info(`${loggerPrefix} Removed isDownloadable column from mediaItemShares table`) + } else { + logger.info(`${loggerPrefix} isDownloadable column does not exist in mediaItemShares table`) + } + } else { + logger.info(`${loggerPrefix} mediaItemShares table does not exist`) + } + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.17.7-add-indices.js b/audiobookshelf/migrations/v2.17.7-add-indices.js new file mode 100644 index 0000000..b3821de --- /dev/null +++ b/audiobookshelf/migrations/v2.17.7-add-indices.js @@ -0,0 +1,83 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.17.7' +const migrationName = `${migrationVersion}-add-indices` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This upward migration adds some indices to the libraryItems and books tables to improve query performance + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + await addIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'size']) + await addIndex(queryInterface, logger, 'books', ['duration']) + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration script removes the indices added in the upward migration script + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + await removeIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'size']) + await removeIndex(queryInterface, logger, 'books', ['duration']) + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +/** + * Utility function to add an index to a table. If the index already exists, it logs a message and continues. + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {import ('../Logger')} logger + * @param {string} tableName + * @param {string[]} columns + */ +async function addIndex(queryInterface, logger, tableName, columns) { + try { + logger.info(`${loggerPrefix} adding index [${columns.join(', ')}] to table "${tableName}"`) + await queryInterface.addIndex(tableName, columns) + logger.info(`${loggerPrefix} added index [${columns.join(', ')}] to table "${tableName}"`) + } catch (error) { + if (error.name === 'SequelizeDatabaseError' && error.message.includes('already exists')) { + logger.info(`${loggerPrefix} index [${columns.join(', ')}] for table "${tableName}" already exists`) + } else { + throw error + } + } +} + +/** + * Utility function to remove an index from a table. + * Sequelize implemets it using DROP INDEX IF EXISTS, so it won't throw an error if the index doesn't exist. + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {import ('../Logger')} logger + * @param {string} tableName + * @param {string[]} columns + */ +async function removeIndex(queryInterface, logger, tableName, columns) { + logger.info(`${loggerPrefix} removing index [${columns.join(', ')}] from table "${tableName}"`) + await queryInterface.removeIndex(tableName, columns) + logger.info(`${loggerPrefix} removed index [${columns.join(', ')}] from table "${tableName}"`) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.19.1-copy-title-to-library-items.js b/audiobookshelf/migrations/v2.19.1-copy-title-to-library-items.js new file mode 100644 index 0000000..7b75fa8 --- /dev/null +++ b/audiobookshelf/migrations/v2.19.1-copy-title-to-library-items.js @@ -0,0 +1,164 @@ +const util = require('util') + +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.19.1' +const migrationName = `${migrationVersion}-copy-title-to-library-items` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This upward migration adds a title column to the libraryItems table, copies the title from the book to the libraryItem, + * and creates a new index on the title column. In addition it sets a trigger on the books table to update the title column + * in the libraryItems table when a book is updated. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + await addColumn(queryInterface, logger, 'libraryItems', 'title', { type: queryInterface.sequelize.Sequelize.STRING, allowNull: true }) + await copyColumn(queryInterface, logger, 'books', 'title', 'id', 'libraryItems', 'title', 'mediaId') + await addTrigger(queryInterface, logger, 'books', 'title', 'id', 'libraryItems', 'title', 'mediaId') + await addIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', { name: 'title', collate: 'NOCASE' }]) + + await addColumn(queryInterface, logger, 'libraryItems', 'titleIgnorePrefix', { type: queryInterface.sequelize.Sequelize.STRING, allowNull: true }) + await copyColumn(queryInterface, logger, 'books', 'titleIgnorePrefix', 'id', 'libraryItems', 'titleIgnorePrefix', 'mediaId') + await addTrigger(queryInterface, logger, 'books', 'titleIgnorePrefix', 'id', 'libraryItems', 'titleIgnorePrefix', 'mediaId') + await addIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', { name: 'titleIgnorePrefix', collate: 'NOCASE' }]) + + await addIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'createdAt']) + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration script removes the title column from the libraryItems table, removes the trigger on the books table, + * and removes the index on the title column. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + await removeIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'title']) + await removeTrigger(queryInterface, logger, 'libraryItems', 'title') + await removeColumn(queryInterface, logger, 'libraryItems', 'title') + + await removeIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'titleIgnorePrefix']) + await removeTrigger(queryInterface, logger, 'libraryItems', 'titleIgnorePrefix') + await removeColumn(queryInterface, logger, 'libraryItems', 'titleIgnorePrefix') + + await removeIndex(queryInterface, logger, 'libraryItems', ['libraryId', 'mediaType', 'createdAt']) + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +/** + * Utility function to add an index to a table. If the index already z`exists, it logs a message and continues. + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {import ('../Logger')} logger + * @param {string} tableName + * @param {string[]} columns + */ +async function addIndex(queryInterface, logger, tableName, columns) { + const columnString = columns.map((column) => util.inspect(column)).join(', ') + const indexName = convertToSnakeCase(`${tableName}_${columns.map((column) => (typeof column === 'string' ? column : column.name)).join('_')}`) + try { + logger.info(`${loggerPrefix} adding index on [${columnString}] to table ${tableName}. index name: ${indexName}"`) + await queryInterface.addIndex(tableName, columns) + logger.info(`${loggerPrefix} added index on [${columnString}] to table ${tableName}. index name: ${indexName}"`) + } catch (error) { + if (error.name === 'SequelizeDatabaseError' && error.message.includes('already exists')) { + logger.info(`${loggerPrefix} index [${columnString}] for table "${tableName}" already exists`) + } else { + throw error + } + } +} + +/** + * Utility function to remove an index from a table. + * Sequelize implemets it using DROP INDEX IF EXISTS, so it won't throw an error if the index doesn't exist. + * + * @param {import('sequelize').QueryInterface} queryInterface + * @param {import ('../Logger')} logger + * @param {string} tableName + * @param {string[]} columns + */ +async function removeIndex(queryInterface, logger, tableName, columns) { + logger.info(`${loggerPrefix} removing index [${columns.join(', ')}] from table "${tableName}"`) + await queryInterface.removeIndex(tableName, columns) + logger.info(`${loggerPrefix} removed index [${columns.join(', ')}] from table "${tableName}"`) +} + +async function addColumn(queryInterface, logger, table, column, options) { + logger.info(`${loggerPrefix} adding column "${column}" to table "${table}"`) + const tableDescription = await queryInterface.describeTable(table) + if (!tableDescription[column]) { + await queryInterface.addColumn(table, column, options) + logger.info(`${loggerPrefix} added column "${column}" to table "${table}"`) + } else { + logger.info(`${loggerPrefix} column "${column}" already exists in table "${table}"`) + } +} + +async function removeColumn(queryInterface, logger, table, column) { + logger.info(`${loggerPrefix} removing column "${column}" from table "${table}"`) + await queryInterface.removeColumn(table, column) + logger.info(`${loggerPrefix} removed column "${column}" from table "${table}"`) +} + +async function copyColumn(queryInterface, logger, sourceTable, sourceColumn, sourceIdColumn, targetTable, targetColumn, targetIdColumn) { + logger.info(`${loggerPrefix} copying column "${sourceColumn}" from table "${sourceTable}" to table "${targetTable}"`) + await queryInterface.sequelize.query(` + UPDATE ${targetTable} + SET ${targetColumn} = ${sourceTable}.${sourceColumn} + FROM ${sourceTable} + WHERE ${targetTable}.${targetIdColumn} = ${sourceTable}.${sourceIdColumn} + `) + logger.info(`${loggerPrefix} copied column "${sourceColumn}" from table "${sourceTable}" to table "${targetTable}"`) +} + +async function addTrigger(queryInterface, logger, sourceTable, sourceColumn, sourceIdColumn, targetTable, targetColumn, targetIdColumn) { + logger.info(`${loggerPrefix} adding trigger to update ${targetTable}.${targetColumn} when ${sourceTable}.${sourceColumn} is updated`) + const triggerName = convertToSnakeCase(`update_${targetTable}_${targetColumn}`) + + await queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + + await queryInterface.sequelize.query(` + CREATE TRIGGER ${triggerName} + AFTER UPDATE OF ${sourceColumn} ON ${sourceTable} + FOR EACH ROW + BEGIN + UPDATE ${targetTable} + SET ${targetColumn} = NEW.${sourceColumn} + WHERE ${targetTable}.${targetIdColumn} = NEW.${sourceIdColumn}; + END; + `) + logger.info(`${loggerPrefix} added trigger to update ${targetTable}.${targetColumn} when ${sourceTable}.${sourceColumn} is updated`) +} + +async function removeTrigger(queryInterface, logger, targetTable, targetColumn) { + logger.info(`${loggerPrefix} removing trigger to update ${targetTable}.${targetColumn}`) + const triggerName = convertToSnakeCase(`update_${targetTable}_${targetColumn}`) + await queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + logger.info(`${loggerPrefix} removed trigger to update ${targetTable}.${targetColumn}`) +} + +function convertToSnakeCase(str) { + return str.replace(/([A-Z])/g, '_$1').toLowerCase() +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.19.4-improve-podcast-queries.js b/audiobookshelf/migrations/v2.19.4-improve-podcast-queries.js new file mode 100644 index 0000000..689795c --- /dev/null +++ b/audiobookshelf/migrations/v2.19.4-improve-podcast-queries.js @@ -0,0 +1,219 @@ +const util = require('util') + +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.19.4' +const migrationName = `${migrationVersion}-improve-podcast-queries` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This upward migration adds a numEpisodes column to the podcasts table and populates it. + * It also adds a podcastId column to the mediaProgresses table and populates it. + * It also copies the title and titleIgnorePrefix columns from the podcasts table to the libraryItems table, + * and adds triggers to update them when the corresponding columns in the podcasts table are updated. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + // Add numEpisodes column to podcasts table + await addColumn(queryInterface, logger, 'podcasts', 'numEpisodes', { type: queryInterface.sequelize.Sequelize.INTEGER, allowNull: false, defaultValue: 0 }) + + // Populate numEpisodes column with the number of episodes for each podcast + await populateNumEpisodes(queryInterface, logger) + + // Add podcastId column to mediaProgresses table + await addColumn(queryInterface, logger, 'mediaProgresses', 'podcastId', { type: queryInterface.sequelize.Sequelize.UUID, allowNull: true }) + + // Populate podcastId column with the podcastId for each mediaProgress + await populatePodcastId(queryInterface, logger) + + // Copy title and titleIgnorePrefix columns from podcasts to libraryItems + await copyColumn(queryInterface, logger, 'podcasts', 'title', 'id', 'libraryItems', 'title', 'mediaId') + await copyColumn(queryInterface, logger, 'podcasts', 'titleIgnorePrefix', 'id', 'libraryItems', 'titleIgnorePrefix', 'mediaId') + + // Add triggers to update title and titleIgnorePrefix in libraryItems + await addTrigger(queryInterface, logger, 'podcasts', 'title', 'id', 'libraryItems', 'title', 'mediaId') + await addTrigger(queryInterface, logger, 'podcasts', 'titleIgnorePrefix', 'id', 'libraryItems', 'titleIgnorePrefix', 'mediaId') + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration removes the triggers on the podcasts table, + * the numEpisodes column from the podcasts table, and the podcastId column from the mediaProgresses table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + // Remove triggers from libraryItems + await removeTrigger(queryInterface, logger, 'podcasts', 'title', 'libraryItems', 'title') + await removeTrigger(queryInterface, logger, 'podcasts', 'titleIgnorePrefix', 'libraryItems', 'titleIgnorePrefix') + + // Remove numEpisodes column from podcasts table + await removeColumn(queryInterface, logger, 'podcasts', 'numEpisodes') + + // Remove podcastId column from mediaProgresses table + await removeColumn(queryInterface, logger, 'mediaProgresses', 'podcastId') + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +async function populateNumEpisodes(queryInterface, logger) { + logger.info(`${loggerPrefix} populating numEpisodes column in podcasts table`) + await queryInterface.sequelize.query(` + UPDATE podcasts + SET numEpisodes = (SELECT COUNT(*) FROM podcastEpisodes WHERE podcastEpisodes.podcastId = podcasts.id) + `) + logger.info(`${loggerPrefix} populated numEpisodes column in podcasts table`) +} + +async function populatePodcastId(queryInterface, logger) { + logger.info(`${loggerPrefix} populating podcastId column in mediaProgresses table`) + // bulk update podcastId to the podcastId of the podcastEpisode if the mediaItemType is podcastEpisode + await queryInterface.sequelize.query(` + UPDATE mediaProgresses + SET podcastId = (SELECT podcastId FROM podcastEpisodes WHERE podcastEpisodes.id = mediaProgresses.mediaItemId) + WHERE mediaItemType = 'podcastEpisode' + `) + logger.info(`${loggerPrefix} populated podcastId column in mediaProgresses table`) +} + +/** + * Utility function to add a column to a table. If the column already exists, it logs a message and continues. + * + * @param {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @param {import('../Logger')} logger - a Logger object. + * @param {string} table - the name of the table to add the column to. + * @param {string} column - the name of the column to add. + * @param {Object} options - the options for the column. + */ +async function addColumn(queryInterface, logger, table, column, options) { + logger.info(`${loggerPrefix} adding column "${column}" to table "${table}"`) + const tableDescription = await queryInterface.describeTable(table) + if (!tableDescription[column]) { + await queryInterface.addColumn(table, column, options) + logger.info(`${loggerPrefix} added column "${column}" to table "${table}"`) + } else { + logger.info(`${loggerPrefix} column "${column}" already exists in table "${table}"`) + } +} + +/** + * Utility function to remove a column from a table. If the column does not exist, it logs a message and continues. + * + * @param {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @param {import('../Logger')} logger - a Logger object. + * @param {string} table - the name of the table to remove the column from. + * @param {string} column - the name of the column to remove. + */ +async function removeColumn(queryInterface, logger, table, column) { + logger.info(`${loggerPrefix} removing column "${column}" from table "${table}"`) + const tableDescription = await queryInterface.describeTable(table) + if (tableDescription[column]) { + await queryInterface.sequelize.query(`ALTER TABLE ${table} DROP COLUMN ${column}`) + logger.info(`${loggerPrefix} removed column "${column}" from table "${table}"`) + } else { + logger.info(`${loggerPrefix} column "${column}" does not exist in table "${table}"`) + } +} + +/** + * Utility function to add a trigger to update a column in a target table when a column in a source table is updated. + * If the trigger already exists, it drops it and creates a new one. + * sourceIdColumn and targetIdColumn are used to match the source and target rows. + * + * @param {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @param {import('../Logger')} logger - a Logger object. + * @param {string} sourceTable - the name of the source table. + * @param {string} sourceColumn - the name of the column to update. + * @param {string} sourceIdColumn - the name of the id column of the source table. + * @param {string} targetTable - the name of the target table. + * @param {string} targetColumn - the name of the column to update. + * @param {string} targetIdColumn - the name of the id column of the target table. + */ +async function addTrigger(queryInterface, logger, sourceTable, sourceColumn, sourceIdColumn, targetTable, targetColumn, targetIdColumn) { + logger.info(`${loggerPrefix} adding trigger to update ${targetTable}.${targetColumn} when ${sourceTable}.${sourceColumn} is updated`) + const triggerName = convertToSnakeCase(`update_${targetTable}_${targetColumn}_from_${sourceTable}_${sourceColumn}`) + + await queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + + await queryInterface.sequelize.query(` + CREATE TRIGGER ${triggerName} + AFTER UPDATE OF ${sourceColumn} ON ${sourceTable} + FOR EACH ROW + BEGIN + UPDATE ${targetTable} + SET ${targetColumn} = NEW.${sourceColumn} + WHERE ${targetTable}.${targetIdColumn} = NEW.${sourceIdColumn}; + END; + `) + logger.info(`${loggerPrefix} added trigger to update ${targetTable}.${targetColumn} when ${sourceTable}.${sourceColumn} is updated`) +} + +/** + * Utility function to remove an update trigger from a table. + * + * @param {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @param {import('../Logger')} logger - a Logger object. + * @param {string} sourceTable - the name of the source table. + * @param {string} sourceColumn - the name of the column to update. + * @param {string} targetTable - the name of the target table. + * @param {string} targetColumn - the name of the column to update. + */ +async function removeTrigger(queryInterface, logger, sourceTable, sourceColumn, targetTable, targetColumn) { + logger.info(`${loggerPrefix} removing trigger to update ${targetTable}.${targetColumn}`) + const triggerName = convertToSnakeCase(`update_${targetTable}_${targetColumn}_from_${sourceTable}_${sourceColumn}`) + await queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + logger.info(`${loggerPrefix} removed trigger to update ${targetTable}.${targetColumn}`) +} + +/** + * Utility function to copy a column from a source table to a target table. + * sourceIdColumn and targetIdColumn are used to match the source and target rows. + * + * @param {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @param {import('../Logger')} logger - a Logger object. + * @param {string} sourceTable - the name of the source table. + * @param {string} sourceColumn - the name of the column to copy. + * @param {string} sourceIdColumn - the name of the id column of the source table. + * @param {string} targetTable - the name of the target table. + * @param {string} targetColumn - the name of the column to copy to. + * @param {string} targetIdColumn - the name of the id column of the target table. + */ +async function copyColumn(queryInterface, logger, sourceTable, sourceColumn, sourceIdColumn, targetTable, targetColumn, targetIdColumn) { + logger.info(`${loggerPrefix} copying column "${sourceColumn}" from table "${sourceTable}" to table "${targetTable}"`) + await queryInterface.sequelize.query(` + UPDATE ${targetTable} + SET ${targetColumn} = ${sourceTable}.${sourceColumn} + FROM ${sourceTable} + WHERE ${targetTable}.${targetIdColumn} = ${sourceTable}.${sourceIdColumn} + `) + logger.info(`${loggerPrefix} copied column "${sourceColumn}" from table "${sourceTable}" to table "${targetTable}"`) +} + +/** + * Utility function to convert a string to snake case, e.g. "titleIgnorePrefix" -> "title_ignore_prefix" + * + * @param {string} str - the string to convert to snake case. + * @returns {string} - the string in snake case. + */ +function convertToSnakeCase(str) { + return str.replace(/([A-Z])/g, '_$1').toLowerCase() +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.20.0-improve-author-sort-queries.js b/audiobookshelf/migrations/v2.20.0-improve-author-sort-queries.js new file mode 100644 index 0000000..53016c7 --- /dev/null +++ b/audiobookshelf/migrations/v2.20.0-improve-author-sort-queries.js @@ -0,0 +1,272 @@ +const util = require('util') +const { Sequelize } = require('sequelize') + +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.20.0' +const migrationName = `${migrationVersion}-improve-author-sort-queries` +const loggerPrefix = `[${migrationVersion} migration]` + +// Migration constants +const libraryItems = 'libraryItems' +const bookAuthors = 'bookAuthors' +const authors = 'authors' +const podcastEpisodes = 'podcastEpisodes' +const columns = [ + { name: 'authorNamesFirstLast', source: `${authors}.name`, spec: { type: Sequelize.STRING, allowNull: true } }, + { name: 'authorNamesLastFirst', source: `${authors}.lastFirst`, spec: { type: Sequelize.STRING, allowNull: true } } +] +const authorsSort = `${bookAuthors}.createdAt ASC` +const columnNames = columns.map((column) => column.name).join(', ') +const columnSourcesExpression = columns.map((column) => `GROUP_CONCAT(${column.source}, ', ' ORDER BY ${authorsSort})`).join(', ') +const authorsJoin = `${authors} JOIN ${bookAuthors} ON ${authors}.id = ${bookAuthors}.authorId` + +/** + * This upward migration adds an authorNames column to the libraryItems table and populates it. + * It also creates triggers to update the authorNames column when the corresponding bookAuthors and authors records are updated. + * It also creates an index on the authorNames column. + * + * It also adds an index on publishedAt to the podcastEpisodes table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + const helper = new MigrationHelper(queryInterface, logger) + + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + // Add authorNames columns to libraryItems table + await helper.addColumns() + + // Populate authorNames columns with the author names for each libraryItem + await helper.populateColumnsFromSource() + + // Create triggers to update the authorNames column when the corresponding bookAuthors and authors records are updated + await helper.addTriggers() + + // Create indexes on the authorNames columns + await helper.addIndexes() + + // Add index on publishedAt to the podcastEpisodes table + await helper.addIndex(podcastEpisodes, ['publishedAt']) + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration removes the authorNames column from the libraryItems table, + * the triggers on the bookAuthors and authors tables, and the index on the authorNames column. + * + * It also removes the index on publishedAt from the podcastEpisodes table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + const helper = new MigrationHelper(queryInterface, logger) + + // Remove triggers to update authorNames columns + await helper.removeTriggers() + + // Remove index on publishedAt from the podcastEpisodes table + await helper.removeIndex(podcastEpisodes, ['publishedAt']) + + // Remove indexes on the authorNames columns + await helper.removeIndexes() + + // Remove authorNames columns from libraryItems table + await helper.removeColumns() + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +class MigrationHelper { + constructor(queryInterface, logger) { + this.queryInterface = queryInterface + this.logger = logger + } + + async addColumn(table, column, options) { + this.logger.info(`${loggerPrefix} adding column "${column}" to table "${table}"`) + const tableDescription = await this.queryInterface.describeTable(table) + if (!tableDescription[column]) { + await this.queryInterface.addColumn(table, column, options) + this.logger.info(`${loggerPrefix} added column "${column}" to table "${table}"`) + } else { + this.logger.info(`${loggerPrefix} column "${column}" already exists in table "${table}"`) + } + } + + async addColumns() { + this.logger.info(`${loggerPrefix} adding ${columnNames} columns to ${libraryItems} table`) + for (const column of columns) { + await this.addColumn(libraryItems, column.name, column.spec) + } + this.logger.info(`${loggerPrefix} added ${columnNames} columns to ${libraryItems} table`) + } + + async removeColumn(table, column) { + this.logger.info(`${loggerPrefix} removing column "${column}" from table "${table}"`) + const tableDescription = await this.queryInterface.describeTable(table) + if (tableDescription[column]) { + await this.queryInterface.sequelize.query(`ALTER TABLE ${table} DROP COLUMN ${column}`) + this.logger.info(`${loggerPrefix} removed column "${column}" from table "${table}"`) + } else { + this.logger.info(`${loggerPrefix} column "${column}" does not exist in table "${table}"`) + } + } + + async removeColumns() { + this.logger.info(`${loggerPrefix} removing ${columnNames} columns from ${libraryItems} table`) + for (const column of columns) { + await this.removeColumn(libraryItems, column.name) + } + this.logger.info(`${loggerPrefix} removed ${columnNames} columns from ${libraryItems} table`) + } + + async populateColumnsFromSource() { + this.logger.info(`${loggerPrefix} populating ${columnNames} columns in ${libraryItems} table`) + const authorNamesSubQuery = ` + SELECT ${columnSourcesExpression} + FROM ${authorsJoin} + WHERE ${bookAuthors}.bookId = ${libraryItems}.mediaId + ` + await this.queryInterface.sequelize.query(` + UPDATE ${libraryItems} + SET (${columnNames}) = (${authorNamesSubQuery}) + WHERE mediaType = 'book'; + `) + this.logger.info(`${loggerPrefix} populated ${columnNames} columns in ${libraryItems} table`) + } + + async addBookAuthorsTrigger(action) { + this.logger.info(`${loggerPrefix} adding trigger to update ${libraryItems} ${columnNames} on ${bookAuthors} ${action}`) + const modifiedRecord = action === 'delete' ? 'OLD' : 'NEW' + const triggerName = convertToSnakeCase(`update_${libraryItems}_authorNames_on_${bookAuthors}_${action}`) + const authorNamesSubQuery = ` + SELECT ${columnSourcesExpression} + FROM ${authorsJoin} + WHERE ${bookAuthors}.bookId = ${modifiedRecord}.bookId + ` + await this.queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + + await this.queryInterface.sequelize.query(` + CREATE TRIGGER ${triggerName} + AFTER ${action} ON ${bookAuthors} + FOR EACH ROW + BEGIN + UPDATE ${libraryItems} + SET (${columnNames}) = (${authorNamesSubQuery}) + WHERE mediaId = ${modifiedRecord}.bookId; + END; + `) + this.logger.info(`${loggerPrefix} added trigger to update ${libraryItems} ${columnNames} on ${bookAuthors} ${action}`) + } + + async addAuthorsUpdateTrigger() { + this.logger.info(`${loggerPrefix} adding trigger to update ${libraryItems} ${columnNames} on ${authors} update`) + const triggerName = convertToSnakeCase(`update_${libraryItems}_authorNames_on_authors_update`) + const authorNamesSubQuery = ` + SELECT ${columnSourcesExpression} + FROM ${authorsJoin} + WHERE ${bookAuthors}.bookId = ${libraryItems}.mediaId + ` + + await this.queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + + await this.queryInterface.sequelize.query(` + CREATE TRIGGER ${triggerName} + AFTER UPDATE OF name ON ${authors} + FOR EACH ROW + BEGIN + UPDATE ${libraryItems} + SET (${columnNames}) = (${authorNamesSubQuery}) + WHERE mediaId IN (SELECT bookId FROM ${bookAuthors} WHERE authorId = NEW.id); + END; + `) + this.logger.info(`${loggerPrefix} added trigger to update ${libraryItems} ${columnNames} on ${authors} update`) + } + + async addTriggers() { + await this.addBookAuthorsTrigger('insert') + await this.addBookAuthorsTrigger('delete') + await this.addAuthorsUpdateTrigger() + } + + async removeBookAuthorsTrigger(action) { + this.logger.info(`${loggerPrefix} removing trigger to update ${libraryItems} ${columnNames} on ${bookAuthors} ${action}`) + const triggerName = convertToSnakeCase(`update_${libraryItems}_authorNames_on_${bookAuthors}_${action}`) + await this.queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + this.logger.info(`${loggerPrefix} removed trigger to update ${libraryItems} ${columnNames} on ${bookAuthors} ${action}`) + } + + async removeAuthorsUpdateTrigger() { + this.logger.info(`${loggerPrefix} removing trigger to update ${libraryItems} ${columnNames} on ${authors} update`) + const triggerName = convertToSnakeCase(`update_${libraryItems}_authorNames_on_authors_update`) + await this.queryInterface.sequelize.query(`DROP TRIGGER IF EXISTS ${triggerName}`) + this.logger.info(`${loggerPrefix} removed trigger to update ${libraryItems} ${columnNames} on ${authors} update`) + } + + async removeTriggers() { + await this.removeBookAuthorsTrigger('insert') + await this.removeBookAuthorsTrigger('delete') + await this.removeAuthorsUpdateTrigger() + } + + async addIndex(tableName, columns) { + const columnString = columns.map((column) => util.inspect(column)).join(', ') + const indexName = convertToSnakeCase(`${tableName}_${columns.map((column) => (typeof column === 'string' ? column : column.name)).join('_')}`) + try { + this.logger.info(`${loggerPrefix} adding index on [${columnString}] to table ${tableName}. index name: ${indexName}"`) + await this.queryInterface.addIndex(tableName, columns) + this.logger.info(`${loggerPrefix} added index on [${columnString}] to table ${tableName}. index name: ${indexName}"`) + } catch (error) { + if (error.name === 'SequelizeDatabaseError' && error.message.includes('already exists')) { + this.logger.info(`${loggerPrefix} index [${columnString}] for table "${tableName}" already exists`) + } else { + throw error + } + } + } + + async addIndexes() { + for (const column of columns) { + await this.addIndex(libraryItems, ['libraryId', 'mediaType', { name: column.name, collate: 'NOCASE' }]) + } + } + + async removeIndex(tableName, columns) { + this.logger.info(`${loggerPrefix} removing index [${columns.join(', ')}] from table "${tableName}"`) + await this.queryInterface.removeIndex(tableName, columns) + this.logger.info(`${loggerPrefix} removed index [${columns.join(', ')}] from table "${tableName}"`) + } + + async removeIndexes() { + for (const column of columns) { + await this.removeIndex(libraryItems, ['libraryId', 'mediaType', column.name]) + } + } +} +/** + * Utility function to convert a string to snake case, e.g. "titleIgnorePrefix" -> "title_ignore_prefix" + * + * @param {string} str - the string to convert to snake case. + * @returns {string} - the string in snake case. + */ +function convertToSnakeCase(str) { + return str.replace(/([A-Z])/g, '_$1').toLowerCase() +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.26.0-create-auth-tables.js b/audiobookshelf/migrations/v2.26.0-create-auth-tables.js new file mode 100644 index 0000000..a148046 --- /dev/null +++ b/audiobookshelf/migrations/v2.26.0-create-auth-tables.js @@ -0,0 +1,163 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a suquelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.26.0' +const migrationName = `${migrationVersion}-create-auth-tables` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This upward migration creates a sessions table and apiKeys table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + // Upwards migration script + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + // Check if table exists + if (await queryInterface.tableExists('sessions')) { + logger.info(`${loggerPrefix} table "sessions" already exists`) + } else { + // Create table + logger.info(`${loggerPrefix} creating table "sessions"`) + const DataTypes = queryInterface.sequelize.Sequelize.DataTypes + await queryInterface.createTable('sessions', { + id: { + type: DataTypes.UUID, + defaultValue: DataTypes.UUIDV4, + primaryKey: true + }, + ipAddress: DataTypes.STRING, + userAgent: DataTypes.STRING, + refreshToken: { + type: DataTypes.STRING, + allowNull: false + }, + expiresAt: { + type: DataTypes.DATE, + allowNull: false + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + }, + userId: { + type: DataTypes.UUID, + references: { + model: { + tableName: 'users' + }, + key: 'id' + }, + allowNull: false, + onDelete: 'CASCADE' + } + }) + logger.info(`${loggerPrefix} created table "sessions"`) + } + + // Check if table exists + if (await queryInterface.tableExists('apiKeys')) { + logger.info(`${loggerPrefix} table "apiKeys" already exists`) + } else { + // Create table + logger.info(`${loggerPrefix} creating table "apiKeys"`) + const DataTypes = queryInterface.sequelize.Sequelize.DataTypes + await queryInterface.createTable('apiKeys', { + id: { + type: DataTypes.UUID, + defaultValue: DataTypes.UUIDV4, + primaryKey: true + }, + name: { + type: DataTypes.STRING, + allowNull: false + }, + description: DataTypes.TEXT, + expiresAt: DataTypes.DATE, + lastUsedAt: DataTypes.DATE, + isActive: { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: false + }, + permissions: DataTypes.JSON, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + }, + userId: { + type: DataTypes.UUID, + references: { + model: { + tableName: 'users' + }, + key: 'id' + }, + onDelete: 'CASCADE' + }, + createdByUserId: { + type: DataTypes.UUID, + references: { + model: { + tableName: 'users', + as: 'createdByUser' + }, + key: 'id' + }, + onDelete: 'SET NULL' + } + }) + logger.info(`${loggerPrefix} created table "apiKeys"`) + } + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This downward migration script removes the sessions table and apiKeys table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + // Downward migration script + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + // Check if table exists + if (await queryInterface.tableExists('sessions')) { + logger.info(`${loggerPrefix} dropping table "sessions"`) + // Drop table + await queryInterface.dropTable('sessions') + logger.info(`${loggerPrefix} dropped table "sessions"`) + } else { + logger.info(`${loggerPrefix} table "sessions" does not exist`) + } + + if (await queryInterface.tableExists('apiKeys')) { + logger.info(`${loggerPrefix} dropping table "apiKeys"`) + await queryInterface.dropTable('apiKeys') + logger.info(`${loggerPrefix} dropped table "apiKeys"`) + } else { + logger.info(`${loggerPrefix} table "apiKeys" does not exist`) + } + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.33.0-add-discover-query-indexes.js b/audiobookshelf/migrations/v2.33.0-add-discover-query-indexes.js new file mode 100644 index 0000000..ebd92bb --- /dev/null +++ b/audiobookshelf/migrations/v2.33.0-add-discover-query-indexes.js @@ -0,0 +1,74 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface + * @property {import('../Logger')} logger + * + * @typedef MigrationOptions + * @property {MigrationContext} context + */ + +const migrationVersion = '2.33.0' +const migrationName = `${migrationVersion}-add-discover-query-indexes` +const loggerPrefix = `[${migrationVersion} migration]` + +const indexes = [ + { + table: 'mediaProgresses', + name: 'media_progresses_user_item_finished_time', + fields: ['userId', 'mediaItemId', 'isFinished', 'currentTime'] + }, + { + table: 'bookSeries', + name: 'book_series_series_book', + fields: ['seriesId', 'bookId'] + } +] + +async function up({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + for (const index of indexes) { + await addIndexIfMissing(queryInterface, logger, index) + } + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +async function down({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + for (const index of indexes) { + await removeIndexIfExists(queryInterface, logger, index) + } + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +async function addIndexIfMissing(queryInterface, logger, index) { + const existing = await queryInterface.showIndex(index.table) + if (existing.some((i) => i.name === index.name)) { + logger.info(`${loggerPrefix} index ${index.name} already exists on ${index.table}`) + return + } + + logger.info(`${loggerPrefix} adding index ${index.name} on ${index.table}(${index.fields.join(', ')})`) + await queryInterface.addIndex(index.table, { + name: index.name, + fields: index.fields + }) + logger.info(`${loggerPrefix} added index ${index.name}`) +} + +async function removeIndexIfExists(queryInterface, logger, index) { + const existing = await queryInterface.showIndex(index.table) + if (!existing.some((i) => i.name === index.name)) { + logger.info(`${loggerPrefix} index ${index.name} does not exist on ${index.table}`) + return + } + + logger.info(`${loggerPrefix} removing index ${index.name}`) + await queryInterface.removeIndex(index.table, index.name) + logger.info(`${loggerPrefix} removed index ${index.name}`) +} + +module.exports = { up, down } diff --git a/audiobookshelf/migrations/v2.35.0-add-last-refresh-token.js b/audiobookshelf/migrations/v2.35.0-add-last-refresh-token.js new file mode 100644 index 0000000..0ad190e --- /dev/null +++ b/audiobookshelf/migrations/v2.35.0-add-last-refresh-token.js @@ -0,0 +1,84 @@ +/** + * @typedef MigrationContext + * @property {import('sequelize').QueryInterface} queryInterface - a Sequelize QueryInterface object. + * @property {import('../Logger')} logger - a Logger object. + * + * @typedef MigrationOptions + * @property {MigrationContext} context - an object containing the migration context. + */ + +const migrationVersion = '2.35.0' +const migrationName = `${migrationVersion}-add-last-refresh-token` +const loggerPrefix = `[${migrationVersion} migration]` + +/** + * This migration script adds lastRefreshToken and lastRefreshTokenExpiresAt columns to the sessions table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function up({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} UPGRADE BEGIN: ${migrationName}`) + + if (await queryInterface.tableExists('sessions')) { + const tableDescription = await queryInterface.describeTable('sessions') + + if (!tableDescription.lastRefreshToken) { + logger.info(`${loggerPrefix} Adding lastRefreshToken column to sessions table`) + await queryInterface.addColumn('sessions', 'lastRefreshToken', { + type: queryInterface.sequelize.Sequelize.DataTypes.STRING, + allowNull: true + }) + } else { + logger.info(`${loggerPrefix} lastRefreshToken column already exists in sessions table`) + } + + if (!tableDescription.lastRefreshTokenExpiresAt) { + logger.info(`${loggerPrefix} Adding lastRefreshTokenExpiresAt column to sessions table`) + await queryInterface.addColumn('sessions', 'lastRefreshTokenExpiresAt', { + type: queryInterface.sequelize.Sequelize.DataTypes.DATE, + allowNull: true + }) + } else { + logger.info(`${loggerPrefix} lastRefreshTokenExpiresAt column already exists in sessions table`) + } + } else { + logger.info(`${loggerPrefix} sessions table does not exist`) + } + + logger.info(`${loggerPrefix} UPGRADE END: ${migrationName}`) +} + +/** + * This migration script removes the lastRefreshToken and lastRefreshTokenExpiresAt columns from the sessions table. + * + * @param {MigrationOptions} options - an object containing the migration context. + * @returns {Promise} - A promise that resolves when the migration is complete. + */ +async function down({ context: { queryInterface, logger } }) { + logger.info(`${loggerPrefix} DOWNGRADE BEGIN: ${migrationName}`) + + if (await queryInterface.tableExists('sessions')) { + const tableDescription = await queryInterface.describeTable('sessions') + + if (tableDescription.lastRefreshToken) { + logger.info(`${loggerPrefix} Removing lastRefreshToken column from sessions table`) + await queryInterface.removeColumn('sessions', 'lastRefreshToken') + } else { + logger.info(`${loggerPrefix} lastRefreshToken column does not exist in sessions table`) + } + + if (tableDescription.lastRefreshTokenExpiresAt) { + logger.info(`${loggerPrefix} Removing lastRefreshTokenExpiresAt column from sessions table`) + await queryInterface.removeColumn('sessions', 'lastRefreshTokenExpiresAt') + } else { + logger.info(`${loggerPrefix} lastRefreshTokenExpiresAt column does not exist in sessions table`) + } + } else { + logger.info(`${loggerPrefix} sessions table does not exist`) + } + + logger.info(`${loggerPrefix} DOWNGRADE END: ${migrationName}`) +} + +module.exports = { up, down } diff --git a/docker-compose.yml b/docker-compose.yml index 18f8130..0719077 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,21 +14,6 @@ x-logging: &logging # PLAYWRIGHT_MICROSERVICE_URL: http://playwright:3000/scrape services: - # change: - # <<: *logging - # profiles: ["prod"] - # container_name: change - # image: node:alpine - # build: ./change-game - # environment: - # - PORT=9000 - # - VIRTUAL_HOST=rec.${DOMAIN} - # - CERT_NAME=${DOMAIN} - # - VIRTUAL_PORT=9000 - # networks: - # - nginx - # volumes: - # - change:/change/public foundry: profiles: ["prod"] @@ -62,7 +47,7 @@ services: profiles: ["prod", "dev"] <<: *logging build: ./nextcloud - image: nextcloud:32-fpm-alpine + image: nextcloud:33-fpm-alpine restart: unless-stopped user: 1000:1000 ports: @@ -165,62 +150,126 @@ services: - nginx depends_on: - db - - librechat: - image: ghcr.io/danny-avila/librechat-dev-api:latest - ports: - - 3080:3080 + + audiobookshelf: + image: ghcr.io/advplyr/audiobookshelf:latest + volumes: + - /mnt/tower/stardust/chris/files/Library/Audiobooks:/audiobooks + - /mnt/tower/stardust/chris/files/Library/Podcasts:/podcasts + - /mnt/tower/stardust/chris/files/Library/Audiobooks/.audiobookshelf/config:/config + - /mnt/tower/stardust/chris/files/Library/Audiobooks/.audiobookshelf:/metadata + environment: + - TZ=Europe/London + - VIRTUAL_HOST=echo.${DOMAIN} + - VIRTUAL_PORT=80 networks: - nginx - - redis - - db - depends_on: - - mongodb - # - rag_api - restart: always - extra_hosts: - - "host.docker.internal:host-gateway" - <<: *logging - environment: - - VIRTUAL_HOST=droid.${DOMAIN} - - VIRTUAL_PORT=3080 - - CERT_NAME=${DOMAIN} - - HOST=0.0.0.0 - - NODE_ENV=production - - MONGO_URI=mongodb://${DB_USER}:${DB_PASSWORD}@mongodb:27017/LibreChat?authSource=admin - #- MEILI_HOST=http://meilisearch:7700 - #- MEILI_MASTER_KEY=${MEILI_MASTER_KEY} - #- RAG_PORT=8000 - #- RAG_API_URL=http://rag_api:8000 - #- SEARXNG_INSTANCE_URL=http://searxng:8080 - #- SEARXNG_API_KEY=${SEARXNG_SECRET_KEY} - #- FIRECRAWL_URL=http://firecrawl:3002 - #- FIRECRWAL_API_KEY= - - ALLOW_EMAIL_LOGIN=true - - ALLOW_REGISTRATION=false - - ALLOW_SOCIAL_LOGIN=false - - ALLOW_SOCIAL_REGISTRATION=false - - ALLOW_PASSWORD_RESET=false - - ALLOW_ACCOUNT_DELETION=false - - ALLOW_UNVERIFIED_EMAIL_LOGIN=true - - CREDS_KEY=${LIBRECHAT_CREDS_KEY} - - CREDS_IV=${LIBRECHAT_CREDS_IV} - - JWT_SECRET=${LIBRECHAT_JWT_SECRET} - - JWT_REFRESH_SECRET=${LIBRECHAT_JWT_REFRESH_SECRET} - - AIHUBMIX_KEY=${AIHUBMIX_KEY} - - OPENROUTER_KEY=${OPENROUTER_KEY} - - IMAGE_GEN_OAI_BASEURL=https://aihubmix.com/v1 - - IMAGE_GEN_OAI_API_KEY=${AIHUBMIX_KEY} - - IMAGE_GEN_OAI_MODEL=qwen-image-plus - #- JINA_API_KEY=${JINA_API_KEY} + + kavita: + image: jvmilazz0/kavita:latest # Using the stable branch from the official dockerhub repo. + container_name: kavita volumes: - - type: bind - source: ./librechat/librechat.yaml - target: /app/librechat.yaml - - /mnt/tower/stardust/chris/files/.droid/images:/app/client/public/images - - /mnt/tower/stardust/chris/files/.droid/uploads:/app/uploads - - /mnt/tower/stardust/chris/files/.droid/logs:/app/logs - - /mnt/tower/stardust/chris/files/:/files + # - /your/path/to/comics:/comics + - /mnt/tower/stardust/chris/files/Library/Books:/books + - /mnt/tower/stardust/chris/files/Library/Books/.kavita/config:/kavita/config + environment: + - TZ=Europe/London + - VIRTUAL_HOST=datapad.${DOMAIN} + - VIRTUAL_PORT=5000 + restart: unless-stopped + networks: + - nginx + + grocy: + image: lscr.io/linuxserver/grocy:latest + container_name: grocy + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - VIRTUAL_HOST=assets.${DOMAIN} + - VIRTUAL_PORT=9283 + volumes: + - ./grocy/config:/config + restart: unless-stopped + + # calibre-web-automated: + # image: crocodilestick/calibre-web-automated:latest + # container_name: calibre-web-automated + # environment: + # - PUID=1000 + # - PGID=1000 + # - TZ=Europe/London + # - HARDCOVER_TOKEN=${HARDCOVER_TOKEN} + # - NETWORK_SHARE_MODE=false + # # If running behind multiple proxies (e.g., Cloudflare Tunnel + reverse proxy), set the total number of proxies + # # This ensures proper IP detection for session protection and rate limiting (default: 1) + # # - TRUSTED_PROXY_COUNT=2 + # - VIRTUAL_HOST=datapad.${DOMAIN} + # - VIRTUAL_PORT=8083 + # volumes: + # - /mnt/tower/stardust/chris/files/Library/Books/.calibre/config:/config + # - /mnt/tower/stardust/chris/files/Library/Books/.calibre/ingest:/cwa-book-ingest + # - /mnt/tower/stardust/chris/files/Library/Books/.calibre/library:/calibre-library + # networks: + # - nginx + # restart: unless-stopped + + # librechat: + # image: ghcr.io/danny-avila/librechat-dev-api:latest + # ports: + # - 3080:3080 + # networks: + # - nginx + # - redis + # - db + # depends_on: + # - mongodb + # # - rag_api + # restart: always + # extra_hosts: + # - "host.docker.internal:host-gateway" + # <<: *logging + # environment: + # - VIRTUAL_HOST=droid.${DOMAIN} + # - VIRTUAL_PORT=3080 + # - CERT_NAME=${DOMAIN} + # - HOST=0.0.0.0 + # - NODE_ENV=production + # - MONGO_URI=mongodb://${DB_USER}:${DB_PASSWORD}@mongodb:27017/LibreChat?authSource=admin + # #- MEILI_HOST=http://meilisearch:7700 + # #- MEILI_MASTER_KEY=${MEILI_MASTER_KEY} + # #- RAG_PORT=8000 + # #- RAG_API_URL=http://rag_api:8000 + # #- SEARXNG_INSTANCE_URL=http://searxng:8080 + # #- SEARXNG_API_KEY=${SEARXNG_SECRET_KEY} + # #- FIRECRAWL_URL=http://firecrawl:3002 + # #- FIRECRWAL_API_KEY= + # - ALLOW_EMAIL_LOGIN=true + # - ALLOW_REGISTRATION=false + # - ALLOW_SOCIAL_LOGIN=false + # - ALLOW_SOCIAL_REGISTRATION=false + # - ALLOW_PASSWORD_RESET=false + # - ALLOW_ACCOUNT_DELETION=false + # - ALLOW_UNVERIFIED_EMAIL_LOGIN=true + # - CREDS_KEY=${LIBRECHAT_CREDS_KEY} + # - CREDS_IV=${LIBRECHAT_CREDS_IV} + # - JWT_SECRET=${LIBRECHAT_JWT_SECRET} + # - JWT_REFRESH_SECRET=${LIBRECHAT_JWT_REFRESH_SECRET} + # - AIHUBMIX_KEY=${AIHUBMIX_KEY} + # - OPENROUTER_KEY=${OPENROUTER_KEY} + # - IMAGE_GEN_OAI_BASEURL=https://aihubmix.com/v1 + # - IMAGE_GEN_OAI_API_KEY=${AIHUBMIX_KEY} + # - IMAGE_GEN_OAI_MODEL=qwen-image-plus + # #- JINA_API_KEY=${JINA_API_KEY} + # volumes: + # - type: bind + # source: ./librechat/librechat.yaml + # target: /app/librechat.yaml + # - /mnt/tower/stardust/chris/files/.droid/images:/app/client/public/images + # - /mnt/tower/stardust/chris/files/.droid/uploads:/app/uploads + # - /mnt/tower/stardust/chris/files/.droid/logs:/app/logs + # - /mnt/tower/stardust/chris/files/:/files searxng: image: docker.io/searxng/searxng:latest @@ -239,69 +288,6 @@ services: - CERT_NAME=${DOMAIN} <<: *logging - openclaw-gateway: - image: alpine/openclaw - build: - args: - OPENCLAW_DOCKER_APT_PACKAGES: "git curl jq ffmpeg build-essentials fzf ripgrep fd imagemagick exiftool" - NEXTCLOUD_USER: ${NEXTCLOUD_OPENCLAW_USER} - NEXTCLOUD_PASSWORD: ${NEXTCLOUD_OPENCLAW_PASSWORD} - user: 1000:1000 - environment: - HOME: /home/node - TERM: xterm-256color - OPENROUTER_API_KEY: ${OPENROUTER_KEY} - OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} - BRAVE_API_KEY: ${BRAVE_API_KEY} - TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} - VIRTUAL_HOST: kiwa.${DOMAIN} - VIRTUAL_PORT: "18789" - volumes: - - ./openclaw/config:/home/node/.openclaw - - ./openclaw/workspace:/home/node/.openclaw/workspace - - /mnt/tower/stardust/chris/files/:/files:ro - - openclaw:/home/node - ports: - - "${OPENCLAW_GATEWAY_PORT:-18789}:18789" - - "${OPENCLAW_BRIDGE_PORT:-18790}:18790" - networks: - - nginx - init: true - restart: unless-stopped - command: - [ - "node", - "dist/index.js", - "gateway", - "--bind", - "${OPENCLAW_GATEWAY_BIND:-lan}", - "--port", - "18789", - ] - - openclaw-cli: - image: alpine/openclaw - build: - args: - OPENCLAW_DOCKER_APT_PACKAGES: "git curl jq ffmpeg build-essentials fzf ripgrep fd imagemagick exiftool" - user: 1000:1000 - environment: - HOME: /home/node - TERM: xterm-256color - OPENROUTER_API_KEY: ${OPENROUTER_KEY} - BRAVE_API_KEY: ${BRAVE_API_KEY} - TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} - BROWSER: echo - volumes: - - ./openclaw/config:/home/node/.openclaw - - ./openclaw/workspace:/home/node/.openclaw/workspace - - /mnt/tower/stardust/chris/files/:/files:ro - - openclaw:/home/node - stdin_open: true - tty: true - init: true - entrypoint: ["node", "dist/index.js"] - minecraft: profiles: ["prod"] <<: *logging @@ -355,7 +341,7 @@ services: - ND_BASEURL=https://radio.${DOMAIN} volumes: - navidrome:/data - - /mnt/tower/stardust/chris/files/Music:/music:ro + - /mnt/tower/stardust/chris/files/Library/Music:/music:ro networks: - nginx diff --git a/grocy/config/config-dist.php b/grocy/config/config-dist.php new file mode 100644 index 0000000..501f71d --- /dev/null +++ b/grocy/config/config-dist.php @@ -0,0 +1,233 @@ + BASE_PATH = /grocy +// Example without URL Rewriting support: +// Root URL = https://example.com/grocy/public/index.php/ +// => BASE_PATH = /grocy/public/index.php +Setting('BASE_PATH', ''); + +// The base URL of your installation, +// should be just "/" when running directly under the root of a (sub)domain +// or for example "https://example.com/grocy" when using a subdirectory +Setting('BASE_URL', '/'); + +// The plugin to use for external barcode lookups, +// must be the filename (folder "/plugins" for built-in plugins or "/data/plugins" for user plugins) without the .php extension, +// see /plugins/DemoBarcodeLookupPlugin.php for a commented example implementation +// Leave empty to disable external barcode lookups +Setting('STOCK_BARCODE_LOOKUP_PLUGIN', 'OpenFoodFactsBarcodeLookupPlugin'); + +// If, however, your webserver does not support URL rewriting, set this to true +Setting('DISABLE_URL_REWRITING', false); + +// Specify an custom homepage if desired, by default the homepage will be set to the stock overview page +// This needs to be one of the following values: +// stock, shoppinglist, recipes, chores, tasks, batteries, equipment, calendar, mealplan +Setting('ENTRY_PAGE', 'stock'); + +// Set this to true if you want to disable authentication / the login screen, +// places where user context is needed will then use the default (first existing) user +Setting('DISABLE_AUTH', false); + +// Either "Grocy\Middleware\DefaultAuthMiddleware", "Grocy\Middleware\ReverseProxyAuthMiddleware" +// or any class that implements Grocy\Middleware\AuthMiddleware +Setting('AUTH_CLASS', 'Grocy\Middleware\DefaultAuthMiddleware'); + +// Options when using ReverseProxyAuthMiddleware +Setting('REVERSE_PROXY_AUTH_HEADER', 'REMOTE_USER'); // The name of the HTTP header which your reverse proxy uses to pass the username (on successful authentication) +Setting('REVERSE_PROXY_AUTH_USE_ENV', false); // Set to true if the username is passed as environment variable + +// Options when using LdapAuthMiddleware +Setting('LDAP_ADDRESS', ''); // Example value "ldap://vm-dc2019.local.berrnd.net" +Setting('LDAP_BASE_DN', ''); // Example value "DC=local,DC=berrnd,DC=net" +Setting('LDAP_BIND_DN', ''); // Example value "CN=grocy_bind_account,OU=service_accounts,DC=local,DC=berrnd,DC=net" +Setting('LDAP_BIND_PW', ''); // Password for the above account +Setting('LDAP_USER_FILTER', ''); // Example value "(OU=grocy_users)" +Setting('LDAP_UID_ATTR', ''); // Windows AD: "sAMAccountName", OpenLDAP: "uid", GLAuth: "cn" + +// Default permissions for new users +// the array needs to contain the technical/constant names +// See the file controllers/Users/User.php for possible values +Setting('DEFAULT_PERMISSIONS', ['ADMIN']); + +// "1D" (=> Code128) or "2D" (=> DataMatrix) +Setting('GROCYCODE_TYPE', '2D'); + + +// Label printer settings +Setting('LABEL_PRINTER_WEBHOOK', ''); // The URI that Grocy will POST to when asked to print a label +Setting('LABEL_PRINTER_RUN_SERVER', true); // Whether the webhook will be called server- or client-side +Setting('LABEL_PRINTER_PARAMS', ['font_family' => 'Source Sans Pro (Regular)']); // Additional parameters supplied to the webhook +Setting('LABEL_PRINTER_HOOK_JSON', true); // TRUE to use JSON or FALSE to use normal POST request variables + + +// Thermal printer options +// Thermal printers are receipt printers, not regular printers, +// the printer must support the ESC/POS protocol, see https://github.com/mike42/escpos-php +Setting('TPRINTER_IS_NETWORK_PRINTER', false); // Set to true if it's a network printer +Setting('TPRINTER_PRINT_QUANTITY_NAME', true); // Set to false if you do not want to print the quantity names (related to the shopping list) +Setting('TPRINTER_PRINT_NOTES', true); // Set to false if you do not want to print notes (related to the shopping list) +Setting('TPRINTER_IP', '127.0.0.1'); // IP of the network printer (does only matter if it's a network printer) +Setting('TPRINTER_PORT', 9100); // Port of the network printer (does only matter if it's a network printer) +Setting('TPRINTER_CONNECTOR', '/dev/usb/lp0'); // Printer device (does only matter if you use a locally attached printer) +// For USB on Linux this is often '/dev/usb/lp0', for serial printers it could be similar to '/dev/ttyS0' +// Make sure that the user that runs the webserver has permissions to write to the printer - on Linux add your webserver user to the LP group with usermod -a -G lp www-data + + +// Feature flags +// Here you can disable the parts which you don't need to have a less cluttered UI +// (set the setting to "false" to disable the corresponding part, which should be self explanatory) +Setting('FEATURE_FLAG_STOCK', true); +Setting('FEATURE_FLAG_SHOPPINGLIST', true); +Setting('FEATURE_FLAG_RECIPES', true); +Setting('FEATURE_FLAG_CHORES', true); +Setting('FEATURE_FLAG_TASKS', true); +Setting('FEATURE_FLAG_BATTERIES', true); +Setting('FEATURE_FLAG_EQUIPMENT', true); +Setting('FEATURE_FLAG_CALENDAR', true); +Setting('FEATURE_FLAG_LABEL_PRINTER', false); + +// Sub feature flags +Setting('FEATURE_FLAG_STOCK_PRICE_TRACKING', true); +Setting('FEATURE_FLAG_STOCK_LOCATION_TRACKING', true); +Setting('FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING', true); +Setting('FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING', true); +Setting('FEATURE_FLAG_STOCK_PRODUCT_FREEZING', true); +Setting('FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_FIELD_NUMBER_PAD', true); // Activate the number pad in due date fields on (supported) mobile browsers +Setting('FEATURE_FLAG_SHOPPINGLIST_MULTIPLE_LISTS', true); +Setting('FEATURE_FLAG_RECIPES_MEALPLAN', true); +Setting('FEATURE_FLAG_CHORES_ASSIGNMENTS', true); +Setting('FEATURE_FLAG_THERMAL_PRINTER', false); + +// Feature settings +Setting('FEATURE_FLAG_DISABLE_BROWSER_BARCODE_CAMERA_SCANNING', false); // Set this to true if you want to disable the ability to scan a barcode via the device camera (Browser API) +Setting('FEATURE_FLAG_AUTO_TORCH_ON_WITH_CAMERA', true); // Enables the torch automatically (if the device has one) + + +// Default user settings +// These settings can be changed per user and via the UI, +// below are the defaults which are used when the user has not changed the setting so far + +// Night mode related +DefaultUserSetting('night_mode', 'follow-system'); // "on" = Night mode is always on ; "off" = Night mode is always off / "follow-system" = System preferred color schema is used +DefaultUserSetting('auto_night_mode_enabled', false); // If night mode is enabled automatically when inside a given time range (see the two settings below) +DefaultUserSetting('auto_night_mode_time_range_from', '20:00'); // Format HH:mm +DefaultUserSetting('auto_night_mode_time_range_to', '07:00'); // Format HH:mm +DefaultUserSetting('auto_night_mode_time_range_goes_over_midnight', true); // If the time range above goes over midnight +DefaultUserSetting('night_mode_enabled_internal', false); // Internal setting if night mode is actually enabled (based on the other settings) + +// Generic settings +DefaultUserSetting('auto_reload_on_db_change', false); // If the page should be automatically reloaded when there was an external change +DefaultUserSetting('show_clock_in_header', false); // Show a clock in the header next to the logo or not +DefaultUserSetting('keep_screen_on', false); // If the screen should always be kept on +DefaultUserSetting('keep_screen_on_when_fullscreen_card', false); // If the screen should be kept on when a "fullscreen-card" is displayed + +// Stock settings +DefaultUserSetting('product_presets_location_id', -1); // Default location id for new products (-1 means no location is preset) +DefaultUserSetting('product_presets_product_group_id', -1); // Default product group id for new products (-1 means no product group is preset) +DefaultUserSetting('product_presets_qu_id', -1); // Default quantity unit id for new products (-1 means no quantity unit is preset) +DefaultUserSetting('product_presets_default_due_days', 0); // Default due days for new products (-1 means that the product will be never overdue) +DefaultUserSetting('product_presets_treat_opened_as_out_of_stock', true); // Default "Treat opened as out of stock" option for new products +DefaultUserSetting('product_presets_default_stock_label_type', 0); // "Default stock entry label" option for new products (0 = No label, 1 = Single Label, 2 = Label per unit) +DefaultUserSetting('stock_decimal_places_amounts', 4); // Default decimal places allowed for amounts +DefaultUserSetting('stock_decimal_places_prices_input', 2); // Default decimal places allowed for prices (input) +DefaultUserSetting('stock_decimal_places_prices_display', 2); // Default decimal places allowed for prices (display) +DefaultUserSetting('stock_auto_decimal_separator_prices', false); // If the decimal separator should be set automatically for amount inputs +DefaultUserSetting('stock_due_soon_days', 5); // The "expiring soon" days +DefaultUserSetting('stock_default_purchase_amount', 0); // The default amount prefilled on the purchase page +DefaultUserSetting('stock_default_consume_amount', 1); // The default amount prefilled on the consume page +DefaultUserSetting('stock_default_consume_amount_use_quick_consume_amount', false); // If the products quick consume amount should be prefilled on the consume page +DefaultUserSetting('scan_mode_consume_enabled', false); // If scan mode on the consume page is enabled +DefaultUserSetting('scan_mode_purchase_enabled', false); // If scan mode on the purchase page is enabled +DefaultUserSetting('show_icon_on_stock_overview_page_when_product_is_on_shopping_list', true); // When enabled, an icon is shown on the stock overview page (next to the product name) when the prodcut is currently on a shopping list +DefaultUserSetting('stock_overview_show_all_out_of_stock_products', false); // By default the stock overview page lists all products which are currently in stock or below their min. stock amount - when this is enabled, all (active) products are always shown +DefaultUserSetting('show_purchased_date_on_purchase', false); // Whether the purchased date should be editable on purchase (defaults to today otherwise) +DefaultUserSetting('show_warning_on_purchase_when_due_date_is_earlier_than_next', true); // Show a warning on purchase when the due date of the purchased product is earlier than the next due date in stock + +// Shopping list settings +DefaultUserSetting('shopping_list_to_stock_workflow_auto_submit_when_prefilled', false); // Automatically do the booking using the last price and the amount of the shopping list item, if the product has "Default due days" set +DefaultUserSetting('shopping_list_show_calendar', false); // When enabled, a small (month view) calendar will be shown on the shopping list page +DefaultUserSetting('shopping_list_round_up', false); // When enabled, all quantity amounts on the shopping list are always displayed rounded up to the nearest whole number +DefaultUserSetting('shopping_list_auto_add_below_min_stock_amount', false); // If products should be automatically added to the shopping list when they are below their min. stock amount +DefaultUserSetting('shopping_list_auto_add_below_min_stock_amount_list_id', 1); // When the above setting is enabled, the id of the shopping list to which the products will be added +DefaultUserSetting('shopping_list_print_show_header', true); // Default for the shopping list print option "Show header" +DefaultUserSetting('shopping_list_print_group_by_product_group', true); // Default for the shopping list print option "Group by product group" +DefaultUserSetting('shopping_list_print_layout_type', 'table'); // Default for the shopping list print option "Layout type" (table or list) + +// Recipe settings +DefaultUserSetting('recipe_ingredients_group_by_product_group', false); // Group recipe ingredients by their product group +DefaultUserSetting('recipes_show_list_side_by_side', true); // If the recipe should be displayed next to recipe list on the recipes page +DefaultUserSetting('recipes_show_ingredient_checkbox', false); // When enabled, a little checkbox will be shown next to each ingredient to mark it as done + +// Chores settings +DefaultUserSetting('chores_due_soon_days', 5); // The "due soon" days +DefaultUserSetting('chores_overview_swap_tracking_buttons', false); // When enabled, the "Track next chore schedule" and "Track chore execution now" buttons/menu items are swapped + +// Batteries settings +DefaultUserSetting('batteries_due_soon_days', 5); // The "due soon" days + +// Tasks settings +DefaultUserSetting('tasks_due_soon_days', 5); // The "due soon" days + +// Calendar settings +DefaultUserSetting('calendar_color_products', '#007bff'); // The event color (hex code) for due products +DefaultUserSetting('calendar_color_tasks', '#28a745'); // The event color (hex code) for due tasks +DefaultUserSetting('calendar_color_chores', '#ffc107'); // The event color (hex code) for due chores +DefaultUserSetting('calendar_color_batteries', '#17a2b8'); // The event color (hex code) for due battery charge cycles +DefaultUserSetting('calendar_color_meal_plan', '#6c757d'); // The event color (hex code) for meal plan items diff --git a/nextcloud/Dockerfile b/nextcloud/Dockerfile index c7d53a1..7f968fc 100644 --- a/nextcloud/Dockerfile +++ b/nextcloud/Dockerfile @@ -1,4 +1,4 @@ -FROM nextcloud:32-fpm-alpine +FROM nextcloud:34-fpm-alpine RUN set -ex; \ \ diff --git a/searxng/settings.yml.new b/searxng/settings.yml.new index 3b05662..7a98b05 100644 --- a/searxng/settings.yml.new +++ b/searxng/settings.yml.new @@ -23,7 +23,6 @@ brand: wiki_url: https://github.com/searxng/searxng/wiki issue_url: https://github.com/searxng/searxng/issues # custom: - # maintainer: "Jon Doe" # # Custom entries in the footer: [title]: [link] # links: # Uptime: https://uptime.searxng.org/history/darmarit-org @@ -133,8 +132,6 @@ ui: # query_in_title: When true, the result page's titles contains the query # it decreases the privacy, since the browser can records the page titles. query_in_title: false - # infinite_scroll: When true, automatically loads the next page when scrolling to bottom of the current page. - infinite_scroll: false # ui theme default_theme: simple # center the results ? @@ -171,7 +168,6 @@ ui: # - locale # - theme # - results_on_new_tab -# - infinite_scroll # - search_on_category_select # - method # - image_proxy @@ -223,6 +219,7 @@ outgoing: # - 1.1.1.2 # - fe80::/126 + # Plugin configuration, for more details see # https://docs.searxng.org/admin/settings/settings_plugins.html # @@ -359,25 +356,6 @@ engines: timeout: 6 disabled: true - - name: alexandria - engine: json_engine - shortcut: alx - categories: general - paging: true - search_url: https://api.alexandria.org/?a=1&q={query}&p={pageno} - results_query: results - title_query: title - url_query: url - content_query: snippet - timeout: 1.5 - disabled: true - about: - website: https://alexandria.org/ - official_api_documentation: https://github.com/alexandria-org/alexandria-api/raw/master/README.md - use_official_api: true - require_api_key: false - results: JSON - - name: astrophysics data system engine: astrophysics_data_system shortcut: ads @@ -685,7 +663,6 @@ engines: # cf_ai_model_assistant: 'prompts_for_assistant_role' # cf_ai_model_system: 'prompts_for_system_role' timeout: 30 - disabled: true inactive: true - name: core.ac.uk @@ -803,21 +780,6 @@ engines: require_api_key: false results: HTML -<<<<<<< HEAD - # - name: elasticsearch - # shortcut: els - # engine: elasticsearch - # base_url: http://localhost:9200 - # username: elastic - # password: changeme - # index: my-index - # enable_http: true - # # available options: match, simple_query_string, term, terms, custom - # query_type: match - # # if query_type is set to custom, provide your query here - # # custom_query_json: {"query":{"match_all": {}}} - # # show_metadata: false - # disabled: true - name: elasticsearch shortcut: els engine: elasticsearch