diff --git a/.all-contributorsrc b/.all-contributorsrc
index bc7fea695..0367e4ac8 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -503,6 +503,42 @@
"contributions": [
"translation"
]
+ },
+ {
+ "login": "iceHtwoO",
+ "name": "Alexander Neuhäuser",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27020492?v=4",
+ "profile": "https://github.com/iceHtwoO",
+ "contributions": [
+ "translation"
+ ]
+ },
+ {
+ "login": "liviokanone",
+ "name": "Livio",
+ "avatar_url": "https://avatars.githubusercontent.com/u/37431541?v=4",
+ "profile": "http://www.unext.co.jp",
+ "contributions": [
+ "design"
+ ]
+ },
+ {
+ "login": "tangentThought",
+ "name": "tangentThought",
+ "avatar_url": "https://avatars.githubusercontent.com/u/25516090?v=4",
+ "profile": "https://github.com/tangentThought",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "nicospz",
+ "name": "Nicolás Espinoza",
+ "avatar_url": "https://avatars.githubusercontent.com/u/31373060?v=4",
+ "profile": "https://github.com/nicospz",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "-orange.svg\"/>",
diff --git a/.dockerignore b/.dockerignore
index ddb02133b..3ddaa574e 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -21,7 +21,7 @@ docker-compose.yml
docs
LICENSE
node_modules
-public/os_logo_square.png
+public/os_logo_filled.png
public/preview.jpg
snap
stylelint.config.js
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 06cccb78a..9945e234d 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:14.16-alpine
+ container: node:14.17-alpine
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 13464f61e..0f1f661d7 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:14.16-alpine
+ container: node:14.17-alpine
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml
index c74e6b132..3e82fe9ae 100644
--- a/.github/workflows/snap.yaml
+++ b/.github/workflows/snap.yaml
@@ -20,7 +20,7 @@ jobs:
name: Lint & Test Build
needs: jobs
runs-on: ubuntu-20.04
- container: node:14.16-alpine
+ container: node:14.17-alpine
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
diff --git a/Dockerfile b/Dockerfile
index eda37b312..cb80274ee 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.16-alpine AS BUILD_IMAGE
+FROM node:14.17-alpine AS BUILD_IMAGE
WORKDIR /app
@@ -31,7 +31,7 @@ RUN touch config/DOCKER
RUN echo "{\"commitTag\": \"${COMMIT_TAG}\"}" > committag.json
-FROM node:14.16-alpine
+FROM node:14.17-alpine
WORKDIR /app
diff --git a/Dockerfile.local b/Dockerfile.local
index 64fd61a6e..b0b922e1f 100644
--- a/Dockerfile.local
+++ b/Dockerfile.local
@@ -1,4 +1,4 @@
-FROM node:14.16-alpine
+FROM node:14.17-alpine
COPY . /app
WORKDIR /app
diff --git a/README.md b/README.md
index 3dbf40fba..02c4a81a8 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
@@ -12,7 +12,7 @@
-
+
@@ -143,6 +143,12 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
littlerooster 🌍 |
Dustin Hildebrandt 💻 |
Bruno Guerreiro 🌍 |
+ Alexander Neuhäuser 🌍 |
+ Livio 🎨 |
+
+
+ tangentThought 💻 |
+ Nicolás Espinoza 💻 |
diff --git a/docs/extending-overseerr/reverse-proxy.md b/docs/extending-overseerr/reverse-proxy.md
index 970adb166..1ebb4b469 100644
--- a/docs/extending-overseerr/reverse-proxy.md
+++ b/docs/extending-overseerr/reverse-proxy.md
@@ -145,7 +145,8 @@ location ^~ /overseerr {
sub_filter '/android-' '/$app/android-';
sub_filter '/apple-' '/$app/apple-';
sub_filter '/favicon' '/$app/favicon';
- sub_filter '/logo.png' '/$app/logo.png';
+ sub_filter '/logo_full.svg' '/$app/logo_full.svg';
+ sub_filter '/logo_stacked.svg' '/$app/logo_stacked.svg';
sub_filter '/site.webmanifest' '/$app/site.webmanifest';
}
```
diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md
index 2f4a6354b..205aa99f7 100644
--- a/docs/getting-started/installation.md
+++ b/docs/getting-started/installation.md
@@ -16,7 +16,7 @@ After running Overseerr for the first time, configure it by visiting the web UI
```bash
docker run -d \
--name overseerr \
- -e LOG_LEVEL=info \
+ -e LOG_LEVEL=debug \
-e TZ=Asia/Tokyo \
-p 5055:5055 \
-v /path/to/appdata/config:/app/config \
@@ -39,7 +39,7 @@ services:
image: sctx/overseerr:latest
container_name: overseerr
environment:
- - LOG_LEVEL=info
+ - LOG_LEVEL=debug
- TZ=Asia/Tokyo
ports:
- 5055:5055
@@ -56,7 +56,7 @@ services:
docker run -d \
--name overseerr \
--user=[ user | user:group | uid | uid:gid | user:gid | uid:group ] \
- -e LOG_LEVEL=info \
+ -e LOG_LEVEL=debug \
-e TZ=Asia/Tokyo \
-p 5055:5055 \
-v /path/to/appdata/config:/app/config \
@@ -99,20 +99,41 @@ Use a 3rd party updating mechanism such as [Watchtower](https://github.com/conta
## Windows
-Please refer to the [Docker Desktop for Windows user manual](https://docs.docker.com/docker-for-windows/) for details on how to install Docker on Windows.
+Please refer to the [Docker Desktop for Windows user manual](https://docs.docker.com/docker-for-windows/) for details on how to install Docker on Windows. There is no need to install a Linux distro if using named volumes like in the example below.
{% hint style="danger" %}
-**WSL2 will need to be installed to prevent DB corruption!** Please see the [Docker Desktop WSL 2 backend documentation](https://docs.docker.com/docker-for-windows/wsl/) for instructions on how to enable WSL2. The command below will only work with WSL2 installed!
+**WSL2 will need to be installed to prevent DB corruption!** Please see the [Docker Desktop WSL 2 backend documentation](https://docs.docker.com/docker-for-windows/wsl/) for instructions on how to enable WSL2. The commands below will only work with WSL2 installed!
{% endhint %}
+First, create a volume to store the configuration data for Overseerr using using either the Docker CLI:
+
+```bash
+docker volume create overseerr-data
+```
+
+or the Docker Desktop app:
+
+1. Open the Docker Desktop app
+2. Head to the Volumes tab
+3. Click on the "New Volume" button near the top right
+4. Enter a name for the volume (example: `overseerr-data`) and hit "Create"
+
+Then, create and start the Overseerr container:
+
```bash
-docker run -d -e LOG_LEVEL=info -e TZ=Asia/Tokyo -p 5055:5055 -v "/your/path/here:/app/config" --restart unless-stopped sctx/overseerr
+docker run -d -e LOG_LEVEL=debug -e TZ=Asia/Tokyo -p 5055:5055 -v "overseerr-data:/app/config" --restart unless-stopped sctx/overseerr
```
+If using a named volume like above, you can safely ignore the warning about the `/app/config` folder being incorrectly mounted on the setup page.
+
+To access the files inside the volume created above, navigate to `\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\overseerr-data\_data` using File Explorer.
+
{% hint style="info" %}
Docker on Windows works differently than it does on Linux; it runs Docker inside of a stripped-down Linux VM. Volume mounts are exposed to Docker inside this VM via SMB mounts. While this is fine for media, it is unacceptable for the `/app/config` directory because SMB does not support file locking. This will eventually corrupt your database, which can lead to slow behavior and crashes.
**If you must run Docker on Windows, you should put the `/app/config` directory mount inside the VM and not on the Windows host.** (This also applies to other containers with SQLite databases.)
+
+Named volumes, like in the example commands above, are automatically mounted inside the VM.
{% endhint %}
## Linux
diff --git a/docs/support/need-help.md b/docs/support/need-help.md
index ff2a9eb4b..8e2cc8567 100644
--- a/docs/support/need-help.md
+++ b/docs/support/need-help.md
@@ -35,6 +35,6 @@ Try to answer the following questions:
## How can I share my logs?
-1. Locate the current log file at `/logs/overseerr.log`.
+1. Locate the current log file at `/logs/overseerr.log`.
2. Open the log file and **copy its contents** into a [**secret gist** on GitHub](https://gist.github.com/). If you upload your logs elsewhere, we may ask you to share them again via GitHub Gist.
3. **Share the link/URL to your secret gist** in the [`#support` channel in our Discord server](https://discord.gg/overseerr).
diff --git a/docs/using-overseerr/notifications/email.md b/docs/using-overseerr/notifications/email.md
index 75a51d947..89dfbab4d 100644
--- a/docs/using-overseerr/notifications/email.md
+++ b/docs/using-overseerr/notifications/email.md
@@ -24,11 +24,11 @@ Set this to the hostname or IP address of your SMTP host/server.
Set this to a supported port number for your SMTP host. `465` and `587` are commonly used.
-### Enable SSL (optional)
+### Encryption Method
-This setting should only be enabled for ports that use [implicit SSL/TLS](https://tools.ietf.org/html/rfc8314) (e.g., port `465` in most cases).
+In most cases, [Use Implicit TLS](https://tools.ietf.org/html/rfc8314) should be selected for port 465, and [Use STARTTLS if available](https://en.wikipedia.org/wiki/Opportunistic_TLS) for port 587. Please refer to your email provider's documentations for details on how to configure this setting.
-For servers that support [opportunistic TLS/STARTTLS](https://en.wikipedia.org/wiki/Opportunistic_TLS) (typically via port `587`), this setting should **not** be enabled.
+The default value for this setting is **Use STARTTLS if available**.
### SMTP Username & Password
diff --git a/next-env.d.ts b/next-env.d.ts
index 7b7aa2c77..c6643fda1 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -1,2 +1,3 @@
///
///
+///
diff --git a/next.config.js b/next.config.js
index a48ae97e5..f0a623d4e 100644
--- a/next.config.js
+++ b/next.config.js
@@ -5,9 +5,6 @@ module.exports = {
images: {
domains: ['image.tmdb.org'],
},
- future: {
- webpack5: true,
- },
webpack(config) {
config.module.rules.push({
test: /\.svg$/,
diff --git a/overseerr-api.yml b/overseerr-api.yml
index 463d8ad1d..0a1ef5be3 100644
--- a/overseerr-api.yml
+++ b/overseerr-api.yml
@@ -52,9 +52,15 @@ components:
email:
type: string
example: 'hey@itsme.com'
+ readOnly: true
+ username:
+ type: string
plexToken:
type: string
readOnly: true
+ plexUsername:
+ type: string
+ readOnly: true
userType:
type: integer
example: 1
@@ -77,13 +83,6 @@ components:
type: number
example: 5
readOnly: true
- requests:
- type: array
- readOnly: true
- items:
- $ref: '#/components/schemas/MediaRequest'
- settings:
- $ref: '#/components/schemas/UserSettings'
required:
- id
- email
@@ -92,11 +91,11 @@ components:
UserSettings:
type: object
properties:
- discordId:
+ locale:
type: string
region:
type: string
- language:
+ originalLanguage:
type: string
MainSettings:
type: object
@@ -398,7 +397,6 @@ components:
activeLanguageProfileId:
type: number
example: 1
- nullable: true
activeAnimeProfileId:
type: number
nullable: true
@@ -408,6 +406,7 @@ components:
activeAnimeProfileName:
type: string
example: 720p/1080p
+ nullable: true
activeAnimeDirectory:
type: string
nullable: true
@@ -769,6 +768,10 @@ components:
$ref: '#/components/schemas/ExternalIds'
mediaInfo:
$ref: '#/components/schemas/MediaInfo'
+ watchProviders:
+ type: array
+ items:
+ $ref: '#/components/schemas/WatchProviders'
Episode:
type: object
properties:
@@ -943,6 +946,10 @@ components:
$ref: '#/components/schemas/Keyword'
mediaInfo:
$ref: '#/components/schemas/MediaInfo'
+ watchProviders:
+ type: array
+ items:
+ $ref: '#/components/schemas/WatchProviders'
MediaRequest:
type: object
properties:
@@ -953,7 +960,7 @@ components:
status:
type: number
example: 0
- description: Status of the request. 1 = PENDING APPROVAL, 2 = APPROVED, 3 = DECLINED, 4 = AVAILABLE
+ description: Status of the request. 1 = PENDING APPROVAL, 2 = APPROVED, 3 = DECLINED
readOnly: true
media:
$ref: '#/components/schemas/MediaInfo'
@@ -1587,9 +1594,8 @@ components:
UserSettingsNotifications:
type: object
properties:
- notificationAgents:
- type: number
- example: 0
+ notificationTypes:
+ $ref: '#/components/schemas/NotificationAgentTypes'
emailEnabled:
type: boolean
pgpKey:
@@ -1614,6 +1620,52 @@ components:
telegramSendSilently:
type: boolean
nullable: true
+ NotificationAgentTypes:
+ type: object
+ properties:
+ discord:
+ type: number
+ email:
+ type: number
+ pushbullet:
+ type: number
+ pushover:
+ type: number
+ slack:
+ type: number
+ telegram:
+ type: number
+ webhook:
+ type: number
+ webpush:
+ type: number
+ WatchProviders:
+ type: array
+ items:
+ type: object
+ properties:
+ iso_3166_1:
+ type: string
+ link:
+ type: string
+ buy:
+ type: array
+ items:
+ $ref: '#/components/schemas/WatchProviderDetails'
+ flatrate:
+ items:
+ $ref: '#/components/schemas/WatchProviderDetails'
+ WatchProviderDetails:
+ type: object
+ properties:
+ displayPriority:
+ type: number
+ logoPath:
+ type: string
+ id:
+ type: number
+ name:
+ type: string
securitySchemes:
cookieAuth:
type: apiKey
@@ -1842,8 +1894,8 @@ paths:
$ref: '#/components/schemas/PlexLibrary'
/settings/plex/devices/servers:
get:
- summary: Gets the user's available plex servers
- description: Returns a list of available plex servers and their connectivity state
+ summary: Gets the user's available Plex servers
+ description: Returns a list of available Plex servers and their connectivity state
tags:
- settings
responses:
@@ -2980,7 +3032,15 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/User'
+ type: object
+ properties:
+ email:
+ type: string
+ example: 'hey@itsme.com'
+ username:
+ type: string
+ permissions:
+ type: number
responses:
'201':
description: The created user
@@ -2991,7 +3051,7 @@ paths:
put:
summary: Update batch of users
description: |
- Update users with given IDs with provided values in request `body.settings`. You cannot update users' plex tokens through this request.
+ Update users with given IDs with provided values in request `body.settings`. You cannot update users' Plex tokens through this request.
Requires the `MANAGE_USERS` permission.
tags:
@@ -3018,7 +3078,6 @@ paths:
type: array
items:
$ref: '#/components/schemas/User'
-
/user/import-from-plex:
post:
summary: Import all users from Plex
@@ -3067,7 +3126,7 @@ paths:
get:
summary: Get user by ID
description: |
- Retrieves user details in a JSON object.. Requires the `MANAGE_USERS` permission.
+ Retrieves user details in a JSON object. Requires the `MANAGE_USERS` permission.
tags:
- users
parameters:
@@ -4180,6 +4239,9 @@ paths:
type: string
languageProfileId:
type: number
+ userId:
+ type: number
+ nullable: true
required:
- mediaType
- mediaId
diff --git a/package.json b/package.json
index fd9709f6b..508623efe 100644
--- a/package.json
+++ b/package.json
@@ -17,11 +17,11 @@
},
"license": "MIT",
"dependencies": {
- "@headlessui/react": "^1.2.0",
+ "@headlessui/react": "^1.3.0",
"@heroicons/react": "^1.0.1",
"@supercharge/request-ip": "^1.1.2",
"@svgr/webpack": "^5.5.0",
- "@tanem/react-nprogress": "^3.0.67",
+ "@tanem/react-nprogress": "^3.0.70",
"ace-builds": "^1.4.12",
"axios": "^0.21.1",
"bcrypt": "^5.0.1",
@@ -33,18 +33,18 @@
"csurf": "^1.11.0",
"email-templates": "^8.0.7",
"express": "^4.17.1",
- "express-openapi-validator": "^4.12.11",
+ "express-openapi-validator": "^4.12.14",
"express-rate-limit": "^5.2.6",
"express-session": "^1.17.2",
"formik": "^2.2.9",
"gravatar-url": "3.1.0",
"intl": "^1.2.5",
"lodash": "^4.17.21",
- "next": "10.1.3",
+ "next": "11.0.1",
"node-cache": "^5.1.2",
"node-schedule": "^2.0.0",
- "nodemailer": "^6.6.1",
- "openpgp": "^5.0.0-2",
+ "nodemailer": "^6.6.2",
+ "openpgp": "^5.0.0-3",
"plex-api": "^5.3.1",
"pug": "^3.0.2",
"react": "17.0.2",
@@ -52,7 +52,7 @@
"react-animate-height": "^2.0.23",
"react-dom": "17.0.2",
"react-intersection-observer": "^8.32.0",
- "react-intl": "5.19.0",
+ "react-intl": "5.20.3",
"react-markdown": "^6.0.2",
"react-select": "^4.3.1",
"react-spring": "^9.2.3",
@@ -61,12 +61,11 @@
"react-truncate-markup": "^5.1.0",
"react-use-clipboard": "1.0.7",
"reflect-metadata": "^0.1.13",
- "secure-random-password": "^0.2.2",
+ "secure-random-password": "^0.2.3",
"sqlite3": "^5.0.2",
"swagger-ui-express": "^4.1.6",
"swr": "^0.5.6",
"typeorm": "0.2.32",
- "uuid": "^8.3.2",
"web-push": "^3.4.4",
"winston": "^3.3.3",
"winston-daily-rotate-file": "^4.5.5",
@@ -75,7 +74,7 @@
"yup": "^0.32.9"
},
"devDependencies": {
- "@babel/cli": "^7.14.3",
+ "@babel/cli": "^7.14.5",
"@commitlint/cli": "^12.1.4",
"@commitlint/config-conventional": "^12.1.4",
"@semantic-release/changelog": "^5.0.1",
@@ -91,35 +90,35 @@
"@types/csurf": "^1.11.1",
"@types/email-templates": "^8.0.3",
"@types/express": "^4.17.12",
- "@types/express-rate-limit": "^5.1.1",
+ "@types/express-rate-limit": "^5.1.2",
"@types/express-session": "^1.17.3",
"@types/lodash": "^4.14.170",
"@types/node": "^15.6.1",
"@types/node-schedule": "^1.3.1",
"@types/nodemailer": "^6.4.2",
- "@types/react": "^17.0.9",
- "@types/react-dom": "^17.0.6",
+ "@types/react": "^17.0.11",
+ "@types/react-dom": "^17.0.8",
"@types/react-select": "^4.0.15",
"@types/react-toast-notifications": "^2.4.1",
"@types/react-transition-group": "^4.4.1",
"@types/secure-random-password": "^0.2.0",
"@types/swagger-ui-express": "^4.1.2",
- "@types/uuid": "^8.3.0",
- "@types/web-push": "^3.3.0",
+ "@types/web-push": "^3.3.1",
"@types/xml2js": "^0.4.8",
"@types/yamljs": "^0.2.31",
"@types/yup": "^0.29.11",
- "@typescript-eslint/eslint-plugin": "^4.26.0",
- "@typescript-eslint/parser": "^4.26.0",
+ "@typescript-eslint/eslint-plugin": "^4.28.0",
+ "@typescript-eslint/parser": "^4.28.0",
"autoprefixer": "^10.2.6",
"babel-plugin-react-intl": "^8.2.25",
"babel-plugin-react-intl-auto": "^3.3.0",
"commitizen": "^4.2.4",
"copyfiles": "^2.4.1",
"cz-conventional-changelog": "^3.3.0",
- "eslint": "^7.27.0",
+ "eslint": "^7.29.0",
+ "eslint-config-next": "^11.0.1",
"eslint-config-prettier": "^8.3.0",
- "eslint-plugin-formatjs": "^2.15.5",
+ "eslint-plugin-formatjs": "^2.16.1",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-react": "^7.24.0",
@@ -128,13 +127,13 @@
"husky": "4.3.8",
"lint-staged": "^11.0.0",
"nodemon": "^2.0.7",
- "postcss": "^8.3.0",
+ "postcss": "^8.3.5",
"prettier": "^2.3.1",
- "semantic-release": "^17.4.3",
+ "semantic-release": "^17.4.4",
"semantic-release-docker-buildx": "^1.0.1",
- "tailwindcss": "^2.1.4",
- "ts-node": "^9.1.1",
- "typescript": "^4.3.2"
+ "tailwindcss": "^2.2.2",
+ "ts-node": "^10.0.0",
+ "typescript": "^4.3.4"
},
"resolutions": {
"sqlite3/node-gyp": "^5.1.0"
diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png
index f246f9fa2..d14b10cbb 100644
Binary files a/public/android-chrome-192x192.png and b/public/android-chrome-192x192.png differ
diff --git a/public/android-chrome-192x192_maskable.png b/public/android-chrome-192x192_maskable.png
index ecdd73670..2a6f70820 100644
Binary files a/public/android-chrome-192x192_maskable.png and b/public/android-chrome-192x192_maskable.png differ
diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png
index 4910ced2d..9dfde238b 100644
Binary files a/public/android-chrome-512x512.png and b/public/android-chrome-512x512.png differ
diff --git a/public/android-chrome-512x512_maskable.png b/public/android-chrome-512x512_maskable.png
index 475cf85e9..7313c4e4a 100644
Binary files a/public/android-chrome-512x512_maskable.png and b/public/android-chrome-512x512_maskable.png differ
diff --git a/public/apple-splash-1125-2436.jpg b/public/apple-splash-1125-2436.jpg
index 92d5e50f1..775572220 100644
Binary files a/public/apple-splash-1125-2436.jpg and b/public/apple-splash-1125-2436.jpg differ
diff --git a/public/apple-splash-1136-640.jpg b/public/apple-splash-1136-640.jpg
index c78884e4f..008490825 100644
Binary files a/public/apple-splash-1136-640.jpg and b/public/apple-splash-1136-640.jpg differ
diff --git a/public/apple-splash-1170-2532.jpg b/public/apple-splash-1170-2532.jpg
index a75e5e099..bef6cb45e 100644
Binary files a/public/apple-splash-1170-2532.jpg and b/public/apple-splash-1170-2532.jpg differ
diff --git a/public/apple-splash-1242-2208.jpg b/public/apple-splash-1242-2208.jpg
index 8fa857218..15cf9c5be 100644
Binary files a/public/apple-splash-1242-2208.jpg and b/public/apple-splash-1242-2208.jpg differ
diff --git a/public/apple-splash-1242-2688.jpg b/public/apple-splash-1242-2688.jpg
index 27b300240..0b822f692 100644
Binary files a/public/apple-splash-1242-2688.jpg and b/public/apple-splash-1242-2688.jpg differ
diff --git a/public/apple-splash-1284-2778.jpg b/public/apple-splash-1284-2778.jpg
index 6c2f69938..41d3f3827 100644
Binary files a/public/apple-splash-1284-2778.jpg and b/public/apple-splash-1284-2778.jpg differ
diff --git a/public/apple-splash-1334-750.jpg b/public/apple-splash-1334-750.jpg
index a0637f83f..29b88104b 100644
Binary files a/public/apple-splash-1334-750.jpg and b/public/apple-splash-1334-750.jpg differ
diff --git a/public/apple-splash-1536-2048.jpg b/public/apple-splash-1536-2048.jpg
index 151a7a8e0..04e839bc9 100644
Binary files a/public/apple-splash-1536-2048.jpg and b/public/apple-splash-1536-2048.jpg differ
diff --git a/public/apple-splash-1620-2160.jpg b/public/apple-splash-1620-2160.jpg
index 39f2beec9..31fb906fe 100644
Binary files a/public/apple-splash-1620-2160.jpg and b/public/apple-splash-1620-2160.jpg differ
diff --git a/public/apple-splash-1668-2224.jpg b/public/apple-splash-1668-2224.jpg
index 1a2276dad..c7eae485f 100644
Binary files a/public/apple-splash-1668-2224.jpg and b/public/apple-splash-1668-2224.jpg differ
diff --git a/public/apple-splash-1668-2388.jpg b/public/apple-splash-1668-2388.jpg
index 6d9363186..be83d63cb 100644
Binary files a/public/apple-splash-1668-2388.jpg and b/public/apple-splash-1668-2388.jpg differ
diff --git a/public/apple-splash-1792-828.jpg b/public/apple-splash-1792-828.jpg
index 82a1414f9..fdd950f3e 100644
Binary files a/public/apple-splash-1792-828.jpg and b/public/apple-splash-1792-828.jpg differ
diff --git a/public/apple-splash-2048-1536.jpg b/public/apple-splash-2048-1536.jpg
index f6d31f0ab..a35fcadd6 100644
Binary files a/public/apple-splash-2048-1536.jpg and b/public/apple-splash-2048-1536.jpg differ
diff --git a/public/apple-splash-2048-2732.jpg b/public/apple-splash-2048-2732.jpg
index 35205f1f5..51ba30752 100644
Binary files a/public/apple-splash-2048-2732.jpg and b/public/apple-splash-2048-2732.jpg differ
diff --git a/public/apple-splash-2160-1620.jpg b/public/apple-splash-2160-1620.jpg
index 3d42ae044..f7bc1a1b4 100644
Binary files a/public/apple-splash-2160-1620.jpg and b/public/apple-splash-2160-1620.jpg differ
diff --git a/public/apple-splash-2208-1242.jpg b/public/apple-splash-2208-1242.jpg
index 445024774..5485fa8f0 100644
Binary files a/public/apple-splash-2208-1242.jpg and b/public/apple-splash-2208-1242.jpg differ
diff --git a/public/apple-splash-2224-1668.jpg b/public/apple-splash-2224-1668.jpg
index 46549038f..0ccadef6e 100644
Binary files a/public/apple-splash-2224-1668.jpg and b/public/apple-splash-2224-1668.jpg differ
diff --git a/public/apple-splash-2388-1668.jpg b/public/apple-splash-2388-1668.jpg
index e08eb7c4f..f9d3c2d12 100644
Binary files a/public/apple-splash-2388-1668.jpg and b/public/apple-splash-2388-1668.jpg differ
diff --git a/public/apple-splash-2436-1125.jpg b/public/apple-splash-2436-1125.jpg
index 64cb66a3b..ee7916dba 100644
Binary files a/public/apple-splash-2436-1125.jpg and b/public/apple-splash-2436-1125.jpg differ
diff --git a/public/apple-splash-2532-1170.jpg b/public/apple-splash-2532-1170.jpg
index f732a3edf..896f739ee 100644
Binary files a/public/apple-splash-2532-1170.jpg and b/public/apple-splash-2532-1170.jpg differ
diff --git a/public/apple-splash-2688-1242.jpg b/public/apple-splash-2688-1242.jpg
index 878895005..0b5672183 100644
Binary files a/public/apple-splash-2688-1242.jpg and b/public/apple-splash-2688-1242.jpg differ
diff --git a/public/apple-splash-2732-2048.jpg b/public/apple-splash-2732-2048.jpg
index 8d4328280..b6dac3e70 100644
Binary files a/public/apple-splash-2732-2048.jpg and b/public/apple-splash-2732-2048.jpg differ
diff --git a/public/apple-splash-2778-1284.jpg b/public/apple-splash-2778-1284.jpg
index a5a74684d..25fdea363 100644
Binary files a/public/apple-splash-2778-1284.jpg and b/public/apple-splash-2778-1284.jpg differ
diff --git a/public/apple-splash-640-1136.jpg b/public/apple-splash-640-1136.jpg
index 9a64bba68..36b8d0b9a 100644
Binary files a/public/apple-splash-640-1136.jpg and b/public/apple-splash-640-1136.jpg differ
diff --git a/public/apple-splash-750-1334.jpg b/public/apple-splash-750-1334.jpg
index a69426295..0bab31b6f 100644
Binary files a/public/apple-splash-750-1334.jpg and b/public/apple-splash-750-1334.jpg differ
diff --git a/public/apple-splash-828-1792.jpg b/public/apple-splash-828-1792.jpg
index 95f97c08e..bf48283bf 100644
Binary files a/public/apple-splash-828-1792.jpg and b/public/apple-splash-828-1792.jpg differ
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
index 34c700e21..e3789e05d 100644
Binary files a/public/apple-touch-icon.png and b/public/apple-touch-icon.png differ
diff --git a/public/badge-128x128.png b/public/badge-128x128.png
index 0ef0e6a02..9f94a6377 100644
Binary files a/public/badge-128x128.png and b/public/badge-128x128.png differ
diff --git a/public/clock-icon-192x192.png b/public/clock-icon-192x192.png
index d7e57dd0a..a671e35c8 100644
Binary files a/public/clock-icon-192x192.png and b/public/clock-icon-192x192.png differ
diff --git a/public/cog-icon-192x192.png b/public/cog-icon-192x192.png
index 99d114059..a40a6a9de 100644
Binary files a/public/cog-icon-192x192.png and b/public/cog-icon-192x192.png differ
diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png
index b632b9f19..4f85c3063 100644
Binary files a/public/favicon-16x16.png and b/public/favicon-16x16.png differ
diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png
index 8cd58e542..f6e68a092 100644
Binary files a/public/favicon-32x32.png and b/public/favicon-32x32.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
index 7346f636d..c15cf8bf2 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/images/overseerr_poster_not_found.png b/public/images/overseerr_poster_not_found.png
index 2f5bc203d..e2bae10fd 100644
Binary files a/public/images/overseerr_poster_not_found.png and b/public/images/overseerr_poster_not_found.png differ
diff --git a/public/images/overseerr_poster_not_found_logo_center.png b/public/images/overseerr_poster_not_found_logo_center.png
index 2ecd84b0f..1a1e5752d 100644
Binary files a/public/images/overseerr_poster_not_found_logo_center.png and b/public/images/overseerr_poster_not_found_logo_center.png differ
diff --git a/public/images/overseerr_poster_not_found_logo_top.png b/public/images/overseerr_poster_not_found_logo_top.png
index a74b096e1..6e58dfdab 100644
Binary files a/public/images/overseerr_poster_not_found_logo_top.png and b/public/images/overseerr_poster_not_found_logo_top.png differ
diff --git a/public/logo.png b/public/logo.png
deleted file mode 100644
index 7b61ea02f..000000000
Binary files a/public/logo.png and /dev/null differ
diff --git a/public/logo_full.png b/public/logo_full.png
new file mode 100644
index 000000000..3ac4cdce1
Binary files /dev/null and b/public/logo_full.png differ
diff --git a/public/logo_full.svg b/public/logo_full.svg
new file mode 100644
index 000000000..6093c3d80
--- /dev/null
+++ b/public/logo_full.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/logo_stacked.svg b/public/logo_stacked.svg
new file mode 100644
index 000000000..946e79011
--- /dev/null
+++ b/public/logo_stacked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/offline.html b/public/offline.html
index 01658360f..12c6c29f5 100644
--- a/public/offline.html
+++ b/public/offline.html
@@ -31,7 +31,7 @@
You are offline
-
+