<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[OnlyServers]]></title><description><![CDATA[OnlyServers]]></description><link>https://blog.onlyservers.sh</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 11:54:09 GMT</lastBuildDate><atom:link href="https://blog.onlyservers.sh/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[ThinkCentre with Intel AMT: BIOS and AMT updates for Linux users]]></title><description><![CDATA[I finally got myself one of those ThinkCentre tiny form-factor PCs to experiment running VMs on, using Proxmox, courtesy of folks over at /r/homelabsales.
BLUF

If your machine came with Windows, try and do all the BIOS/firmware updates to latest ver...]]></description><link>https://blog.onlyservers.sh/thinkcentre-with-intel-amt-bios-and-amt-updates-for-linux-users</link><guid isPermaLink="true">https://blog.onlyservers.sh/thinkcentre-with-intel-amt-bios-and-amt-updates-for-linux-users</guid><category><![CDATA[firmware update]]></category><category><![CDATA[ThinkCentre]]></category><category><![CDATA[Intel-AMT]]></category><category><![CDATA[Homelab]]></category><dc:creator><![CDATA[Only Servers]]></dc:creator><pubDate>Sun, 02 Oct 2022 22:04:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/qCilde9fmTk/upload/v1664747128662/tEcJiqxrp.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I finally got myself one of those ThinkCentre tiny form-factor PCs to experiment running VMs on, using <a target="_blank" href="https://www.proxmox.com/en/">Proxmox</a>, courtesy of folks over at <a target="_blank" href="https://reddit.com/r/homelabsales/"><code>/r/homelabsales</code></a>.</p>
<h1 id="heading-bluf">BLUF</h1>
<ul>
<li>If your machine came with Windows, try and do all the BIOS/firmware updates to latest versions from official website before removing Windows, otherwise <a class="post-section-overview" href="#heading-outdated-bios-management-engine-firmware-updates-fix-vulnerabilities">you'll have to do extra work later!</a><ul>
<li>For <a target="_blank" href="https://fwupd.org/lvfs/devices/">some (newer) models</a>, you may be able to perform updates from Linux</li>
</ul>
</li>
<li><a target="_blank" href="https://virtualizationreview.com/articles/2020/01/13/configuring-intel-amt.aspx">Enable Intel AMT</a> if your machine has it before you put it in a dark closet!<ul>
<li>Some models require a physical monitor connected for VNC to work (check BIOS settings for "virtual monitor" option). However, you should still be able to make it work without a real monitor, if you get a <a target="_blank" href="https://duckduckgo.com/?q=Display+emulator+device&amp;t=ffab&amp;iax=shopping&amp;ia=shopping">display emulator device</a></li>
</ul>
</li>
</ul>
<h1 id="heading-intel-vpro-intel-amt">Intel vPro + Intel AMT</h1>
<p>One of the more exciting features this mini computer comes with is <a target="_blank" href="https://www.intel.com/content/www/us/en/architecture-and-technology/vpro/what-is-vpro.html">Intel vPro and Intel AMT (Active Management Technology)</a>.
What that translates to for HomeLabbers is: fully remote management; so that you don't have to go plug in a monitor and keyboard to troubleshoot issues or perform certain low level system operations (e.g. BIOS setup, Installing new OS, etc).</p>
<h2 id="heading-enabling-intel-amt">Enabling Intel AMT</h2>
<p>Once the computer arrived I went straight to the BIOS settings and enabled said management features after resetting all settings just in case the previous owner changed anything that I didn't want. I was too excited to enable this so I didn't end up taking screenshots, you can look at <a target="_blank" href="https://virtualizationreview.com/articles/2020/01/13/configuring-intel-amt.aspx">this blog post shows you how to enable AMT</a>.
Note that options may vary slightly among vendors and BIOS version, but you should be able to find similar settings.</p>
<p>Now with AMT enabled, I went on another computer in the same network and tried to connect!
<a target="_blank" href="https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fmanageabilityports.htm">Intel lists the management ports here</a>, basically port 16992 for HTTP access and 5900 for VNC.</p>
<p>The HTTP access worked right away and I was greeted with the Login screen, and after logging in the menu of management options:</p>
<table>
<tr>
    <td>    
    <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1664735965472/ijDQZzOJd.png" />
    Login screen
    </td>
  <td>
    
    <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1664736037835/goTTGkvgo.png" />
      Management menu options
    
  </td>
</tr>
</table>

<p>I figured all was good since I could perform some actions like restart and such, so I installed Proxmox and moved the computer to the server closet away from my desk.</p>
<p>Well, I couldn't get VNC to work no matter how hard I tried, and then confirmed VNC port was closed — all after I had done cable management and put everything away 🤦‍♂️.</p>
<h3 id="heading-remote-desktopvnc-meshcentral">Remote Desktop/VNC + MeshCentral</h3>
<p>Some of the Intel tools for AMT are windows only which was a bit disappointing, but looking around I found <a target="_blank" href="https://www.meshcommander.com/meshcentral2">MeshCentral</a> which is an open source project that lets you manage more features than the one that show up on the default HTTP interface. You just have to install it from <code>npm</code>, which I initially setup on my laptop to play with.</p>
<p>That's when I learned more about the VNC feature:
1) VNC port 5900 was not already enabled and didn't see an option in the BIOS, but MeshCentral had an option to let me do that...</p>
<p></p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1664740559357/NxyZC8MJ4.png" />MeshCentral Remote Desktop Settings
2) Once enabled, I was able to connect, but I got a blank screen. Looking around the internet, I found out that depending on your computer, it may or may not require a physical display to be connected (with potentially an option in the BIOS to enable). Not having a physical monitor connected was the main use case for me!<p></p>
<p>At this point I gave up and awkwardly put a monitor in the server closet, and luckily I was able to actually use VNC from this point.</p>
<p>After looking around for mini monitors to help future me, I also learned that <a target="_blank" href="https://duckduckgo.com/?q=Display+emulator+device&amp;t=ffab&amp;iax=shopping&amp;ia=shopping">devices that emulate a display being connected exist</a> so I ordered one to try out soon and "bypass" the requirement of having a physical monitor connected for VNC to work.</p>
<h2 id="heading-outdated-bios-management-engine-firmware-updates-fix-vulnerabilities">Outdated BIOS + Management Engine firmware (updates fix vulnerabilities)</h2>
<p>I wouldn't have gone out of my way to check, but MeshCentral brought to my attention the fact that my management engine firmware version was outdated by showing a yellow warning once connected, linking to an <a target="_blank" href="https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00075.html">Intel page outlining the privilege escalation vulnerability in some AMT versions</a>. Couldn't help it, at that point <em>needed</em> to update the firmware.</p>
<p>Looking around the Lenovo website, I realized that many of those updates were only available for Windows, but I have already gotten rid of Windows the PC came with :(</p>
<p>I was able to get the BIOS update and run it from a Flash drive, however I couldn't find a way to update the management engine easily without Windows for my older machine (*though if you have a newer machine there may be options, check <a target="_blank" href="https://fwupd.org/lvfs/devices/">fwupd here</a>).</p>
<h3 id="heading-older-models-require-windows-for-updates">Older models require Windows for updates</h3>
<p>There are some <a target="_blank" href="https://www.thinkwiki.org/wiki/Intel_Active_Management_Technology_(AMT)">ways to avoid running Windows on the host you want to update</a> ... but they're too much work, essentially requiring the use of another Windows "host" (could be VM) to prepare <a target="_blank" href="https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-intro?view=windows-11">WinPE</a> with the firmware updates you want to install.
Among others, <a target="_blank" href="https://github.com/iperdomo/update-intel-me-using-linux/blob/master/README.md">this guide seemed promising</a>, but it again, it looked like a lot more work than I would have liked!</p>
<h3 id="heading-fine-windows-it-is-lets-get-it-over-with">Fine, Windows it is, let's get it over with</h3>
<p>I decided to just try installing Windows on a flash drive and go through the "official" installation process - and that worked great! This was both less work than setting up all the WinPE stuff and also potentially useful in the future since I can reuse the flash drive for any further updates every now and then.</p>
<p>I used <a target="_blank" href="https://www.easyuefi.com/wintousb/">WinToUsb</a> to install Windows on a flash drive, (unfortunately had to do from another Windows host) and then boot up from that and download all the Lenovo updates — through VNC!</p>
<p>(* I installed a Windows VM on Proxmox and mounted the Flash Drive on the ThinkCentre since I don't have any other Windows hosts home, but you can use any Windows machine you may have!)</p>
<p>Once running Windows, I installed "Lenovo Vantage" hoping it would do all the updates, but sadly it didn't show any of the firmware or BIOS updates for me (I had already done the BIOS using official ISO), but you may want to try it first since it may be a bit easier to get updates that way.</p>
<p>Since the only remaining update I had at the time was the AMT firmware, I downloaded the installer from the website and ran it — it worked right away! You'll have to look around the downloads section and since this is a process, try to get all the available updates to perform in one go.</p>
<table>
<tr>  <td>
  
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1664746050411/ZUgXmuXMU.png" />
Firmware update tool download page

  </td>
<td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1664746144947/a5zok2CIS.png" />
Screenshot of updater tool

</td>
</tr>
</table>

<p>And now, finally, done with Windows until the next update!
Rebooted to Proxmox and happily playing with VMs!</p>
]]></content:encoded></item><item><title><![CDATA[Using a custom folder with Synology Photos DSM7]]></title><description><![CDATA[Synology Photos is a nice option to browse your photos on both the web interface and the available apps.
It comes with nice bells and whistles, like face recognition and folder & timeline views, to name a few. 
However, at the time of writing this, t...]]></description><link>https://blog.onlyservers.sh/using-a-custom-folder-with-synology-photos-dsm7</link><guid isPermaLink="true">https://blog.onlyservers.sh/using-a-custom-folder-with-synology-photos-dsm7</guid><dc:creator><![CDATA[Only Servers]]></dc:creator><pubDate>Sun, 17 Apr 2022 18:59:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/gQdPafWDSyk/upload/v1650210529988/7sQyeQi2x.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://www.synology.com/en-us/DSM70/SynologyPhotos">Synology Photos</a> is a nice option to browse your photos on both the web interface and the available apps.</p>
<p>It comes with nice bells and whistles, like face recognition and folder &amp; timeline views, to name a few. </p>
<p>However, at the time of writing this, there are only two official locations Synology Photos indexes from:</p>
<ul>
<li>Personal Space: <code>/home/Photos/</code></li>
<li>Shared Space: <code>/photos/</code></li>
</ul>
<p>What if you already have your own organization scheme, with say, custom Cloud Sync setup and you want to preserve that?</p>
<p>I've been in that exact position, and it turns out you can get it to work.</p>
<blockquote>
<p>🚨 **This is not officially supported by Synology so it may stop working in future updates.</p>
</blockquote>
<h4 id="heading-what-didnt-work">What didn't work</h4>
<p>I initially tried a symlink, thinking it would work fine.
That <em>did not</em> work, particularly no thumbnails were generated. (e.g. <code>ln -s /volume1/home/onlyservers/custom/photofolder /volume1/photo/customfolder</code>).</p>
<h1 id="heading-what-does-work">What does work</h1>
<p>Bind mounts. A few google searches can lead to this <a target="_blank" href="https://www.reddit.com/r/synology/comments/qjmv93/synology_photos_not_reading_a_symlinked_folder/">reddit thread</a> which was a good starting point.</p>
<ul>
<li>This blog post walks you through setting up a bind mount for the "Shared Space", however updating the paths to "Personal Space" equivalent paths should still work.*</li>
</ul>
<h2 id="heading-step-0-backup">Step 0: Backup</h2>
<p>Just in case anything goes wrong, you should backup the folders in question at the very least.
Double check the commands you're running as they need to be running as <code>root</code> and accidents happen. Make sure you understand what is going on. If not familiar, you should understand <a target="_blank" href="https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount">what bind mounts are</a>.</p>
<h2 id="heading-step-1-decide-mount-point-and-source">Step 1: Decide mount point and source</h2>
<p>You will need to figure out the absolute path to your "source" directory. That should look somewhat like <code>/volume1/homes/onlyservers/custom/photofolder</code>.</p>
<p>To find it, browse to that directory in File Station -&gt; Right Click -&gt; Properties: it's the <code>Location</code> field.
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650221444623/GPzjgjoFu.png" alt="image.png" /></p>
<p>If you only have one volume, chances are that the <code>photo</code> directory it's the same as shown here, if you have multiple volumes or want to confirm, check the Location field in the properties of your <code>photo</code> share in DSM to confirm.</p>
<p>You will then want to create your "target" directory (e.g.  <code>/volume1/photo/customfolder</code>) and <em>make sure it's empty</em>.
You can, again, grab the absolute path by looking at the "Location" on the properties page.</p>
<p>This guide assumes:</p>
<ul>
<li>Source directory: <code>/volume1/home/onlyservers/custom/photofolder</code></li>
<li>Target directory:  <code>/volume1/photo/customfolder</code>.
<em>Make sure to update those to whatever your directories are in all of the following commands.</em></li>
</ul>
<h2 id="heading-step-2-mount">Step 2: Mount</h2>
<p>What we're doing here is setting up a bind mount from "source" to "target" directories. (similar to <code>cp</code> syntax).</p>
<p>Since you will want this to be always mounted, you can set it up to be run at start-up.</p>
<p>You can do so by going to Control Panel -&gt; Task Scheduler -&gt; Create -&gt; Scheduled Task -&gt; <strong>Triggered Task -&gt; User-defined script:</strong>
Then you'll want to give it a human readable name, run it as <code>root</code> and choose the <code>Boot-up</code> event:</p>
<table>
<tr>
<td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650212852670/hSWNWic7S.png" alt="image.png" />
</td><td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650215168578/Tj413XDjO.png" alt="image.png" />
</td>
</tr>
</table>

<p>The command to mount looks like:
(remember to update paths to your own values!)</p>
<pre><code class="lang-bash">sudo mount --<span class="hljs-built_in">bind</span> <span class="hljs-string">"/volume1/home/onlyservers/custom/photofolder"</span> <span class="hljs-string">"/volume1/photo/customfolder"</span>
</code></pre>
<h2 id="heading-step-3-re-index-periodically">Step 3: Re-index periodically</h2>
<p>Unfortunately, using this method causes the automatic indexing to not be triggered, thus your new pictures won't show up unless a re-index is triggered.</p>
<p>Not to worry! We can just create another scheduled task to re-index.</p>
<p>Similar to Step 2, go to Control Panel -&gt; Task Scheduler -&gt; Scheduled Task -&gt;<strong> User Defined Script:</strong></p>
<p>Give this a reasonable name again, run it as <code>root</code> and pick your preferred schedule - how long are you willing to wait until pictures show up? (I figured once a day is fast enough for my needs).</p>
<table>
<tr><td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650216650945/aT-IjX4Tj.png" alt="image.png" /></td>
<td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650216681619/AigvO746C.png" alt="image.png" /></td>
<td>
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650220161718/4Dryv8hlX.png" alt="image.png" />
</td>
</tr>
</table>

<p>The command to re-index is: (again, update paths as necessary)</p>
<pre><code class="lang-bash">sudo /var/packages/SynologyPhotos/target/usr/bin/synofoto-bin-index-tool -t basic -i /volume1/photo/
</code></pre>
<h2 id="heading-step-4-verify">Step 4: Verify</h2>
<p>Now reboot the Synology, and browse to the <code>photo</code> share in File Station to confirm that the mount worked and that you see the contents of your original directory.</p>
<p>Once you confirm everything is good, you can trigger the indexing via running the task created in step 3, or if you're patient, just wait until it gets invoked on the schedule you chose!</p>
<p>Note that it <em>takes a while to index and create thumbnails.</em>
If you don't see anything in Synology Photos, give it a few hours and check back. Once indexing is done, photos do show up but without thumbnails and functionality is limited until thumbnails are produced.</p>
<p>When indexing is done, you should also be able to see this on the toolbar of DSM, saying it's processing images/videos (creating thumbnails) until it's done with thumbnails too: 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1650220274629/0U3wmgPvn.png" alt="image.png" /></p>
<p>Congrats! You should now be able to use Synology Photos AND keep your original organization scheme — once indexing and thumbnail generation completes!</p>
]]></content:encoded></item><item><title><![CDATA[Hello, reader!]]></title><description><![CDATA[S: 220 smtp.onlyservers.sh ESMTP Postfix
C: HELO relay.onlyservers.sh
S: 250 Hello relay.onlyservers.sh, I am glad to meet you
C: MAIL FROM:<root@onlyservers.sh>
S: 250 Ok
C: RCPT TO:<reader@localhost.onlyservers.sh>
S: 250 Ok
C: DATA
S: 354 End data...]]></description><link>https://blog.onlyservers.sh/hello-reader</link><guid isPermaLink="true">https://blog.onlyservers.sh/hello-reader</guid><dc:creator><![CDATA[Only Servers]]></dc:creator><pubDate>Sat, 22 Jan 2022 18:43:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/UrtxBX5i5SE/upload/v1642876951104/8R85Ar0qe.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<pre><code class="lang-telnet">S: 220 smtp.onlyservers.sh ESMTP Postfix
C: HELO relay.onlyservers.sh
S: 250 Hello relay.onlyservers.sh, I am glad to meet you
C: MAIL FROM:&lt;root@onlyservers.sh&gt;
S: 250 Ok
C: RCPT TO:&lt;reader@localhost.onlyservers.sh&gt;
S: 250 Ok
C: DATA
S: 354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;
C: From: "Friendly Server" &lt;root@onlyservers.sh&gt;
C: To: "${AwesomeReader}" &lt;reader@onlyservers.sh&gt;
C: Date: Sat, 22 Jan 2022 16:05:20 -0500
C: Subject: Hello, reader.
C:
C: Hello ${AwesomeReader}
C: This blog is about all things servers, 
C: emphasizing on home servers. 
C: Edge, cloud, oceanic, and extraterrestrial servers 
C: servers may inevitably appear.
C: .
S: 250 Ok: queued as 127001
C: QUIT
S: 221 Bye
</code></pre>
]]></content:encoded></item></channel></rss>