Compare commits

..

4 Commits

Author SHA1 Message Date
Ryan Cohen
a9fa09f258 Update CNAME 2025-10-07 10:36:08 -06:00
Victor Lee
61c5b41027 docs: update docker volume location in windows (#1326)
* docs: update docker volume location in windows

in newer versions of docker, the location of Docker volumes has now changed. See: https://stackoverflow.com/a/64418064

* add paths for older versions of Docker

* add newlines

Co-authored-by: Gauthier <mail@gauthierth.fr>

---------

Co-authored-by: Gauthier <mail@gauthierth.fr>
2025-02-04 11:02:28 +08:00
Fallenbagel
274b0646ec Create CNAME 2024-06-30 04:36:22 +05:00
Fallenbagel
9d1e51a5dd Create CNAME 2024-06-30 04:33:58 +05:00
18 changed files with 108 additions and 97 deletions

View File

@@ -4,8 +4,8 @@
#### To-Dos
- [ ] Successful build `pnpm build`
- [ ] Translation keys `pnpm i18n:extract`
- [ ] Successful build `yarn build`
- [ ] Translation keys `yarn i18n:extract`
- [ ] Database migration (if required)
#### Issues Fixed or Closed

View File

@@ -58,7 +58,6 @@ jobs:
deploy:
name: Deploy to GitHub Pages
needs: build
concurrency: build-deploy-pages
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:

1
CNAME Normal file
View File

@@ -0,0 +1 @@
docs.jellyseerr.dev

View File

@@ -7,9 +7,9 @@ All help is welcome and greatly appreciated! If you would like to contribute to
### Tools Required
- 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 20.x)
- [Pnpm](https://pnpm.io/cli/install)
- [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
@@ -18,7 +18,7 @@ All help is welcome and greatly appreciated! If you would like to contribute to
```bash
git clone https://github.com/YOUR_USERNAME/jellyseerr.git
cd jellyseerr/
cd overseerr/
```
2. Add the remote `upstream`:
@@ -48,8 +48,8 @@ All help is welcome and greatly appreciated! If you would like to contribute to
4. Run the development environment:
```bash
pnpm
pnpm dev
yarn
yarn dev
```
- 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.
@@ -93,7 +93,7 @@ When adding new UI text, please try to adhere to the following guidelines:
8. If an additional description or "tip" is required for a form field, it should be styled using the global CSS class `label-tip`.
9. In full sentences, abbreviations like "info" or "auto" should not be used in place of full words, unless referencing the name/label of a specific setting or option which has an abbreviation in its name.
10. Do your best to check for spelling errors and grammatical mistakes.
11. Do not misspell "Jellyseerr."
11. Do not misspell "Overseerr."
## Translation
@@ -103,4 +103,4 @@ We use [Weblate](https://jellyseerr.borgcube.de/projects/jellyseerr/jellyseerr-f
## Attribution
This contribution guide was inspired by the [Next.js](https://github.com/vercel/next.js), [Radarr](https://github.com/Radarr/Radarr), and [Overseerr](https://github.com/sct/Overseerr) contribution guides.
This contribution guide was inspired by the [Next.js](https://github.com/vercel/next.js) and [Radarr](https://github.com/Radarr/Radarr) contribution guides.

View File

@@ -37,7 +37,6 @@ With more features on the way! Check out our [issue tracker](https://github.com/
## Getting Started
Check out our documentation for instructions on how to install and run Jellyseerr:
https://docs.jellyseerr.dev/getting-started/
### Packages:

1
docs/CNAME Normal file
View File

@@ -0,0 +1 @@
docs.seerr.dev

View File

@@ -17,7 +17,7 @@ A Nginx subfolder workaround configuration is provided below, but it is not offi
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs groupId="nginx-reverse-proxy" queryString>
<Tabs groupId="nginx-reverse-proxy">
<TabItem value="subdomain" label="Subdomain">
Add the following configuration to a new file `/etc/nginx/sites-available/jellyseerr.example.com.conf`:
@@ -63,9 +63,9 @@ sudo ln -s /etc/nginx/sites-available/jellyseerr.example.com.conf /etc/nginx/sit
<TabItem value="subfolder" label="Subfolder">
:::warning
This Nginx subfolder reverse proxy is an unsupported workaround, and only provided as an example. The filters may stop working when Jellyseerr is updated.
This Nginx subfolder reverse proxy is an unsupported workaround, and only provided as an example. The filters may stop working when Overseerr is updated.
If you encounter any issues with Jellyseerr while using this workaround, we may ask you to try to reproduce the problem without the Nginx proxy.
If you encounter any issues with Overseerr while using this workaround, we may ask you to try to reproduce the problem without the Nginx proxy.
:::
Add the following location block to your existing `nginx.conf` file.
@@ -146,9 +146,9 @@ Add a new proxy host with the following settings:
### Details
- **Domain Names:** Your desired external Jellyseerr hostname; e.g., `jellyseerr.example.com`
- **Domain Names:** Your desired external Overseerr hostname; e.g., `overseerr.example.com`
- **Scheme:** `http`
- **Forward Hostname / IP:** Internal Jellyseerr hostname or IP
- **Forward Hostname / IP:** Internal Overseerr hostname or IP
- **Forward Port:** `5055`
- **Cache Assets:** yes
- **Block Common Exploits:** yes
@@ -190,18 +190,18 @@ Caddy will automatically obtain and renew SSL certificates for your domain.
## Traefik (v2)
Add the following labels to the Jellyseerr service in your `docker-compose.yml` file:
Add the following labels to the Overseerr service in your `docker-compose.yml` file:
```yaml
labels:
- 'traefik.enable=true'
## HTTP Routers
- 'traefik.http.routers.jellyseerr-rtr.entrypoints=https'
- 'traefik.http.routers.jellyseerr-rtr.rule=Host(`jellyseerr.domain.com`)'
- 'traefik.http.routers.jellyseerr-rtr.tls=true'
- 'traefik.http.routers.overseerr-rtr.entrypoints=https'
- 'traefik.http.routers.overseerr-rtr.rule=Host(`overseerr.domain.com`)'
- 'traefik.http.routers.overseerr-rtr.tls=true'
## HTTP Services
- 'traefik.http.routers.jellyseerr-rtr.service=jellyseerr-svc'
- 'traefik.http.services.jellyseerr-svc.loadbalancer.server.port=5055'
- 'traefik.http.routers.overseerr-rtr.service=overseerr-svc'
- 'traefik.http.services.overseerr-svc.loadbalancer.server.port=5055'
```
For more information, please refer to the [Traefik documentation](https://doc.traefik.io/traefik/user-guides/docker-compose/basic-example/).

View File

@@ -17,7 +17,7 @@ To install Jellyseerr from the AUR, you can use an AUR helper like `yay` or `par
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs groupId="aur-methods" queryString>
<Tabs groupId="aur-methods">
<TabItem value="yay" label="yay">
```bash
yay -S jellyseerr

View File

@@ -12,7 +12,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
### Prerequisites
<Tabs groupId="versions" queryString>
<Tabs groupId="versions">
<TabItem value="latest" label="Latest">
- [Node.js 18.x](https://nodejs.org/en/download/)
- [Yarn 1.x](https://classic.yarnpkg.com/lang/en/docs/install)
@@ -29,7 +29,7 @@ import TabItem from '@theme/TabItem';
## Unix (Linux, macOS)
### Installation
<Tabs groupId="versions" queryString>
<Tabs groupId="versions">
<TabItem value="latest" label="latest">
1. Assuming you want the working directory to be `/opt/jellyseerr`, create the directory and navigate to it:
```bash
@@ -85,7 +85,7 @@ You can now access Jellyseerr by visiting `http://localhost:5055` in your web br
:::
#### Extending the installation
<Tabs groupId="unix-extensions" queryString>
<Tabs groupId="unix-extensions">
<TabItem value="linux" label="Linux">
To run jellyseerr as a systemd service:
1. create the environment file at `/etc/jellyseerr/jellyseerr.conf`:
@@ -231,7 +231,7 @@ pm2 status jellyseerr
## Windows
### Installation
<Tabs groupId="versions" queryString>
<Tabs groupId="versions">
<TabItem value="latest" label="latest">
1. Assuming you want the working directory to be `C:\jellyseerr`, create the directory and navigate to it:
```powershell
@@ -291,7 +291,7 @@ You can now access Jellyseerr by visiting `http://localhost:5055` in your web br
:::
#### Extending the installation
<Tabs groupId="windows-extensions" queryString>
<Tabs groupId="windows-extensions">
<TabItem value="task-scheduler" label="Task Scheduler">
To run jellyseerr as a bat script:
1. Create a file named `start-jellyseerr.bat` in the jellyseerr directory:

View File

@@ -20,7 +20,7 @@ Be sure to replace `/path/to/appdata/config` in the below examples with a valid
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs groupId="docker-methods" queryString>
<Tabs groupId="docker-methods">
<TabItem value="docker-cli" label="Docker CLI">
For details on the Docker CLI, please [review the official `docker run` documentation](https://docs.docker.com/engine/reference/run/).
@@ -37,11 +37,6 @@ docker run -d \
--restart unless-stopped \
fallenbagel/jellyseerr
```
:::tip
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
`-e JELLYFIN_TYPE=emby`
:::
To run the container as a specific user/group, you may optionally add `--user=[ user | user:group | uid | uid:gid | user:gid | uid:group ]` to the above command.
@@ -88,10 +83,6 @@ services:
- /path/to/appdata/config:/app/config
restart: unless-stopped
```
:::tip
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
:::
Then, start all services defined in the Compose file:
```bash
docker-compose up -d
@@ -106,6 +97,7 @@ Then, restart all services defined in the Compose file:
```bash
docker-compose up -d
```
:::tip
You may alternatively use a third-party mechanism like [dockge](https://github.com/louislam/dockge) to manage your docker compose files.
:::
@@ -141,7 +133,7 @@ or the Docker Desktop app:
4. Enter a name for the volume (example: `jellyseerr-data`) and hit "Create"
Then, create and start the Jellyseerr container:
<Tabs groupId="docker-methods" queryString>
<Tabs groupId="docker-methods">
<TabItem value="docker-cli" label="Docker CLI">
```bash
docker run -d --name jellyseerr -e LOG_LEVEL=debug -e TZ=Asia/Tashkent -p 5055:5055 -v "jellyseerr-data:/app/config" --restart unless-stopped fallenbagel/jellyseerr:latest
@@ -169,15 +161,32 @@ volumes:
external: true
```
</TabItem>
<TabItem value="docker-desktop" label="Docker Desktop">
1. Open the Docker Desktop app
2. Head to the Containers/Apps tab
3. Click on the "Add Container/App" button near the top right
4. Fill in the container details:
- **Name**: `jellyseerr`
- **Image**: `fallenbagel/jellyseerr:latest`
- **Port**: `5055:5055`
- **Volume**: `jellyseerr-data:/app/config`
- **Environment Variables**:
- **LOG_LEVEL**: `debug`
- **TZ**: `Asia/Tashkent`
- **Restart Policy**: `unless-stopped`
5. Click on the "Run" button
</TabItem>
</Tabs>
:::tip
If you are using a named volume, then you can safely **ignore** the warning about the `/app/config` folder being incorrectly mounted.
To access the files inside the volume created above, navigate to the following folder using File Explorer:
If you are using emby, make sure to set the `JELLYFIN_TYPE` environment variable to `emby`.
:::
For Docker v26.1.4 or higher: `\\wsl$\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes\jellyseerr-data\_data`
To access the files inside the volume created above, navigate to `\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\jellyseerr-data\_data` using File Explorer.
For older versions of Docker:
`\\wsl$\docker-desktop-data\data\docker\volumes\jellyseerr-data\_data`
or
`\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\jellyseerr-data\_data`
:::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.

View File

@@ -18,13 +18,13 @@ If you aren't a huge fan of the name "Jellyseerr" and would like to display some
## Application URL
Set this to the externally-accessible URL of your Jellyseerr instance.
Set this to the externally-accessible URL of your Overseerr instance.
You must configure this setting in order to enable password reset and generation emails.
## Enable Proxy Support
If you have Jellyseerr behind a reverse proxy, enable this setting to allow Jellyseerr to correctly register client IP addresses. For details, please see the [Express Documentation](https://expressjs.com/en/guide/behind-proxies.html).
If you have Overseerr behind a reverse proxy, enable this setting to allow Overseerr to correctly register client IP addresses. For details, please see the [Express Documentation](https://expressjs.com/en/guide/behind-proxies.html).
This setting is **disabled** by default.
@@ -40,7 +40,7 @@ If you do not use Jellyseerr integrations with third-party applications to add/m
One caveat, however, is that HTTPS is required, meaning that once this setting is enabled, you will no longer be able to access your Jellyseerr instance over _HTTP_ (including using an IP address and port number).
If you enable this setting and find yourself unable to access Jellyseerr, you can disable the setting by modifying `settings.json` in `/app/config`.
If you enable this setting and find yourself unable to access Overseerr, you can disable the setting by modifying `settings.json` in `/app/config`.
This setting is **disabled** by default.

View File

@@ -9,7 +9,7 @@ sidebar_position: 3
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs groupId="media-server-type" queryString>
<Tabs groupId="media-server-type">
<TabItem value="jellyfin" label="Jellyfin">
:::info
To set up Jellyfin, make sure you log in using an account with administrative privileges.
@@ -32,7 +32,7 @@ Jellyseerr will perform a full scan of your Jellyfin libraries once every 24 hou
This section is where you configure the connection to your Jellyfin server.
<Tabs groupId="versions" queryString>
<Tabs groupId="versions">
<TabItem value="latest" label="Latest">
#### Internal URL
@@ -126,7 +126,7 @@ Jellyseerr will perform a full scan of your Emby libraries once every 24 hours (
This section is where you configure the connection to your Emby server.
<Tabs groupId="versions" queryString>
<Tabs groupId="versions">
<TabItem value="latest" label="Latest">
#### Internal URL

View File

@@ -16,7 +16,7 @@ This setting is **enabled** by default.
## Enable New Jellyfin/Emby/Plex Sign-In
When enabled, users with access to your media server will be able to sign in to Jellyseerr even if they have not yet been imported. Users will be automatically assigned the permissions configured in the [Default Permissions](#default-permissions) setting upon first sign-in.
When enabled, users with access to your media server will be able to sign in to Overseerr even if they have not yet been imported. Users will be automatically assigned the permissions configured in the [Default Permissions](#default-permissions) setting upon first sign-in.
This setting is **enabled** by default.

View File

@@ -6,14 +6,14 @@ sidebar_position: 2
# Adding Users
There are currently two methods to add users to Jellyseerr: importing Mediaserver users and creating "local users." All new users are created with the [default permissions](/using-jellyseerr/settings/users#default-permissions) defined in **Settings &rarr; Users**.
There are currently two methods to add users to Overseerr: importing Plex users and creating "local users." All new users are created with the [default permissions](/using-jellyseerr/settings/users#default-permissions) defined in **Settings &rarr; Users**.
### Importing Mediaserver Users
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<Tabs groupId="media-server-type" queryString>
<Tabs groupId="media-server-type">
<TabItem value="jellyfin" label="Jellyfin">
Clicking the **Import Jellyfin Users** button on the **User List** page will fetch the list of users with access to the Jellyfin server and add them to Jellyseerr automatically.
@@ -25,9 +25,9 @@ To disable new Jellyfin sign-ins, navigate to **Settings &rarr; Users** and unch
</TabItem>
<TabItem value="emby" label="Emby">
Clicking the **Import Emby Users** button on the **User List** page will fetch the list of users with access to the Emby server and add them to Jellyseerr automatically.
Clicking the **Import Emby Users** button on the **User List** page will fetch the list of users with access to the Emby server and add them to Overseerr automatically.
Importing Emby users is not required, however. Any user with access to the Emby server can log in to Jellyseerr even if they have not been imported, and will be assigned the configured [default permissions](/using-jellyseerr/settings/users#default-permissions) upon their first login.
Importing Emby users is not required, however. Any user with access to the Emby server can log in to Overseerr even if they have not been imported, and will be assigned the configured [default permissions](/using-jellyseerr/settings/users#default-permissions) upon their first login.
:::tip
To disable new Emby sign-ins, navigate to **Settings &rarr; Users** and uncheck the [**Enable New Emby Sign-In**](/using-jellyseerr/settings/users#enable-new-jellyfinembyplex-sign-in) box.
@@ -36,9 +36,9 @@ To disable new Emby sign-ins, navigate to **Settings &rarr; Users** and uncheck
</TabItem>
<TabItem value="plex" label="Plex">
Clicking the **Import Plex Users** button on the **User List** page will fetch the list of users with access to the Plex server from [plex.tv](https://www.plex.tv/), and add them to Jellyseerr automatically.
Clicking the **Import Plex Users** button on the **User List** page will fetch the list of users with access to the Plex server from [plex.tv](https://www.plex.tv/), and add them to Overseerr automatically.
Importing Plex users is not required, however. Any user with access to the Plex server can log in to Jellyseerr even if they have not been imported, and will be assigned the configured [default permissions](/using-jellyseerr/settings/users#default-permissions) upon their first login.
Importing Plex users is not required, however. Any user with access to the Plex server can log in to Overseerr even if they have not been imported, and will be assigned the configured [default permissions](/using-jellyseerr/settings/users#default-permissions) upon their first login.
:::tip
To disable new Plex sign-ins, navigate to **Settings &rarr; Users** and uncheck the [**Enable New Plex Sign-In**](/using-jellyseerr/settings/users#enable-new-jellyfinembyplex-sign-in) box.
@@ -49,7 +49,7 @@ To disable new Plex sign-ins, navigate to **Settings &rarr; Users** and uncheck
### Creating Local Users
If you would like to grant Jellyseerr access to a user who doesn't have their own Plex account and/or access to the Plex server, you can manually add them by clicking the **Create Local User** button.
If you would like to grant Overseerr access to a user who doesn't have their own Plex account and/or access to the Plex server, you can manually add them by clicking the **Create Local User** button.
#### Email Address
@@ -57,7 +57,7 @@ Enter a valid email address at which the user can receive messages pertaining to
#### Automatically Generate Password
If an [application URL](/using-jellyseerr/settings/general#application-url) is set and [email notifications](/using-jellyseerr/notifications/email) have been configured and enabled, Jellyseerr can automatically generate a password for the new user.
If an [application URL](/using-jellyseerr/settings/general#application-url) is set and [email notifications](/using-jellyseerr/notifications/email) have been configured and enabled, Overseerr can automatically generate a password for the new user.
#### Password

View File

@@ -2,7 +2,7 @@
Jellyseerr docs is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
Jellyseerr docs will be available at [docs.jellyseerr.dev](https://docs.jellyseerr.dev).
Jellyseerr docs will be available at [docs.jellyseerr.com](https://docs.jellyseerr.dev).
### Installation

View File

@@ -13,7 +13,6 @@ const config: Config = {
organizationName: 'Fallenbagel',
projectName: 'Jellyseerr',
deploymentBranch: 'gh-pages',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
@@ -58,6 +57,7 @@ const config: Config = {
],
themeConfig: {
image: 'img/docusaurus-social-card.jpg',
colorMode: {
defaultMode: 'dark',
disableSwitch: true,

View File

@@ -17,45 +17,47 @@ interface UserWarningsProps {
const UserWarnings: React.FC<UserWarningsProps> = ({ onClick }) => {
const intl = useIntl();
const { user } = useUser();
//check if a user has warnings
if (!user || !user.warnings || user.warnings.length === 0) {
if (!user) {
return null;
}
let res = null;
user.warnings.forEach((warning) => {
let link = '';
let warningText = '';
let warningTitle = '';
switch (warning) {
case 'userEmailRequired':
link = '/profile/settings/';
warningTitle = 'Profile is incomplete';
warningText = intl.formatMessage(messages.emailRequired);
}
//check if a user has warnings
if (user.warnings.length > 0) {
user.warnings.forEach((warning) => {
let link = '';
let warningText = '';
let warningTitle = '';
switch (warning) {
case 'userEmailRequired':
link = '/profile/settings/';
warningTitle = 'Profile is incomplete';
warningText = intl.formatMessage(messages.emailRequired);
}
res = (
<Link
href={link}
onClick={onClick}
onKeyDown={(e) => {
if (e.key === 'Enter' && onClick) {
onClick();
}
}}
role="button"
tabIndex={0}
className="mx-2 mb-2 flex items-center rounded-lg bg-yellow-500 p-2 text-xs text-white ring-1 ring-gray-700 transition duration-300 hover:bg-yellow-400"
>
<ExclamationTriangleIcon className="h-6 w-6" />
<div className="flex min-w-0 flex-1 flex-col truncate px-2 last:pr-0">
<span className="font-bold">{warningTitle}</span>
<span className="truncate">{warningText}</span>
</div>
</Link>
);
});
res = (
<Link
href={link}
onClick={onClick}
onKeyDown={(e) => {
if (e.key === 'Enter' && onClick) {
onClick();
}
}}
role="button"
tabIndex={0}
className="mx-2 mb-2 flex items-center rounded-lg bg-yellow-500 p-2 text-xs text-white ring-1 ring-gray-700 transition duration-300 hover:bg-yellow-400"
>
<ExclamationTriangleIcon className="h-6 w-6" />
<div className="flex min-w-0 flex-1 flex-col truncate px-2 last:pr-0">
<span className="font-bold">{warningTitle}</span>
<span className="truncate">{warningText}</span>
</div>
</Link>
);
});
}
return res;
};

View File

@@ -159,12 +159,12 @@ const SettingsAbout = () => {
<List title={intl.formatMessage(messages.gettingsupport)}>
<List.Item title={intl.formatMessage(messages.documentation)}>
<a
href="https://docs.jellyseerr.dev"
href="https://docs.overseerr.dev"
target="_blank"
rel="noreferrer"
className="text-indigo-500 transition duration-300 hover:underline"
>
https://docs.jellyseerr.dev
https://docs.overseerr.dev
</a>
</List.Item>
<List.Item title={intl.formatMessage(messages.githubdiscussions)}>