diff --git a/.all-contributorsrc b/.all-contributorsrc
index 3671ef22..be1261d0 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -312,6 +312,70 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "NuroDev",
+ "name": "nuro",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4991309?v=4",
+ "profile": "https://nuro.dev",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "onedr0p",
+ "name": "ᗪєνιη ᗷυнʟ",
+ "avatar_url": "https://avatars.githubusercontent.com/u/213795?v=4",
+ "profile": "https://github.com/onedr0p",
+ "contributions": [
+ "infra"
+ ]
+ },
+ {
+ "login": "JonnyWong16",
+ "name": "JonnyWong16",
+ "avatar_url": "https://avatars.githubusercontent.com/u/9099342?v=4",
+ "profile": "https://github.com/JonnyWong16",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "Roxedus",
+ "name": "Roxedus",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7110194?v=4",
+ "profile": "https://github.com/Roxedus",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "WoisWoi",
+ "name": "WoisWoi",
+ "avatar_url": "https://avatars.githubusercontent.com/u/75491231?v=4",
+ "profile": "https://github.com/WoisWoi",
+ "contributions": [
+ "translation"
+ ]
+ },
+ {
+ "login": "HubDuck",
+ "name": "HubDuck",
+ "avatar_url": "https://avatars.githubusercontent.com/u/77843475?v=4",
+ "profile": "https://github.com/HubDuck",
+ "contributions": [
+ "translation"
+ ]
+ },
+ {
+ "login": "costaht",
+ "name": "costaht",
+ "avatar_url": "https://avatars.githubusercontent.com/u/50637431?v=4",
+ "profile": "https://github.com/costaht",
+ "contributions": [
+ "doc",
+ "translation"
+ ]
}
],
"badgeTemplate": "-orange.svg\"/>",
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ffc74754..751a8c07 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,7 +12,7 @@ jobs:
test:
name: Lint & Test Build
runs-on: ubuntu-20.04
- container: node:12.18-alpine
+ container: node:14.16-alpine
steps:
- name: checkout
uses: actions/checkout@v2
@@ -24,6 +24,7 @@ jobs:
run: yarn lint
- name: build
run: yarn build
+
build_and_push:
name: Build & Publish to Docker Hub
needs: test
@@ -59,6 +60,7 @@ jobs:
with:
context: .
file: ./Dockerfile
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
build-args: |
COMMIT_TAG=${{ github.sha }}
@@ -68,7 +70,15 @@ jobs:
ghcr.io/sct/overseerr:develop
ghcr.io/sct/overseerr:${{ github.sha }}
cache-from: type=local,src=/tmp/.buildx-cache
- cache-to: type=local,dest=/tmp/.buildx-cache,mode=max
+ cache-to: type=local,dest=/tmp/.buildx-cache-new
+ - # Temporary fix
+ # https://github.com/docker/build-push-action/issues/252
+ # https://github.com/moby/buildkit/issues/1896
+ name: Move cache
+ run: |
+ rm -rf /tmp/.buildx-cache
+ mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
discord:
name: Send Discord Notification
needs: build_and_push
@@ -76,8 +86,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Get Build Job Status
- uses: technote-space/workflow-conclusion-action@v2.1.2
-
+ uses: technote-space/workflow-conclusion-action@v2.1.5
- name: Combine Job Status
id: status
run: |
@@ -87,7 +96,6 @@ jobs:
else
echo ::set-output name=status::$WORKFLOW_CONCLUSION
fi
-
- name: Post Status to Discord
uses: sarisia/actions-status-discord@v1
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9e929ce9..6ddccdd1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -9,7 +9,7 @@ jobs:
test:
name: Lint & Test Build
runs-on: ubuntu-20.04
- container: node:12.18-alpine
+ container: node:14.16-alpine
steps:
- name: checkout
uses: actions/checkout@v2
@@ -31,9 +31,24 @@ jobs:
with:
fetch-depth: 0
- name: Setup Node.js
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v2
with:
- node-version: 12
+ node-version: 14
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKER_USERNAME }}
+ password: ${{ secrets.DOCKER_TOKEN }}
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v1
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.CR_PAT }}
- name: Install dependencies
run: yarn
- name: Release
@@ -108,7 +123,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Get Build Job Status
- uses: technote-space/workflow-conclusion-action@v2.1.2
+ uses: technote-space/workflow-conclusion-action@v2.1.5
- name: Combine Job Status
id: status
diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml
index ac68a327..9fd27835 100644
--- a/.github/workflows/snap.yaml
+++ b/.github/workflows/snap.yaml
@@ -90,7 +90,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Get Build Job Status
- uses: technote-space/workflow-conclusion-action@v2.1.2
+ uses: technote-space/workflow-conclusion-action@v2.1.5
- name: Combine Job Status
id: status
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9a97a796..1c9b31dc 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,80 +1,87 @@
# Contributing to Overseerr
-All help is welcome and greatly appreciated. If you would like to contribute to the project, the instructions below can get you started...
+All help is welcome and greatly appreciated! If you would like to contribute to the project, the following instructions should get you started...
## Development
### Tools Required
-- HTML/Typescript/Javascript editor of choice. ([VSCode](https://code.visualstudio.com/) is recommended. Upon opening the project, a few extensions will be automatically recommended for install.)
-- [NodeJS](https://nodejs.org/en/download/) (Node 12.x.x or higher)
+- HTML/Typescript/Javascript editor
+ - [VSCode](https://code.visualstudio.com/) is recommended. Upon opening the project, a few extensions will be automatically recommended for install.
+- [NodeJS](https://nodejs.org/en/download/) (Node 14.x or higher)
- [Yarn](https://yarnpkg.com/)
- [Git](https://git-scm.com/downloads)
### Getting Started
-1. [Fork](https://help.github.com/articles/fork-a-repo/) the repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device.
+1. [Fork](https://help.github.com/articles/fork-a-repo/) the repository to your own GitHub account and [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device:
```bash
git clone https://github.com/YOUR_USERNAME/overseerr.git
cd overseerr/
```
-2. Add the remote upstream.
+2. Add the remote `upstream`:
```bash
git remote add upstream https://github.com/sct/overseerr.git
```
-3. Create a new branch
+3. Create a new branch:
```bash
git checkout -b BRANCH_NAME develop
```
- - It is recommended to name the branch something relevant to the feature or fix you are working on.
- - An example of this would be `fix-title-cards` or `feature-new-system`.
- - Bad examples would be `patch` or `bug`.
+ - It is recommended to give your branch a meaningful name, relevant to the feature or fix you are working on.
+ - Good examples:
+ - `docs-docker`
+ - `feature-new-system`
+ - `fix-title-cards`
+ - Bad examples:
+ - `bug`
+ - `docs`
+ - `feature`
+ - `fix`
+ - `patch`
-4. Run development environment
+4. Run the development environment:
```bash
yarn
yarn dev
```
- - Alternatively you can run using [Docker](https://www.docker.com/) with `docker-compose up -d`. This method does not require installing NodeJS or Yarn on your machine directly.
+ - Alternatively, you can use [Docker](https://www.docker.com/) with `docker-compose up -d`. This method does not require installing NodeJS or Yarn on your machine directly.
-5. Create your patch and run appropriate tests.
+5. Create your patch and test your changes.
-6. Follow the [guidelines](#contributing-code).
-
-7. Should you need to update your fork, you can do so by rebasing from `upstream`:
-
- ```bash
- git fetch upstream
- git rebase upstream/develop
- git push origin BRANCH_NAME -f
- ```
+ - Be sure to follow both the [code](#contributing-code) and [UI text](#ui-text-style) guidelines.
+ - Should you need to update your fork, you can do so by rebasing from `upstream`:
+ ```bash
+ git fetch upstream
+ git rebase upstream/develop
+ git push origin BRANCH_NAME -f
+ ```
### Contributing Code
-- If you are taking on an existing bug or feature ticket, please comment on the [GitHub Issue](https://github.com/sct/overseerr/issues) to avoid multiple people working on the same thing.
+- If you are taking on an existing bug or feature ticket, please comment on the [issue](https://github.com/sct/overseerr/issues) to avoid multiple people working on the same thing.
- All commits **must** follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
- - It is okay if you squash your PR down to be a single commit that fits this standard.
- - PRs with commits not following this standard will not be merged.
+ - It is okay to squash your pull request down into a single commit that fits this standard.
+ - Pull requests with commits not following this standard will **not** be merged.
- Please make meaningful commits, or squash them.
-- Always rebase your commit to the latest `develop` branch. Do not merge `develop` into your branch.
-- It is your responsibility to keep your branch up to date. It will not be merged unless its rebased off the latest `develop` branch.
+- Always rebase your commit to the latest `develop` branch. Do **not** merge `develop` into your branch.
+- It is your responsibility to keep your branch up-to-date. Your work will **not** be merged unless it is rebased off the latest `develop` branch.
- You can create a "draft" pull request early to get feedback on your work.
-- Your code must be formatted correctly or the tests will fail.
- - We use Prettier to format our codebase. It should automatically run with a `git` hook, but it is recommended to have the Prettier extension installed in your editor and format on save.
-- If you have questions or need help, you can reach out in [GitHub Discussions](https://github.com/sct/overseerr/discussions) or in our [Discord](https://discord.gg/PkCWJSeCk7).
-- Only open pull requests to `develop`. Never `master`. Any PRs opened to `master` will be closed.
+- Your code **must** be formatted correctly, or the tests will fail.
+ - We use Prettier to format our code base. It should automatically run with a Git hook, but it is recommended to have the Prettier extension installed in your editor and format on save.
+- If you have questions or need help, you can reach out via [Discussions](https://github.com/sct/overseerr/discussions) or our [Discord server](https://discord.gg/PkCWJSeCk7).
+- Only open pull requests to `develop`, never `master`! Any pull requests opened to `master` will be closed.
### UI Text Style
-When adding new UI text, please be sure to adhere to the following guidelines:
+When adding new UI text, please try to adhere to the following guidelines:
1. Be concise and clear, and use as few words as possible to make your point.
2. Use the Oxford comma where appropriate.
@@ -90,7 +97,7 @@ When adding new UI text, please be sure to adhere to the following guidelines:
## Translation
-We use [Weblate](https://hosted.weblate.org/engage/overseerr/) for our translations, and your help with localizing Overseerr would be greatly appreciated! If your language is not listed below, please [open a feature request on GitHub](https://github.com/sct/overseerr/issues/new/choose).
+We use [Weblate](https://hosted.weblate.org/engage/overseerr/) for our translations, and your help with localizing Overseerr would be greatly appreciated! If your language is not listed below, please [open a feature request](https://github.com/sct/overseerr/issues/new/choose).
diff --git a/Dockerfile b/Dockerfile
index 281ba10e..9a5af8ca 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,7 @@
-FROM node:14.15-alpine AS BUILD_IMAGE
+FROM node:14.16-alpine AS BUILD_IMAGE
+
+ARG TARGETPLATFORM
+ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
ARG COMMIT_TAG
ENV COMMIT_TAG=${COMMIT_TAG}
@@ -6,7 +9,13 @@ ENV COMMIT_TAG=${COMMIT_TAG}
COPY . /app
WORKDIR /app
-RUN yarn --frozen-lockfile && \
+RUN \
+ case "${TARGETPLATFORM}" in \
+ 'linux/arm64') apk add --no-cache python make g++ ;; \
+ 'linux/arm/v7') apk add --no-cache python make g++ ;; \
+ esac
+
+RUN yarn --frozen-lockfile --network-timeout 1000000 && \
yarn build
# remove development dependencies
@@ -20,14 +29,15 @@ RUN touch config/DOCKER
RUN echo "{\"commitTag\": \"${COMMIT_TAG}\"}" > committag.json
-FROM node:14.15-alpine
+FROM node:14.16-alpine
-RUN apk add --no-cache tzdata
+RUN apk add --no-cache tzdata tini
# copy from build image
COPY --from=BUILD_IMAGE /app /app
WORKDIR /app
-CMD yarn start
+ENTRYPOINT [ "/sbin/tini", "--" ]
+CMD [ "yarn", "start" ]
EXPOSE 5055
diff --git a/Dockerfile.local b/Dockerfile.local
index 47470513..64fd61a6 100644
--- a/Dockerfile.local
+++ b/Dockerfile.local
@@ -1,4 +1,4 @@
-FROM node:12.18-alpine
+FROM node:14.16-alpine
COPY . /app
WORKDIR /app
diff --git a/README.md b/README.md
index 70bd55d5..0fc140ed 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
-
+
+
{data.overview ? data.overview : intl.formatMessage(messages.overviewunavailable)}