Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Commit ae60bc9

Browse files
committed
merge branch master into Artiume-patch-1
2 parents 74669fa + 248ba95 commit ae60bc9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1021
-435
lines changed

.ci/azure-pipelines.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@ jobs:
1717
submodules: true
1818
persistCredentials: true
1919

20+
- task: CmdLine@2
21+
displayName: "Install Markdownlint CLI"
22+
inputs:
23+
script: 'npm install markdownlint-cli'
24+
workingDirectory: '$(Build.SourcesDirectory)'
25+
26+
- task: CmdLine@2
27+
displayName: "Run Markdownlint"
28+
inputs:
29+
script: 'npx markdownlint **/*.md --ignore node_modules --ignore src'
30+
workingDirectory: '$(Build.SourcesDirectory)'
31+
2032
- task: CmdLine@2
2133
displayName: "Update Submodules"
2234
inputs:

.markdownlint.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
# MD013/line-length
3+
MD013: false
4+
# MD033/no-inline-html
5+
MD033: false
6+
# MD025/single-title
7+
MD025:
8+
# Ignore front matter 'title' property, it is not used in generated markup
9+
front_matter_title: ""
10+
# MD026/no-trailing-punctuation
11+
MD026:
12+
# Allow headings to end with '?'
13+
punctuation: ".,;:!"
14+
# MD028/no-blanks-blockquote
15+
MD028: false

.vscode/extensions.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3+
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4+
5+
// List of extensions which should be recommended for users of this workspace.
6+
"recommendations": [
7+
"davidanson.vscode-markdownlint"
8+
],
9+
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
10+
"unwantedRecommendations": [
11+
12+
]
13+
}

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
<!-- markdownlint-disable MD041 first-line-heading -->
12
<h1 align="center">Jellyfin Documentation</h1>
23
<h3 align="center">Part of the <a href="https://jellyfin.media">Jellyfin Project</a></h3>
34

45
This repository houses all documentation for Jellyfin available at [jellyfin.org](https://docs.jellyfin.org/) and written in markdown.
56

6-
# Contributing
7+
## Getting Started
78

89
The site is built with [DocFX](https://dotnet.github.io/docfx/) using [DocFX Flavored Markdown](https://dotnet.github.io/docfx/spec/docfx_flavored_markdown.html). See the content section [here](https://dotnet.github.io/docfx/tutorial/docfx_getting_started.html) for a quick tutorial on DocFX.
910

@@ -23,7 +24,20 @@ Next, you will need to install DocFx as a [command line tool](https://dotnet.git
2324
docfx --serve
2425
```
2526

26-
This will build the site and start up a development server to test out your changes available at http://localhost:8080.
27+
This will build the site and start up a development server to test out your changes available at <http://localhost:8080>.
28+
29+
### Linting
30+
31+
This repository is configured to use [markdownlint](https://github.com/DavidAnson/markdownlint/) for linting Markdown files.
32+
33+
If you are editing files within Visual Studio Code, you can install the markdownlint [extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) to see the linting errors as you work.
34+
35+
You can also easily run the linter manually using the associated markdownlint [CLI](https://github.com/igorshubovych/markdownlint-cli).
36+
37+
```bash
38+
npm install -g markdownlint-cli
39+
markdownlint **/*.md --ignore node_modules --ignore src
40+
```
2741

2842
# Layout
2943

general/about.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The Jellyfin project was started in early December 2018 as a result of Emby's de
1313

1414
You can find our main repository on [GitHub](https://github.com/jellyfin/jellyfin) as well as our [organization](https://github.com/jellyfin) page.
1515

16-
# Core Team
16+
## Core Team
1717

1818
[Andrew Rabert (nvllsvm)](https://github.com/nvllsvm)<br/>
1919
[Joshua Boniface (joshuaboniface)](https://github.com/joshuaboniface)<br/>

general/administration/building.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
uid: admin-building
33
title: Building from Source
44
---
5+
<!-- markdownlint-disable MD029 ol-prefix -->
56

67
# Source
78

@@ -12,24 +13,28 @@ Jellyfin supports several methods of building for different platforms and instru
1213
All package builds begin with these two steps:
1314

1415
1. Clone the repository:
16+
1517
```sh
1618
git clone https://github.com/jellyfin/jellyfin.git
1719
cd jellyfin
1820
```
1921

2022
2. Initialize the submodules:
23+
2124
```sh
2225
git submodule update --init
2326
```
2427

2528
## Docker
2629

2730
3. Build the Docker image:
31+
2832
```sh
2933
docker build -t $USERNAME/jellyfin .
3034
```
3135

3236
4. Run the container:
37+
3338
```sh
3439
docker run -d -p 8096:8096 $USERNAME/jellyfin
3540
```
@@ -51,14 +56,16 @@ All package builds begin with these two steps:
5156

5257
## Windows
5358

54-
3. Install the dotnet core SDK 2.2 from [Microsoft's Website](https://dotnet.microsoft.com/download/dotnet-core/2.2) and [install Git for Windows](https://gitforwindows.org/). You must be on Powershell 3 or higher.
59+
3. Install the dotnet core SDK 3.1 from [Microsoft's Website](https://dotnet.microsoft.com/download/dotnet-core/3.1) and [install Git for Windows](https://gitforwindows.org/). You must be on Powershell 3 or higher.
5560
5661
4. From Powershell set the execution policy to unrestricted:
62+
5763
```powershell
5864
set-executionpolicy unrestricted
5965
```
6066
6167
5. Run the Jellyfin build script:
68+
6269
```powershell
6370
deployment\windows\build-jellyfin.ps1 -verbose
6471
```
@@ -76,11 +83,13 @@ All package builds begin with these two steps:
7683
7. Jellyfin is now available in the default directory (or the directory you chose). Assuming you kept the default directory:
7784

7885
* To start it from a Powershell window, run:
86+
7987
```powershell
8088
&"$env:APPDATA\Jellyfin-Server\jellyfin.exe"
8189
```
8290

8391
* To start it from CMD, run:
92+
8493
```cmd
8594
%APPDATA%\Jellyfin-Server\jellyfin.exe
8695
```
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
uid: admin-configuration
3+
title: Configuration
4+
---
5+
6+
# Configuration
7+
8+
There are several entry points available for administrators to manage the configuration of their server. This section aims to outline all those configuration methods, explain what options are available, and what each option does.
9+
10+
> [!NOTE]
11+
> The configuration options here are distinct from the [runtime settings](xref:server-settings) available from the Administrator Dashboard in the web client. The configuration options here are generally meant to be static and set before starting the server.
12+
13+
## Command Line Options
14+
15+
Documentation for the available command line options can be obtained by adding the `--help` flag when running the Jellyfin executable.
16+
17+
## Server Paths
18+
19+
The file paths used by the server are determined according the rules outline below. In general, the [XDG specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) is followed by default for non-Windows systems.
20+
21+
### Data Directory
22+
23+
This is the directory that will hold all Jellyfin data, and is also used as a default base directory for some other paths below. It is set from the following sources in order of decreasing precedence.
24+
25+
1. Command line option `--datadir`, if specified
26+
2. Environment variable `JELLYFIN_DATA_DIR`, if specified
27+
3. `<%APPDATA%>/jellyfin`, if running on Windows
28+
4. `$XDG_DATA_HOME/jellyfin`, if `$XDG_DATA_HOME` exists
29+
5. `$HOME/.local/share/jellyfin`
30+
31+
### Configuration Directory
32+
33+
This is the directory containing the server configuration files. It is set from the following sources in order of decreasing precedence.
34+
35+
1. Command line option `--configdir`, if specified
36+
2. Environment variable `JELLYFIN_CONFIG_DIR`, if specified
37+
3. `<Data Directory>/config`, if it exists or if running on Windows
38+
4. `$XDG_CONFIG_HOME/jellyfin` if `$XDG_CONFIG_HOME` exists
39+
5. `$HOME/.config/jellyfin`
40+
41+
### Cache Directory
42+
43+
This is the directory containing the server cache. It is set from the following sources in order of decreasing precedence.
44+
45+
1. Command line option `--cachedir`, if specified
46+
2. Environment variable `$JELLYFIN_CACHE_DIR`, if specified
47+
3. `<Data Directory>/cache`, if Windows
48+
4. `$XDG_CACHE_HOME/jellyfin` if `$XDG_CACHE_HOME` exists
49+
5. `$HOME/.cache/jellyfin`
50+
51+
### Web Directory
52+
53+
This is the directory containing the built files from a [web client](https://github.com/jellyfin/jellyfin-web) release. It is set from the following sources in order of decreasing precedence.
54+
55+
1. Command line option `--webdir`, if specified
56+
2. Environment variable `$JELLYFIN_WEB_DIR`, if specified
57+
3. `<Binary Directory>/jellyfin-web`, where `<Binary Directory>` is the directory containing the Jellyfin executable
58+
59+
> [!NOTE]
60+
> This setting is only used when the server is configured to host the web client. See the `hostwebclient` option in the [Main Configuration Options](#main-configuration-options) section below for additional details.
61+
62+
### Log Directory
63+
64+
This is the directory where the Jellyfin logs will be stored. It is set from the following sources in order of decreasing precedence.
65+
66+
1. Command line option `--logdir`, if specified
67+
2. Environment variable `$JELLYFIN_LOG_DIR`, if specified
68+
3. `<Data Directory>/log`
69+
70+
## Main Configuration
71+
72+
The main server configuration is built upon the ASP .NET [configuration framework](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1), which provides a tiered approach to loading configuration. The base directory to locate the configuration files is set using the [configuration directory](#configuration-directory) setting. The configuration sources are as follows, with later sources having higher priority and overwriting the values in earlier sources.
73+
74+
1. **Hard-coded default values**: These defaults are specified specified in the Jellyfin [source code](https://github.com/jellyfin/jellyfin/blob/master/Emby.Server.Implementations/ConfigurationOptions.cs) and cannot be changed.
75+
2. **Default logging configuration file** (`logging.default.json`): This file should not be modified manually by users. It is reserved by the server to be overwritten with new settings on each new release.
76+
3. **System-specific logging configuration file** (`logging.json`): This is the file you should change if you want to have a custom logging setup. Jellyfin uses the [Serilog](https://serilog.net/) logging framework, and you can read about the configuration options available in their [documentation](https://github.com/serilog/serilog-settings-configuration).
77+
78+
> [!NOTE]
79+
> This file can be changed at runtime, which will automatically reload the configuration and apply the changes immediately.
80+
81+
4. **Environment variables**: The [documentation](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1#environment-variables) provided by Microsoft explains how to set these configuration options via environment variables. Jellyfin uses its own custom `JELLYFIN_` prefix for these variables. For example, to set a value for the `HttpListenerHost:DefaultRedirectPath` setting, you would set a value for the `JELLYFIN_HttpListenerHost__DefaultRedirectPath` environment variable.
82+
5. **Command line options**: Certain command line options are loaded into the configuration system and have the highest priority. The following command line options are mapped to associated configuration options.
83+
84+
- `--nowebcontent` sets the `hostwebclient` configuration setting to false
85+
- `--plugin-manifest-url` sets a value for the `InstallationManager:PluginManifestUrl` configuration setting
86+
87+
### Main Configuration Options
88+
89+
This section lists all the configuration options available and explains their function.
90+
91+
|Key|Default Value|Description|
92+
|---|-------------|-----------|
93+
|`hostwebclient`|`True`|Set to `True` if the server should host the web client.|
94+
|`HttpListenerHost:DefaultRedirectPath`|`"web/index.html"` if `hostwebclient` is true; `"swagger/index.html"` if `hostwebclient` is false|The default redirect path to use for requests where the URL base prefix is invalid or missing|
95+
|`InstallationManager:PluginManifestUrl`|`"https://repo.jellyfin.org/releases/plugin/manifest.json"`|The URL for the plugin repository JSON manifest.|
96+
|`FFmpeg:probesize`|`"1G"`|Value to set for the FFmpeg `probesize` format option. See the FFmpg [documentation](https://ffmpeg.org/ffmpeg-formats.html#Format-Options) for more details.|
97+
|`FFmpeg:analyzeduration`|`"200M"`|The value to set for the FFmpeg `analyzeduration` format option. See the FFmpg [documentation](https://ffmpeg.org/ffmpeg-formats.html#Format-Options) for more details.|
98+
|`playlists:allowDuplicates`|`True`|Whether playlists should allow duplicate items or automatically filter out duplicates.|

0 commit comments

Comments
 (0)