Fixed jellyfin expose bug and improved docs

This commit is contained in:
rasmus-kirk
2024-02-26 17:37:37 +01:00
parent f178465200
commit b49cae6b20
10 changed files with 40 additions and 605 deletions
-225
View File
@@ -1,225 +0,0 @@
{
"text-color": "#282828",
"background-color": "#fbf1c7",
"line-number-color": "#3c3836",
"line-number-background-color": "#fbf1c7",
"text-styles": {
"Alert": {
"text-color": "#9d0006",
"background-color": null,
"bold": true,
"italic": false,
"underline": false
},
"Annotation": {
"text-color": "#b16286",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Attribute": {
"text-color": "#076678",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"BaseN": {
"text-color": "#b57614",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"BuiltIn": {
"text-color": "#8f3f71",
"background-color": null,
"bold": true,
"italic": false,
"underline": false
},
"Char": {
"text-color": "#98971a",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Comment": {
"text-color": "#7c6f64",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"CommentVar": {
"text-color": "#7c6f64",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Constant": {
"text-color": "#cc241d",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"ControlFlow": {
"text-color": "#282828",
"background-color": null,
"bold": true,
"italic": false,
"underline": false
},
"DataType": {
"text-color": "#458588",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"DecVal": {
"text-color": "#458588",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Documentation": {
"text-color": "#98971a",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Error": {
"text-color": "#9d0006",
"background-color": null,
"bold": false,
"italic": false,
"underline": true
},
"Extension": {
"text-color": "#458588",
"background-color": null,
"bold": true,
"italic": false,
"underline": false
},
"Float": {
"text-color": "#b57614",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Function": {
"text-color": "#b16286",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Import": {
"text-color": "#d65d0e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Information": {
"text-color": "#d65d0e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Keyword": {
"text-color": "#282828",
"background-color": null,
"bold": true,
"italic": false,
"underline": false
},
"Normal": {
"text-color": "#282828",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Operator": {
"text-color": "#282828",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Other": {
"text-color": "#79740e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Preprocessor": {
"text-color": "#79740e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"RegionMarker": {
"text-color": "#076678",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"SpecialChar": {
"text-color": "#79740e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"SpecialString": {
"text-color": "#79740e",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"String": {
"text-color": "#98971a",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Variable": {
"text-color": "#076678",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"VerbatimString": {
"text-color": "#9d0006",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
},
"Warning": {
"text-color": "#b57614",
"background-color": null,
"bold": false,
"italic": false,
"underline": false
}
}
}
+20 -13
View File
@@ -19,8 +19,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Jellyfin traffic through the VPN. Requires that `nixarr.vpn`
is configured
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Jellyfin traffic through the VPN.
'';
expose = {
@@ -28,8 +29,9 @@ in {
enable = mkEnableOption ''
**Required options:**
- `nixarr.jellyfin.vpn.enable`
- `nixarr.jellyfin.expose.vpn.port`
- [`nixarr.jellyfin.vpn.enable`](/options.html#nixarr.jellyfin.vpn.enable)
- [`nixarr.jellyfin.expose.vpn.port`](/options.html#nixarr.jellyfin.expose.vpn.port)
- [`nixarr.jellyfin.expose.vpn.accessibleFrom`](/options.html#nixarr.jellyfin.expose.vpn.accessibleFrom)
Expose the Jellyfin web service to the internet, allowing anyone to
access it.
@@ -42,12 +44,17 @@ in {
type = with types; nullOr port;
default = null;
description = ''
**Required options:** `nixarr.jellyfin.expose.vpn.enable`
The port to access jellyfin on. Get this port from your VPN
provider.
'';
};
The port to access jellyfin on. Get this port from your VPN provider.
**Important:** Do _not_ enable this without setting up Jellyfin
authentication through localhost first!
accessibleFrom = mkOption {
type = with types; nullOr str;
default = null;
example = "jellyfin.airvpn.org";
description = ''
The IP or domain that Jellyfin should be able to be accessed from.
'';
};
};
@@ -56,10 +63,10 @@ in {
enable = mkEnableOption ''
**Required options:**
- `nixarr.jellyfin.expose.https.acmeMail`
- `nixarr.jellyfin.expose.https.domainName`
- [`nixarr.jellyfin.expose.https.acmeMail`](/options.html#nixarr.jellyfin.expose.https.acmeMail)
- [`nixarr.jellyfin.expose.https.domainName`](/options.html#nixarr.jellyfin.expose.https.domainName)
**Conflicting options:** `nixarr.jellyfin.vpn.enable`
**Conflicting options:** [`nixarr.jellyfin.vpn.enable`](/options.html#nixarr.jellyfin.vpn.enable)
Expose the Jellyfin web service to the internet with https support,
allowing anyone to access it.
@@ -148,7 +155,7 @@ in {
};
};
virtualHosts."${config.util-nixarr.vpn.address}:${builtins.toString cfg.expose.vpn.port}" = mkIf cfg.expose.vpn.enable {
virtualHosts."${cfg.expose.vpn.accessibleFrom}:${builtins.toString cfg.expose.vpn.port}" = mkIf cfg.expose.vpn.enable {
enableACME = true;
forceSSL = true;
locations."/" = {
+3 -2
View File
@@ -18,8 +18,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Lidarr traffic through the VPN. Requires that `nixarr.vpn`
is configured
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Lidarr traffic through the VPN.
'';
};
+2
View File
@@ -11,6 +11,8 @@ in {
type = types.bool;
default = false;
description = ''
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Run the openssh service through a vpn.
**Note:** This option does _not_ enable the sshd service you still
+3 -2
View File
@@ -24,8 +24,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Prowlarr traffic through the VPN. Requires that `nixarr.vpn`
is configured.
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Prowlarr traffic through the VPN.
'';
};
+3 -2
View File
@@ -20,8 +20,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Radarr traffic through the VPN. Requires that `nixarr.vpn`
is configured.
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Radarr traffic through the VPN.
'';
};
+3 -2
View File
@@ -18,8 +18,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Readarr traffic through the VPN. Requires that `nixarr.vpn`
is configured.
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Readarr traffic through the VPN.
'';
};
+3 -2
View File
@@ -24,8 +24,9 @@ in {
};
vpn.enable = mkEnableOption ''
Route Readarr traffic through the VPN. Requires that `nixarr.vpn`
is configured.
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
Route Sonarr traffic through the VPN.
'';
};
+3 -5
View File
@@ -18,9 +18,6 @@ in {
default = "${nixarr.stateDir}/nixarr/transmission";
description = ''
The state directory for Transmission.
**BUG**: Only works when the `nixarr.transmission.vpn.enable` option
is set.
'';
};
@@ -33,8 +30,9 @@ in {
};
vpn.enable = mkEnableOption ''
**Recommended!** Route Transmission traffic through the VPN. Requires that `nixarr.vpn`
is configured.
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
**Recommended:** Route Transmission traffic through the VPN.
'';
flood.enable = mkEnableOption "Use the flood web-UI";
-352
View File
@@ -1,352 +0,0 @@
/*
* I add this to html files generated with pandoc.
*/
:root {
--bg: #fbf1c7;
--bgt: #fbf1c7;
--bge: #fbf8e4;
--bg0: #f9f5d7;
--fg0: #282828;
--ltred: #cc241d;
--ltgreen: #98971a;
--ltyellow: #d79921;
--ltblue: #458588;
--ltpurple: #b16286;
--ltaqua: #689da6;
--ltorange: #d65d0e;
--ltgrey: #7c6f64;
--dkred: #9d0006;
--dkgreen: #79740e;
--dkyellow: #b57614;
--dkblue: #076678;
--dkpurple: #8f3f71;
--dkaqua: #427b58;
--dkgrey: #3c3836;
}
html {
font-size: 100%;
overflow-y: scroll;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
body {
color: var(--fg0);
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
font-size: 12px;
line-height: 1.7;
padding: 1em;
margin: auto;
max-width: 38em;
background: var(--bg0);
}
a {
color: var(--ltblue);
text-decoration: none;
}
a:visited {
color: var(--dkblue);
}
a:hover {
color: var(--ltblue);
}
a:active {
color: var(--ltblue);
}
a:focus {
outline: thin dotted;
}
*::-moz-selection {
/* background: var(--ltred); */
background: rgba(255, 255, 0, 0.3);
color: var(--fg0);
}
*::selection {
background: rgba(255, 255, 0, 0.3);
color: var(--fg0);
}
a::-moz-selection {
background: rgba(255, 255, 0, 0.3);
color: var(--ltblue);
}
a::selection {
background: rgba(255, 255, 0, 0.3);
color: var(--ltblue);
}
p {
margin: 1em 0;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
color: var(--fg0);
line-height: 125%;
margin-top: 1em;
font-weight: normal;
}
h4, h5, h6 {
font-weight: bold;
}
h1 {
font-size: 2.5em;
}
h2 {
font-size: 2em;
}
h3 {
font-size: 1.5em;
}
h4 {
font-size: 1.2em;
}
h5 {
font-size: 1em;
}
h6 {
font-size: 0.9em;
}
blockquote {
color: var(--ltgrey);
margin: 0;
padding-left: 3em;
border-left: 0.5em var(--fg0) solid;
}
hr {
display: block;
height: 2px;
border: 0;
border-top: 1px solid #aaa;
border-bottom: 1px solid #eee;
margin: 1em 0;
padding: 0;
}
pre, code, kbd, samp {
color: var(--fg0);
font-family: monospace, monospace;
_font-family: 'courier new', monospace;
font-size: 0.98em;
}
pre {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
b, strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
ins {
background: #ff9;
color: #000;
text-decoration: none;
}
mark {
background: #ff0;
color: #000;
font-style: italic;
font-weight: bold;
}
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
ul, ol {
margin: 1em 0;
padding: 0 0 0 2em;
}
li p:last-child {
margin-bottom: 0;
}
ul ul, ol ol {
margin: .3em 0;
}
dl {
margin-bottom: 1em;
}
dt {
font-weight: bold;
margin-bottom: .8em;
}
dd {
margin: 0 0 .8em 2em;
}
dd:last-child {
margin-bottom: 0;
}
img {
border: 0;
-ms-interpolation-mode: bicubic;
vertical-align: middle;
}
figure {
display: block;
text-align: center;
margin: 1em 0;
}
figure img {
border: none;
margin: 0 auto;
}
figcaption {
font-size: 0.8em;
font-style: italic;
margin: 0 0 .8em;
}
table {
margin-bottom: 2em;
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
border-spacing: 0;
border-collapse: collapse;
}
table th {
padding: .2em 1em;
background-color: #eee;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
}
table td {
padding: .2em 1em;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
vertical-align: top;
}
.author {
font-size: 1.2em;
text-align: center;
}
@media only screen and (min-width: 480px) {
body {
font-size: 14px;
}
}
@media only screen and (min-width: 768px) {
body {
font-size: 16px;
}
}
@media print {
* {
background: transparent !important;
color: black !important;
filter: none !important;
-ms-filter: none !important;
}
body {
font-size: 12pt;
max-width: 100%;
}
a, a:visited {
text-decoration: underline;
}
hr {
height: 1px;
border: 0;
border-bottom: 1px solid black;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
content: "";
}
pre, blockquote {
border: 1px solid #999;
padding-right: 1em;
page-break-inside: avoid;
}
tr, img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
@page :left {
margin: 15mm 20mm 15mm 10mm;
}
@page :right {
margin: 15mm 10mm 15mm 20mm;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3 {
page-break-after: avoid;
}
}