<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://readonlywiki.luccapirovano.com/index.php?action=history&amp;feed=atom&amp;title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container</id>
	<title>Running Jellyfin on an unprivileged LXC proxmox container - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://readonlywiki.luccapirovano.com/index.php?action=history&amp;feed=atom&amp;title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container"/>
	<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;action=history"/>
	<updated>2026-05-01T21:11:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=38&amp;oldid=prev</id>
		<title>Lucka at 23:37, 24 February 2024</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=38&amp;oldid=prev"/>
		<updated>2024-02-24T23:37:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:37, 24 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a guide i took and modified from somebody&amp;#039;s reddit post. They had used ubuntu for the LXC container but I will be using Alpine Linux instead.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a guide i took and modified from somebody&amp;#039;s reddit post. They had used ubuntu for the LXC container but I will be using Alpine Linux instead.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;They had referenced this page on the article as well: https://bookstack.swigg.net/books/linux/page/lxc-gpu-access &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;---&amp;gt; great source that i use for &lt;/del&gt;ID mapping&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, but seems unreachable right now...&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;They had referenced this page on the article as well: https://bookstack.swigg.net/books/linux/page/lxc-gpu-access &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# as a way to get more insight on &lt;/ins&gt;ID mapping&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=37&amp;oldid=prev</id>
		<title>Lucka at 23:36, 24 February 2024</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=37&amp;oldid=prev"/>
		<updated>2024-02-24T23:36:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:36, 24 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a guide i took and modified from somebody&amp;#039;s reddit post. They had used ubuntu for the LXC container but I will be using Alpine Linux instead.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a guide i took and modified from somebody&amp;#039;s reddit post. They had used ubuntu for the LXC container but I will be using Alpine Linux instead.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;They had referenced this page on the article as well: https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but seems unreachable right now...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;They had referenced this page on the article as well: https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but seems unreachable right now...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=36&amp;oldid=prev</id>
		<title>Lucka at 23:36, 24 February 2024</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=36&amp;oldid=prev"/>
		<updated>2024-02-24T23:36:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:36, 24 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;hr&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;THIS POST WAS TAKEN FROM REDDIT: https://old.&lt;/del&gt;reddit.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is a guide i took and modified from somebody&#039;s &lt;/ins&gt;reddit &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;post&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;They had used ubuntu for the &lt;/ins&gt;LXC container but &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;I will be using Alpine Linux instead&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;They had referenced this page on the article as well: &lt;/ins&gt;https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but seems unreachable right now...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;hr&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hi Folks, just want to share how i managed to run Jellyfin on Proxmox &lt;/del&gt;LXC &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in an unprivileged &lt;/del&gt;container&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Maybe not everything is necessary (specially the part about drivers), &lt;/del&gt;but &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;what i described is working so far&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Links&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but seems unreachable right now...&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Install drivers on Proxmox host&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;apt install vainfo&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;apt install vainfo&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;​&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Simply create an unprivileged LXC container  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Create LXC container based on Ubuntu 20.04&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Simply create an unprivileged LXC container &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;based on ubuntu 20.04.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mount media folder&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mount media folder&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We mount the folder using NFS on proxmox, then we mount it in the LXC container.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We mount the folder using NFS on proxmox, then we mount it in the LXC container.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Why? because mouting NFS/CIFS on unprivilged container is a pain in the ass.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Why? because mouting NFS/CIFS on unprivilged container is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;both &lt;/ins&gt;a pain in the ass &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and also insecure&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit LXC conf file &amp;lt;code&amp;gt;/etc/pve/lxc/xxx.conf&amp;lt;/code&amp;gt; :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit LXC conf file &amp;lt;code&amp;gt;/etc/pve/lxc/xxx.conf&amp;lt;/code&amp;gt; :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=35&amp;oldid=prev</id>
		<title>Lucka at 23:30, 24 February 2024</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=35&amp;oldid=prev"/>
		<updated>2024-02-24T23:30:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:30, 24 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+ root:103:1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+ root:103:1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then you&#039;ll need to create the ID mappings. Since you&#039;re just dealing with group mappings the UID mapping can be performed in a single line as shown on the first line addition below. It can be read as &quot;remap 65,536 of the LXC guest namespace UIDs from 0 through 65,536 to a range in the host starting at 100,000.&quot; You can tell this relates to UIDs because of the u denoting users. It wasn&#039;t necessary to edit /etc/subuid because that file already gives root permission to perform this mapping.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then you&#039;ll need to create the ID mappings. Since you&#039;re just dealing with group mappings the UID mapping can be performed in a single line as shown on the first line addition below. It can be read as &quot;remap 65,536 of the LXC guest namespace UIDs from 0 through 65,536 to a range in the host starting at 100,000.&quot; You can tell this relates to UIDs because of the u denoting users. It wasn&#039;t necessary to edit &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;/etc/subuid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;because that file already gives root permission to perform this mapping.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You have to do the same thing for groups which is the same concept but slightly more verbose. In this example when looking at /etc/group in the LXC guest it shows that video and render have GIDs of 44 and 103. Although you&amp;#039;ll use g to denote GIDs everything else is the same except it is necessary to ensure the custom mappings cover the whole range of GIDs so it requires more lines. The only tricky part is the second to last line that shows mapping the LXC guest namespace GID for render (107) to the host GID for render (103) because the groups have different GIDs.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You have to do the same thing for groups which is the same concept but slightly more verbose. In this example when looking at /etc/group in the LXC guest it shows that video and render have GIDs of 44 and 103. Although you&amp;#039;ll use g to denote GIDs everything else is the same except it is necessary to ensure the custom mappings cover the whole range of GIDs so it requires more lines. The only tricky part is the second to last line that shows mapping the LXC guest namespace GID for render (107) to the host GID for render (103) because the groups have different GIDs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=34&amp;oldid=prev</id>
		<title>Lucka at 23:28, 24 February 2024</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=34&amp;oldid=prev"/>
		<updated>2024-02-24T23:28:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:28, 24 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;hr&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;THIS POST WAS TAKEN FROM REDDIT: https://old.reddit.com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;THIS POST WAS TAKEN FROM REDDIT: https://old.reddit.com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
	<entry>
		<id>https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=33&amp;oldid=prev</id>
		<title>Lucka: Created page with &quot;THIS POST WAS TAKEN FROM REDDIT: https://old.reddit.com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/  &lt;hr&gt; Hi Folks, just want to share how i managed to run Jellyfin on Proxmox LXC in an unprivileged container. Maybe not everything is necessary (specially the part about drivers), but what i described is working so far. Links      https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&gt; great source that i use for ID mapping, but se...&quot;</title>
		<link rel="alternate" type="text/html" href="https://readonlywiki.luccapirovano.com/index.php?title=Running_Jellyfin_on_an_unprivileged_LXC_proxmox_container&amp;diff=33&amp;oldid=prev"/>
		<updated>2024-02-24T23:28:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;THIS POST WAS TAKEN FROM REDDIT: https://old.reddit.com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/  &amp;lt;hr&amp;gt; Hi Folks, just want to share how i managed to run Jellyfin on Proxmox LXC in an unprivileged container. Maybe not everything is necessary (specially the part about drivers), but what i described is working so far. Links      https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but se...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;THIS POST WAS TAKEN FROM REDDIT: https://old.reddit.com/r/jellyfin/comments/ul0i1a/running_jellyfin_on_lxc_unprivileged_promox_with/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Hi Folks, just want to share how i managed to run Jellyfin on Proxmox LXC in an unprivileged container. Maybe not everything is necessary (specially the part about drivers), but what i described is working so far.&lt;br /&gt;
Links&lt;br /&gt;
&lt;br /&gt;
    https://bookstack.swigg.net/books/linux/page/lxc-gpu-access ---&amp;gt; great source that i use for ID mapping, but seems unreachable right now...&lt;br /&gt;
&lt;br /&gt;
Install drivers on Proxmox host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt install vainfo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
​&lt;br /&gt;
Create LXC container based on Ubuntu 20.04&lt;br /&gt;
&lt;br /&gt;
Simply create an unprivileged LXC container based on ubuntu 20.04.&lt;br /&gt;
Mount media folder&lt;br /&gt;
&lt;br /&gt;
We mount the folder using NFS on proxmox, then we mount it in the LXC container.&lt;br /&gt;
&lt;br /&gt;
Why? because mouting NFS/CIFS on unprivilged container is a pain in the ass.&lt;br /&gt;
&lt;br /&gt;
Edit LXC conf file &amp;lt;code&amp;gt;/etc/pve/lxc/xxx.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
+ mp0: /mnt/pve/nas-video,mp=/mnt/video&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should add the following lines that allow root to map those groups to a new GID.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi /etc/subgid&lt;br /&gt;
+ root:44:1&lt;br /&gt;
+ root:103:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you&amp;#039;ll need to create the ID mappings. Since you&amp;#039;re just dealing with group mappings the UID mapping can be performed in a single line as shown on the first line addition below. It can be read as &amp;quot;remap 65,536 of the LXC guest namespace UIDs from 0 through 65,536 to a range in the host starting at 100,000.&amp;quot; You can tell this relates to UIDs because of the u denoting users. It wasn&amp;#039;t necessary to edit /etc/subuid because that file already gives root permission to perform this mapping.&lt;br /&gt;
&lt;br /&gt;
You have to do the same thing for groups which is the same concept but slightly more verbose. In this example when looking at /etc/group in the LXC guest it shows that video and render have GIDs of 44 and 103. Although you&amp;#039;ll use g to denote GIDs everything else is the same except it is necessary to ensure the custom mappings cover the whole range of GIDs so it requires more lines. The only tricky part is the second to last line that shows mapping the LXC guest namespace GID for render (107) to the host GID for render (103) because the groups have different GIDs.&lt;br /&gt;
&lt;br /&gt;
Edit LXC conf file &amp;lt;code&amp;gt;/etc/pve/lxc/xxx.conf&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
mp0: /mnt/pve/nas-video,mp=/mnt/video&lt;br /&gt;
lxc.cgroup2.devices.allow: c 226:0 rwm&lt;br /&gt;
lxc.cgroup2.devices.allow: c 226:128 rwm&lt;br /&gt;
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir&lt;br /&gt;
+ lxc.idmap: u 0 100000 65536&lt;br /&gt;
+ lxc.idmap: g 0 100000 44&lt;br /&gt;
+ lxc.idmap: g 44 44 1&lt;br /&gt;
+ lxc.idmap: g 45 100045 62&lt;br /&gt;
+ lxc.idmap: g 107 103 1&lt;br /&gt;
+ lxc.idmap: g 108 100108 65428&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With some comments, for understanding (dont put comments in the lxc conf file):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+ lxc.idmap: u 0 100000 65536   // map UIDs 0-65536 (LXC namespace) to 100000-165535 (host namespace)&lt;br /&gt;
+ lxc.idmap: g 0 100000 44      // map GIDs 0-43 (LXC namspace) to 100000-100043 (host namespace)&lt;br /&gt;
+ lxc.idmap: g 44 44 1          // map GID  44 to be the same in both namespaces&lt;br /&gt;
+ lxc.idmap: g 45 100045 62     // map GIDs 45-106 (LXC namspace) to 100045-100106 (host namespace) &lt;br /&gt;
                                // 106 is the group before the render group (107) in LXC container&lt;br /&gt;
                                // 62 = 107 (render group in LXC) - 45 (start group for this mapping)&lt;br /&gt;
+ lxc.idmap: g 107 103 1        // map GID 107 (render in LXC) to 103 (render on the host)&lt;br /&gt;
+ lxc.idmap: g 108 100108 65428 // map GIDs 108-65536 (LXC namspace) to 100108-165536 (host namespace)&lt;br /&gt;
                                // 108 is the group after the render group (107) in the LXC container&lt;br /&gt;
                                // 65428 = 65536 (max gid) - 108 (start group for this mapping)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
​&lt;br /&gt;
Add root to Groups&lt;br /&gt;
&lt;br /&gt;
Because root&amp;#039;s UID and GID in the LXC guest&amp;#039;s namespace isn&amp;#039;t mapped to root on the host you&amp;#039;ll have to add any users in the LXC guest to the groups video and render to have access the devices. As an example to give root in our LXC guest&amp;#039;s namespace access to the devices you would simply add root to the video and render group.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
usermod -aG render,video root&lt;br /&gt;
&lt;br /&gt;
usermod -aG render,video root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
​&lt;br /&gt;
Prepare jellyfin env&lt;br /&gt;
Install Drivers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s https://repositories.intel.com/graphics/intel-graphics.key | apt-key add -&lt;br /&gt;
echo &amp;#039;deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main&amp;#039; &amp;gt; /etc/apt/sources.list.d/intel-graphics.list&lt;br /&gt;
apt update&lt;br /&gt;
INTEL_LIBVA_VER=&amp;quot;2.13.0+i643~u20.04&amp;quot;&lt;br /&gt;
INTEL_GMM_VER=&amp;quot;21.3.3+i643~u20.04&amp;quot;&lt;br /&gt;
INTEL_iHD_VER=&amp;quot;21.4.1+i643~u20.04&amp;quot;&lt;br /&gt;
apt-get update &amp;amp;&amp;amp;   apt-get install -y --no-install-recommends libva2=&amp;quot;${INTEL_LIBVA_VER}&amp;quot; libigdgmm11=&amp;quot;${INTEL_GMM_VER}&amp;quot; intel-media-va-driver-non-free=&amp;quot;${INTEL_iHD_VER}&amp;quot; mesa-va-drivers&lt;br /&gt;
apt install vainfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Running vainfo should work:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
error: can&amp;#039;t connect to X server!&lt;br /&gt;
libva info: VA-API version 1.13.0&lt;br /&gt;
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so&lt;br /&gt;
libva info: Found init function __vaDriverInit_1_13&lt;br /&gt;
libva info: va_openDriver() returns 0&lt;br /&gt;
vainfo: VA-API version: 1.13 (libva 2.13.0)&lt;br /&gt;
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.4.1 (be92568)&lt;br /&gt;
vainfo: Supported profile and entrypoints&lt;br /&gt;
      VAProfileNone                   : VAEntrypointVideoProc&lt;br /&gt;
      VAProfileNone                   : VAEntrypointStats&lt;br /&gt;
      VAProfileMPEG2Simple            : VAEntrypointVLD&lt;br /&gt;
      VAProfileMPEG2Simple            : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileMPEG2Main              : VAEntrypointVLD&lt;br /&gt;
      VAProfileMPEG2Main              : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264Main               : VAEntrypointVLD&lt;br /&gt;
      VAProfileH264Main               : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264Main               : VAEntrypointFEI&lt;br /&gt;
      VAProfileH264Main               : VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileH264High               : VAEntrypointVLD&lt;br /&gt;
      VAProfileH264High               : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264High               : VAEntrypointFEI&lt;br /&gt;
      VAProfileH264High               : VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileVC1Simple              : VAEntrypointVLD&lt;br /&gt;
      VAProfileVC1Main                : VAEntrypointVLD&lt;br /&gt;
      VAProfileVC1Advanced            : VAEntrypointVLD&lt;br /&gt;
      VAProfileJPEGBaseline           : VAEntrypointVLD&lt;br /&gt;
      VAProfileJPEGBaseline           : VAEntrypointEncPicture&lt;br /&gt;
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD&lt;br /&gt;
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI&lt;br /&gt;
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileVP8Version0_3          : VAEntrypointVLD&lt;br /&gt;
      VAProfileVP8Version0_3          : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileHEVCMain               : VAEntrypointVLD&lt;br /&gt;
      VAProfileHEVCMain               : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileHEVCMain               : VAEntrypointFEI&lt;br /&gt;
      VAProfileHEVCMain10             : VAEntrypointVLD&lt;br /&gt;
      VAProfileHEVCMain10             : VAEntrypointEncSlice&lt;br /&gt;
      VAProfileVP9Profile0            : VAEntrypointVLD&lt;br /&gt;
      VAProfileVP9Profile2            : VAEntrypointVLD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
​&lt;br /&gt;
Create user that will run jellyfin&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useradd -m gauth&lt;br /&gt;
usermod -aG render,video gauth&lt;br /&gt;
#eventually&lt;br /&gt;
usermod -aG sudo gauth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At this point, vainfo should run properly with the new user.&lt;br /&gt;
Install Jellyfin&lt;br /&gt;
&lt;br /&gt;
Then you can install jellyfin natively or through docker.&lt;br /&gt;
&lt;br /&gt;
I personally use, Linuxserver docker image.&lt;br /&gt;
Note for Linuxserver docker image&lt;br /&gt;
&lt;br /&gt;
In this setup, the image init script won&amp;#039;t detect char file correctly, leading to improper groups being (not) set and ultimately, not working transcoding.(https://github.com/linuxserver/docker-jellyfin/issues/150)&lt;br /&gt;
&lt;br /&gt;
To bypass, create a custom init script for the image i.e &amp;lt;code&amp;gt;/.../jellyfin/config/custom-cont-init/90-add-group&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/with-contenv bash&lt;br /&gt;
&lt;br /&gt;
FILES=$(find /dev/dri /dev/dvb /dev/vchiq /dev/vc-mem /dev/video1? -type f -print 2&amp;gt;/dev/null)&lt;br /&gt;
&lt;br /&gt;
for i in $FILES&lt;br /&gt;
do&lt;br /&gt;
        if [ -c $i ]; then&lt;br /&gt;
                VIDEO_GID=$(stat -c &amp;#039;%g&amp;#039; &amp;quot;$i&amp;quot;)&lt;br /&gt;
                if ! id -G abc | grep -qw &amp;quot;$VIDEO_GID&amp;quot;; then&lt;br /&gt;
                        VIDEO_NAME=$(getent group &amp;quot;${VIDEO_GID}&amp;quot; | awk -F: &amp;#039;{print $1}&amp;#039;)&lt;br /&gt;
                        if [ -z &amp;quot;${VIDEO_NAME}&amp;quot; ]; then&lt;br /&gt;
                                VIDEO_NAME=&amp;quot;video$(head /dev/urandom | tr -dc &amp;#039;a-zA-Z0-9&amp;#039; | head -c8)&amp;quot;&lt;br /&gt;
                                echo &amp;quot;Creating group $VIDEO_NAME with id $VIDEO_GID&amp;quot;&lt;br /&gt;
                                groupadd &amp;quot;$VIDEO_NAME&amp;quot;&lt;br /&gt;
                                groupmod -g &amp;quot;$VIDEO_GID&amp;quot; &amp;quot;$VIDEO_NAME&amp;quot;&lt;br /&gt;
                        fi&lt;br /&gt;
                        echo &amp;quot;Add group $VIDEO_NAME to abc&amp;quot;&lt;br /&gt;
                        usermod -a -G &amp;quot;$VIDEO_NAME&amp;quot; abc&lt;br /&gt;
                        if [ $(stat -c &amp;#039;%A&amp;#039; &amp;quot;${i}&amp;quot; | cut -b 5,6) != &amp;quot;rw&amp;quot; ]; then&lt;br /&gt;
                                echo -e &amp;quot;**** The device ${i} does not have group read/write permissions, which might prevent hardware transcode from functioning correctly. To fix it, you can run the following on your docker host: ****\nsudo chmod g+rw ${i}\n&amp;quot;&lt;br /&gt;
                        fi&lt;br /&gt;
                fi&lt;br /&gt;
        fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucka</name></author>
	</entry>
</feed>