-
- Requested by {{requester_name}} at {{timestamp}} - -- Open detail page - - |
-
diff --git a/.all-contributorsrc b/.all-contributorsrc index ceb13bd2d1..356696f369 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -292,6 +292,15 @@ "contributions": [ "code" ] + }, + { + "login": "douglasparker", + "name": "Douglas Parker", + "avatar_url": "https://avatars.githubusercontent.com/u/18235822?v=4", + "profile": "https://www.douglas-parker.com", + "contributions": [ + "doc" + ] } ], "badgeTemplate": "-orange.svg\"/>", diff --git a/.dockerignore b/.dockerignore index 4d49270ea3..4095dce568 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,15 +1,23 @@ -node_modules -.next +**/*.md +**/.gitkeep +**/.vscode +.all-contributorsrc +.dockerignore +.editorconfig +.eslintrc.js .git +.gitbook.yaml .gitconfig .gitignore .github -.all-contributorsrc -.editorconfig +.next .prettierignore -**/README.md -**/.vscode config/db/db.sqlite3 config/db/logs/overseerr.log -Dockerfil** -**.md +Dockerfile* +docker-compose.yml +docs +LICENSE +node_modules +snap +stylelint.config.js diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c4d690b74a..7590f941c5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,3 +6,9 @@ updates: interval: daily time: '20:00' open-pull-requests-limit: 10 + - package-ecosystem: github-actions + directory: '/' + schedule: + interval: daily + time: '20:00' + open-pull-requests-limit: 10 diff --git a/.github/workflows/deploy_docs.yml b/.github/workflows/deploy_docs.yml new file mode 100644 index 0000000000..13e3e01d20 --- /dev/null +++ b/.github/workflows/deploy_docs.yml @@ -0,0 +1,23 @@ +name: Deploy API Docs + +on: + push: + branches: + - develop + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Generate Swagger UI + uses: Legion2/swagger-ui-action@v1 + with: + output: swagger-ui + spec-file: overseerr-api.yml + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: swagger-ui + cname: api-docs.overseerr.dev diff --git a/.stoplight.json b/.stoplight.json new file mode 100644 index 0000000000..0a876a9eb6 --- /dev/null +++ b/.stoplight.json @@ -0,0 +1,9 @@ +{ + "formats": { + "openapi": { + "rootDir": ".", + "include": ["**"] + } + }, + "exclude": ["docs"] +} diff --git a/Dockerfile b/Dockerfile index 8a0190bf8d..281ba10e4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12.18-alpine AS BUILD_IMAGE +FROM node:14.15-alpine AS BUILD_IMAGE ARG COMMIT_TAG ENV COMMIT_TAG=${COMMIT_TAG} @@ -11,24 +11,22 @@ RUN yarn --frozen-lockfile && \ # remove development dependencies RUN yarn install --production --ignore-scripts --prefer-offline -RUN yarn cache clean -FROM node:12.18-alpine +RUN rm -rf src && \ + rm -rf server -ARG COMMIT_TAG -ENV COMMIT_TAG=${COMMIT_TAG} +RUN touch config/DOCKER -RUN apk add tzdata +RUN echo "{\"commitTag\": \"${COMMIT_TAG}\"}" > committag.json -COPY . /app -WORKDIR /app -# copy from build image -COPY --from=BUILD_IMAGE /app/dist ./dist -COPY --from=BUILD_IMAGE /app/.next ./.next -COPY --from=BUILD_IMAGE /app/node_modules ./node_modules +FROM node:14.15-alpine -RUN echo "{\"commitTag\": \"${COMMIT_TAG}\"}" > committag.json +RUN apk add --no-cache tzdata + +# copy from build image +COPY --from=BUILD_IMAGE /app /app +WORKDIR /app CMD yarn start diff --git a/README.md b/README.md index 458448bb1d..f3b3c27b04 100644 --- a/README.md +++ b/README.md @@ -16,21 +16,21 @@ - +
-**Overseerr** is a free and open source software application for managing requests for your media library. It integrates with your existing services such as **Sonarr**, **Radarr** and **Plex**! +**Overseerr** is a free and open source software application for managing requests for your media library. It integrates with your existing services such as **[Sonarr](https://sonarr.tv/)**, **[Radarr](https://radarr.video/)** and **[Plex](https://www.plex.tv/)**! ## Current Features - Full Plex integration. Login and manage user access with Plex! -- Integrates easily with your existing services. Currently Overseerr supports Sonarr and Radarr. More to come! -- Syncs to your Plex library to know what titles you already have. +- Easy integration with your existing services. Currently Overseerr supports Sonarr and Radarr. More to come! +- Plex libraries sync to know what titles you already have. - Complex request system allowing users to request individual seasons or movies in a friendly, easy to use UI. -- Incredibly simple request management UI. Don't dig through the app to simply approve recent requests. -- Granular permission system -- Mobile friendly design, for when you need to approve requests on the go! +- Incredibly simple request management UI. Don't dig through the app to simply approve recent requests! +- Granular permission system. +- Mobile-friendly design, for when you need to approve requests on the go! ## In Development @@ -46,19 +46,18 @@ ## Getting Started -Check out our documentation for steps on how to install and run Overseerr: +Check out our documentation for instructions on how to install and run Overseerr: https://docs.overseerr.dev/getting-started/installation ## Running Overseerr -Currently, Overseerr is only distributed through Docker images. If you have Docker, you can run Overseerr as per: +Currently, Overseerr is primarily distributed as Docker images. If you have Docker, you can run Overseerr with: ``` docker run -d \ -e LOG_LEVEL=info \ -e TZ=Asia/Tokyo \ - -e PROXY=
-
- Requested by {{requester_name}} at {{timestamp}} - -- Open detail page - - |
-
- - Overseerr. - - |
-
{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; appDataPath: string }>(
+ '/api/v1/status/appdata'
+ );
+
+ if (!data && !error) {
+ return null;
+ }
+
+ if (!data) {
+ return null;
+ }
+
+ return (
+ <>
+ {!data.appData && (
+ {msg}
;
+ },
+ appDataPath: data.appDataPath,
+ })}
+ {subTitle}
- )} +{subTitle}
}