diff --git a/overseerr-api.yml b/overseerr-api.yml index 1d2cd7bd4..380979b95 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -1479,14 +1479,14 @@ paths: type: string /status/appdata: get: - summary: Get /app/data volume status - description: For Docker installs, returns whether or not the /app/data volume mount was configured properly. Always returns true for non-Docker installs. + summary: Get application data volume status + description: For Docker installs, returns whether or not the volume mount was configured properly. Always returns true for non-Docker installs. security: [] tags: - public responses: '200': - description: /app/data volume status + description: Application data volume status and path content: application/json: schema: @@ -1495,6 +1495,9 @@ paths: appData: type: boolean example: true + appDataPath: + type: string + example: /app/config /settings/main: get: summary: Get main settings diff --git a/server/api/animelist.ts b/server/api/animelist.ts index 442059424..20eb2f60e 100644 --- a/server/api/animelist.ts +++ b/server/api/animelist.ts @@ -8,7 +8,9 @@ const UPDATE_INTERVAL_MSEC = 24 * 3600 * 1000; // how often to download new mapp // originally at https://raw.githubusercontent.com/ScudLee/anime-lists/master/anime-list.xml const MAPPING_URL = 'https://raw.githubusercontent.com/Anime-Lists/anime-lists/master/anime-list.xml'; -const LOCAL_PATH = path.join(__dirname, '../../config/anime-list.xml'); +const LOCAL_PATH = process.env.CONFIG_DIRECTORY + ? `${process.env.CONFIG_DIRECTORY}/anime-list.xml` + : path.join(__dirname, '../../config/anime-list.xml'); const mappingRegexp = new RegExp(/;[0-9]+-([0-9]+)/g); diff --git a/server/routes/index.ts b/server/routes/index.ts index 8b90be5a7..78324025f 100644 --- a/server/routes/index.ts +++ b/server/routes/index.ts @@ -15,7 +15,7 @@ import personRoutes from './person'; import collectionRoutes from './collection'; import { getAppVersion, getCommitTag } from '../utils/appVersion'; import serviceRoutes from './service'; -import { appDataStatus } from '../utils/appDataVolume'; +import { appDataStatus, appDataPath } from '../utils/appDataVolume'; const router = Router(); @@ -31,6 +31,7 @@ router.get('/status', (req, res) => { router.get('/status/appdata', (_req, res) => { return res.status(200).json({ appData: appDataStatus(), + appDataPath: appDataPath(), }); }); diff --git a/server/utils/appDataVolume.ts b/server/utils/appDataVolume.ts index 0e42a1a22..73c80b2c5 100644 --- a/server/utils/appDataVolume.ts +++ b/server/utils/appDataVolume.ts @@ -1,8 +1,16 @@ import { existsSync } from 'fs'; import path from 'path'; -const DOCKER_PATH = path.join(__dirname, '../../config/DOCKER'); +const CONFIG_PATH = process.env.CONFIG_DIRECTORY + ? process.env.CONFIG_DIRECTORY + : path.join(__dirname, '../../config'); + +const DOCKER_PATH = `${CONFIG_PATH}/DOCKER`; export const appDataStatus = (): boolean => { return !existsSync(DOCKER_PATH); }; + +export const appDataPath = (): string => { + return CONFIG_PATH; +}; diff --git a/src/components/AppDataWarning/index.tsx b/src/components/AppDataWarning/index.tsx index c16347e0e..3023db81a 100644 --- a/src/components/AppDataWarning/index.tsx +++ b/src/components/AppDataWarning/index.tsx @@ -6,12 +6,12 @@ import Alert from '../Common/Alert'; const messages = defineMessages({ dockerVolumeMissing: 'Docker Volume Mount Missing', dockerVolumeMissingDescription: - 'The /app/config volume mount was not configured properly. All data will be cleared when the container is stopped or restarted.', + 'The {appDataPath} volume mount was not configured properly. All data will be cleared when the container is stopped or restarted.', }); const AppDataWarning: React.FC = () => { const intl = useIntl(); - const { data, error } = useSWR<{ appData: boolean }>( + const { data, error } = useSWR<{ appData: boolean; appDataPath: string }>( '/api/v1/status/appdata' ); @@ -31,6 +31,7 @@ const AppDataWarning: React.FC = () => { code: function code(msg) { return {msg}; }, + appDataPath: data.appDataPath, })} )} diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 6f633ea26..9b22e682b 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -1,6 +1,6 @@ { "components.AppDataWarning.dockerVolumeMissing": "Docker Volume Mount Missing", - "components.AppDataWarning.dockerVolumeMissingDescription": "The /app/config volume mount was not configured properly. All data will be cleared when the container is stopped or restarted.", + "components.AppDataWarning.dockerVolumeMissingDescription": "The {appDataPath} volume mount was not configured properly. All data will be cleared when the container is stopped or restarted.", "components.CollectionDetails.movies": "Movies", "components.CollectionDetails.numberofmovies": "Number of Movies: {count}", "components.CollectionDetails.overview": "Overview",