Fixed jellyfin expose bug and improved docs
This commit is contained in:
-225
@@ -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
@@ -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."/" = {
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user