{"id":2332,"date":"2024-06-04T16:49:24","date_gmt":"2024-06-04T15:49:24","guid":{"rendered":"https:\/\/ryeroxley.com\/?p=2332"},"modified":"2024-06-05T16:43:43","modified_gmt":"2024-06-05T15:43:43","slug":"how-to-install-jailmaker-on-truenas-scale","status":"publish","type":"post","link":"https:\/\/ryeroxley.com\/index.php\/2024\/06\/04\/how-to-install-jailmaker-on-truenas-scale\/","title":{"rendered":"How to Install Jailmaker on TrueNAS Scale"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2332\" class=\"elementor elementor-2332\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6fc8cc3 e-flex e-con-boxed e-con e-parent\" data-id=\"6fc8cc3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4dd2bf8 elementor-widget elementor-widget-text-editor\" data-id=\"4dd2bf8\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"introduction\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Jailmaker is a Docker-related program designed to enhance security and isolation by creating confined environments, often referred to as &#8220;jails,&#8221; within a system. These jails can securely run applications or processes with restricted permissions, minimizing the risk of those applications affecting the rest of the system.<\/p><h2>Table of Contents<\/h2><ol><li><a href=\"#introduction\" rel=\"noreferrer\">Introduction<\/a><\/li><li><a href=\"#key-features\" rel=\"noreferrer\">Key Features<\/a><\/li><li><a href=\"#setting-up-jailmaker-on-truenas-scale\" rel=\"noreferrer\">Setting Up Jailmaker on TrueNAS Scale<\/a><\/li><li><a href=\"#installing-jailmaker\" rel=\"noreferrer\">Installing Jailmaker<\/a><\/li><li><a href=\"#creating-a-shell-alias\" rel=\"noreferrer\" data-wplink-edit=\"true\">Creating a Shell Alias<\/a><\/li><li><a href=\"#setting-jailmaker-to-run-at-startup\" rel=\"noreferrer\" data-wplink-edit=\"true\">Setting Jailmaker to Run at Startup<\/a><\/li><li><a href=\"#testing-jailmaker\" rel=\"noreferrer\" data-wplink-edit=\"true\">Testing Jailmaker<\/a><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-432f2ca elementor-widget elementor-widget-text-editor\" data-id=\"432f2ca\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"introduction\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Introduction<\/h2><p>Jailmaker enhances Docker\u2019s capabilities by providing robust isolation and security features, making it a valuable tool for environments where security is a top priority. Within TrueNAS Scale, I use Jailmaker to manage my Docker containers.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-370d4a8 elementor-widget elementor-widget-text-editor\" data-id=\"370d4a8\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"key-features\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Key Features<\/h2><ol><li><strong>Isolation:<\/strong> Jailmaker focuses on creating isolated environments where processes can run without interfering with each other or the host system. This is similar to Docker\u2019s containerization approach but with a stronger emphasis on security.<\/li><li><strong>Security:<\/strong> By confining processes within a jail, Jailmaker helps prevent potential security breaches. If an application within a jail is compromised, the damage is contained and does not affect the host system.<\/li><li><strong>Lightweight:<\/strong> Jailmaker aims to be lightweight, providing a minimal overhead environment for applications. This makes it efficient regarding resource usage, similar to Docker containers.<\/li><li><strong>Compatibility:<\/strong> Jailmaker is designed to work seamlessly with Docker, complementing Docker\u2019s capabilities by adding an extra layer of security and isolation. It can be used to create more secure containers within a Docker environment.<\/li><li><strong>Use Cases:<\/strong> Jailmaker is suitable for scenarios where enhanced security is critical, such as running untrusted code, providing multi-tenant environments, or hosting applications with stringent security requirements<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b75f1ae elementor-widget elementor-widget-text-editor\" data-id=\"b75f1ae\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"setting-up-jailmaker-on-truenas-scale\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Setting Up Jailmaker on TrueNAS Scale<\/h2><p>To set up the required storage:<\/p><ol><li><strong>Organize Datasets:<\/strong><ul><li>Create datasets within the apps pool for the apps.<\/li><li>Create datasets within the appdata pool for the app data.<\/li><li>Use the built-in apps user (UID 568) and apps group (GID 568) for all apps.<\/li><\/ul><\/li><\/ol><h3>Steps to Set Up Jailmaker:<\/h3><ol><li><strong>Create a Dataset:<\/strong><ul><li>Create a dataset named &#8220;jailmaker&#8221; within the apps pool.<\/li><\/ul><\/li><li><strong>Set Up Docker Dataset:<\/strong><ul><li>In the appdata pool, set up a Docker dataset for Docker data.<\/li><\/ul><\/li><li><strong>Create Additional Datasets:<\/strong><ul><li>Create datasets named &#8220;data&#8221; and &#8220;stacks&#8221; for Docker.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-55c69d6 e-flex e-con-boxed e-con e-parent\" data-id=\"55c69d6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f082d7c elementor-widget elementor-widget-image\" data-id=\"f082d7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"File Management Interface with Dataset Details\" data-elementor-lightbox-description=\"The screenshot displays a file management interface with multiple datasets listed under &quot;Dataset Name.&quot; Each dataset shows its name, used and available storage space, encryption status, and assigned roles. Datasets include &quot;appdata,&quot; &quot;docker,&quot; &quot;data,&quot; &quot;stacks,&quot; &quot;openebs,&quot; &quot;apps,&quot; &quot;ix-applications,&quot; &quot;jailmaker,&quot; and &quot;data.&quot; The storage space is displayed in various units such as MiB, GiB, and TiB.\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjM0MiwidXJsIjoiaHR0cHM6XC9cL3J5ZXJveGxleS5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjRcLzA2XC9pbWFnZS53ZWJwIn0%3D\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1024x478.webp\" class=\"attachment-large size-large wp-image-2342\" alt=\"A screenshot of a file management interface showing various datasets and their details.\" srcset=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1024x478.webp 1024w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-300x140.webp 300w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-768x358.webp 768w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1536x717.webp 1536w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image.webp 1802w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3baa1c6 e-flex e-con-boxed e-con e-parent\" data-id=\"3baa1c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b1719f elementor-widget elementor-widget-text-editor\" data-id=\"1b1719f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol start=\"4\"><li><strong>Set Permissions:<\/strong><ul><li>Set the permissions for the Docker datasets to user \u201capps\u201d and group \u201capps\u201d with group write privileges. Apply these settings recursively if necessary.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29b8850 elementor-widget elementor-widget-text-editor\" data-id=\"29b8850\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"installing-jailmaker\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4>Installing Jailmaker:<\/h4><ol><li>Get the URL of the files:<ul><li>From <a href=\"https:\/\/github.com\/Jip-Hop\/jailmaker.git\" target=\"_new\" rel=\"noreferrer noopener\">this GitHub repository<\/a>. (this should be https:\/\/github.com\/Jip-Hop\/jailmaker.git)<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e02f83a e-flex e-con-boxed e-con e-parent\" data-id=\"e02f83a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c2ccaa elementor-widget elementor-widget-image\" data-id=\"2c2ccaa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"GitHub Repository - Jip-Hop\" data-elementor-lightbox-description=\"This screenshot shows the main branch of the GitHub repository named Jip-Hop. The interface displays various files and folders including .github\/ISSUE_TEMPLATE, docs, templates, .gitignore, LICENSE, README.md, and jlmkr.py. There is an open dropdown menu under the &quot;Code&quot; button on the right side, offering options to clone the repository via HTTPS, GitHub CLI, or download it as a ZIP file. The repository indicates recent updates, such as bumping the version to 2.0.0.\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjM0MywidXJsIjoiaHR0cHM6XC9cL3J5ZXJveGxleS5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjRcLzA2XC9pbWFnZS0xLndlYnAifQ%3D%3D\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1-1024x539.webp\" class=\"attachment-large size-large wp-image-2343\" alt=\"Screenshot of a GitHub repository named Jip-Hop, displaying the main branch with various files and folders.\" srcset=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1-1024x539.webp 1024w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1-300x158.webp 300w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1-768x404.webp 768w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-1.webp 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-22c4ac9 e-flex e-con-boxed e-con e-parent\" data-id=\"22c4ac9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b345a4 elementor-widget elementor-widget-text-editor\" data-id=\"4b345a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol start=\"2\">\n \t<li>Open a CLI shell on your TrueNAS Scale.<\/li>\n<ul>\n \t<li>Change to the apps directory:<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ccfd8bc e-flex e-con-boxed e-con e-parent\" data-id=\"ccfd8bc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d70964 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"0d70964\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>cd \/mnt\/apps<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-72bd66e e-flex e-con-boxed e-con e-parent\" data-id=\"72bd66e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39ad1e2 elementor-widget elementor-widget-text-editor\" data-id=\"39ad1e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>Clone the Git repository:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-656a504 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"656a504\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>sudo git clone https:\/\/github.com\/Jip-Hop\/jailmaker.git<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5de521d e-flex e-con-boxed e-con e-parent\" data-id=\"5de521d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73ff9f0 elementor-widget elementor-widget-text-editor\" data-id=\"73ff9f0\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"creating-a-shell-alias\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Creating a Shell Alias<\/h2><p>To conveniently run <code>jlmkr.py<\/code> without needing to change into the jailmaker directory or specify the full absolute path, create a shell alias for the currently logged-in admin user:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2280c87 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"2280c87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>echo &quot;alias jlmkr=\\&quot;sudo &#039;\/mnt\/apps\/jailmaker\/jlmkr.py&#039;\\&quot;&quot; &gt;&gt; ~\/.zshrc<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-97dea87 elementor-widget elementor-widget-text-editor\" data-id=\"97dea87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To use the alias immediately, run:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6351b62 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"6351b62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>source ~\/.zshrc<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9cf0ab3 e-flex e-con-boxed e-con e-parent\" data-id=\"9cf0ab3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e2cd96e elementor-widget elementor-widget-text-editor\" data-id=\"e2cd96e\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"setting-jailmaker-to-run-at-startup\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4>Setting Jailmaker to Run at Startup:<\/h4><ol><li>Go to <strong>System Settings &gt; Advanced<\/strong>.<ul><li>In the <strong>Init\/Shutdown Scripts<\/strong> panel, click <strong>Add<\/strong>.<\/li><li>Close and accept the warning.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ae4eaf9 e-flex e-con-boxed e-con e-parent\" data-id=\"ae4eaf9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ad3c88 elementor-widget elementor-widget-image\" data-id=\"4ad3c88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/Pasted.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"Init\/Shutdown Scripts Management Interface\" data-elementor-lightbox-description=\"The image shows a dark-themed interface for managing initialization and shutdown scripts. The interface has columns labeled Command\/Script, Description, When, and Enabled. A highlighted &#039;Add&#039; button is present in the top right corner, and the message &quot;No records have been added yet&quot; is displayed in the main section.\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjM1MywidXJsIjoiaHR0cHM6XC9cL3J5ZXJveGxleS5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjRcLzA2XC9QYXN0ZWQud2VicCJ9\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"740\" height=\"462\" src=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/Pasted.webp\" class=\"attachment-large size-large wp-image-2353\" alt=\"Interface for managing Init\/Shutdown Scripts with no records added yet and a highlighted &apos;Add&apos; button.\" srcset=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/Pasted.webp 740w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/Pasted-300x187.webp 300w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f203f9 elementor-widget elementor-widget-text-editor\" data-id=\"7f203f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol start=\"2\"><li>Enter Script Details:<ul><li>Enter an appropriate description for the script, such as \u201cStart Jailmaker.\u201d<\/li><li>Leave the Type as \u201cCommand\u201d and enter the path to the script followed by \u201cStartup\u201d:<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bacbbe2 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"bacbbe2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>\/mnt\/apps\/jailmaker\/jlmkr.py startup<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8b4b22a e-flex e-con-boxed e-con e-parent\" data-id=\"8b4b22a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ca1090 elementor-widget elementor-widget-text-editor\" data-id=\"7ca1090\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol><li style=\"list-style-type: none;\"><ul><li>Increase the timeout to 30 seconds.<\/li><li>Click <strong>Save<\/strong>.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-23e9ad4 e-flex e-con-boxed e-con e-parent\" data-id=\"23e9ad4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f880c18 elementor-widget elementor-widget-image\" data-id=\"f880c18\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-2.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"Add Init\/Shutdown Script Interface\" data-elementor-lightbox-description=\"The interface displays options to configure a script with fields for Description, Type, Command, When to run, and a Timeout setting. The &quot;Enabled&quot; checkbox is checked, and the &quot;Save&quot; button is visible at the bottom. The example script shown is &quot;\/mnt\/apps\/jailmaker\/jlmkr.py startup&quot;.\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjM1NSwidXJsIjoiaHR0cHM6XC9cL3J5ZXJveGxleS5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjRcLzA2XC9pbWFnZS0yLndlYnAifQ%3D%3D\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"1024\" src=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-2-692x1024.webp\" class=\"attachment-large size-large wp-image-2355\" alt=\"A form interface for adding an initialization or shutdown script in a software application.\" srcset=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-2-692x1024.webp 692w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-2-203x300.webp 203w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-2.webp 755w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a9f94e9 e-flex e-con-boxed e-con e-parent\" data-id=\"a9f94e9\" data-element_type=\"container\" data-e-type=\"container\" id=\"testing-jailmaker\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f9b8d0d elementor-widget elementor-widget-text-editor\" data-id=\"f9b8d0d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Testing Jailmaker<\/h2><p>To ensure Jailmaker is working, type the following at the prompt:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9125e1d e-flex e-con-boxed e-con e-parent\" data-id=\"9125e1d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eedf00e elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"eedf00e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-javascript'>jlmkr list<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e9f9914 e-flex e-con-boxed e-con e-parent\" data-id=\"e9f9914\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e475480 elementor-widget elementor-widget-text-editor\" data-id=\"e475480\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Since this command runs through the sudo alias, you will be prompted for your password. Jailmaker will return &#8220;No jails.&#8221;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09e2674 elementor-widget elementor-widget-image\" data-id=\"09e2674\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"992\" height=\"225\" src=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-3.webp\" class=\"attachment-large size-large wp-image-2362\" alt=\"A PuTTY terminal window displaying a command prompt with the result of a jail list command on a TrueNAS system, indicating &quot;No jails.&quot;\" srcset=\"https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-3.webp 992w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-3-300x68.webp 300w, https:\/\/ryeroxley.com\/wp-content\/uploads\/2024\/06\/image-3-768x174.webp 768w\" sizes=\"(max-width: 992px) 100vw, 992px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Jailmaker is a Docker-related program designed to enhance security and isolation by creating confined environments, often referred to as &#8220;jails,&#8221; within a system. These jails can securely run applications or processes with restricted permissions, minimizing the risk of those applications affecting the rest of the system. Table of Contents Introduction Key Features Setting Up Jailmaker [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[27,7],"tags":[],"class_list":["post-2332","post","type-post","status-publish","format-standard","hentry","category-jailmaker","category-truenas-scale"],"_links":{"self":[{"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/posts\/2332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/comments?post=2332"}],"version-history":[{"count":48,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/posts\/2332\/revisions"}],"predecessor-version":[{"id":2431,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/posts\/2332\/revisions\/2431"}],"wp:attachment":[{"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/media?parent=2332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/categories?post=2332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ryeroxley.com\/index.php\/wp-json\/wp\/v2\/tags?post=2332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}