<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Архивы Private cloud with Linux - Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</title>
	<atom:link href="https://boxvirt.com/tag/private-cloud-with-linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://boxvirt.com/tag/private-cloud-with-linux/</link>
	<description>Practical self-hosted infrastructure guides for Proxmox, OPNsense, and Docker.</description>
	<lastBuildDate>Sat, 19 Jul 2025 22:11:25 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://boxvirt.com/wp-content/uploads/2025/07/cropped-ChatGPT-Image-12-июл.-2025-г.-19_41_55-32x32.png</url>
	<title>Архивы Private cloud with Linux - Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</title>
	<link>https://boxvirt.com/tag/private-cloud-with-linux/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Full Deployment of Nextcloud in a Proxmox LXC Container (No Docker)</title>
		<link>https://boxvirt.com/full-deployment-of-nextcloud-in-a-proxmox-lxc-container-no-docker/</link>
					<comments>https://boxvirt.com/full-deployment-of-nextcloud-in-a-proxmox-lxc-container-no-docker/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 18:53:15 +0000</pubDate>
				<category><![CDATA[Nextcloud]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Nextcloud on LXC]]></category>
		<category><![CDATA[Private cloud with Linux]]></category>
		<category><![CDATA[Proxmox homelab setup]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=28</guid>

					<description><![CDATA[<p>🔧 What You’ll Get 🧱 Step 1: Create the LXC Container in Proxmox 📝 Optional: mount extra Proxmox storage (ZFS/NFS) for user files. ⚙️ Step 2: Prepare the [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/full-deployment-of-nextcloud-in-a-proxmox-lxc-container-no-docker/">Full Deployment of Nextcloud in a Proxmox LXC Container (No Docker)</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> What You’ll Get</h3>



<ul class="wp-block-list">
<li>A fully working <strong>Nextcloud server</strong> on Ubuntu 24.04 inside a Proxmox <strong>LXC container</strong></li>



<li>Complete setup: <strong>Apache + MariaDB + PHP</strong> (no Docker)</li>



<li>Proper permissions, security, performance tweaks</li>



<li>Ready for <strong>SSL</strong>, backups, and external storage</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9f1.png" alt="🧱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 1: Create the LXC Container in Proxmox</h3>



<ol class="wp-block-list">
<li>In Proxmox UI, click <code>Create CT</code></li>



<li>Select Ubuntu 24.04 LTS as the template</li>



<li>Assign resources:
<ul class="wp-block-list">
<li>2+ vCPU</li>



<li>2+ GB RAM</li>



<li>10+ GB disk</li>
</ul>
</li>



<li><strong>Enable nesting</strong> under the &#171;Features&#187; tab</li>



<li>Set hostname, password, static IP (or DHCP)</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Optional: mount extra Proxmox storage (ZFS/NFS) for user files.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 2: Prepare the System (Inside Container)</h3>



<pre class="wp-block-preformatted"><code>apt update &amp;&amp; apt upgrade -y<br>apt install sudo unzip ufw htop curl software-properties-common -y<br></code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>You can add a non-root user and configure SSH if needed.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 3: Install Apache and Required PHP Packages</h3>



<pre class="wp-block-preformatted"><code>apt install apache2 -y<br>add-apt-repository ppa:ondrej/php -y &amp;&amp; apt update<br>apt install php8.2 php8.2-{cli,common,gd,mysql,xml,mbstring,zip,curl,intl,bcmath,imagick} libapache2-mod-php8.2 -y<br></code></pre>



<p>Enable important modules:</p>



<pre class="wp-block-preformatted"><code>a2enmod rewrite headers env dir mime ssl<br>systemctl restart apache2<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f6e2.png" alt="🛢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 4: Install and Configure MariaDB</h3>



<pre class="wp-block-preformatted"><code>apt install mariadb-server -y<br>mysql_secure_installation<br></code></pre>



<p>Then configure the database:</p>



<pre class="wp-block-preformatted"><code>CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;<br>CREATE USER 'ncuser'@'localhost' IDENTIFIED BY 'yourStrongPassword';<br>GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncuser'@'localhost';<br>FLUSH PRIVILEGES;<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2601.png" alt="☁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 5: Download and Deploy Nextcloud</h3>



<pre class="wp-block-preformatted"><code>cd /var/www/<br>wget https://download.nextcloud.com/server/releases/latest.zip<br>unzip latest.zip &amp;&amp; rm latest.zip<br>chown -R www-data:www-data nextcloud<br>chmod -R 755 nextcloud<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f30d.png" alt="🌍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 6: Apache Virtual Host</h3>



<pre class="wp-block-preformatted"><code>nano /etc/apache2/sites-available/nextcloud.conf<br></code></pre>



<p>Paste this config:</p>



<pre class="wp-block-preformatted"><code>&lt;VirtualHost *:80><br>    ServerAdmin admin@yourdomain.com<br>    DocumentRoot /var/www/nextcloud<br>    ServerName cloud.yourdomain.com<br><br>    &lt;Directory /var/www/nextcloud/><br>        Options +FollowSymlinks<br>        AllowOverride All<br>        Require all granted<br>    &lt;/Directory><br><br>    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log<br>    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined<br>&lt;/VirtualHost><br></code></pre>



<p>Then:</p>



<pre class="wp-block-preformatted"><code>a2ensite nextcloud.conf<br>systemctl reload apache2<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 7: (Optional) Set Up HTTPS with Let&#8217;s Encrypt</h3>



<p>If DNS is set:</p>



<pre class="wp-block-preformatted"><code>apt install certbot python3-certbot-apache -y<br>certbot --apache -d cloud.yourdomain.com<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 8: Finalize via Web Interface</h3>



<ol class="wp-block-list">
<li>Visit <code>http://&lt;your_ip></code> or domain</li>



<li>Create admin account</li>



<li>Provide:
<ul class="wp-block-list">
<li>Database name: <code>nextcloud</code></li>



<li>DB user: <code>ncuser</code></li>



<li>Password: <code>yourStrongPassword</code></li>
</ul>
</li>



<li>Hit <strong>Install</strong></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Optional Enhancements</h3>



<ul class="wp-block-list">
<li>Enable <strong>PHP OPcache</strong>, <strong>APCu</strong>, and <strong>Redis</strong></li>



<li>Configure external storage (SMB/NFS)</li>



<li>Integrate with Collabora or OnlyOffice</li>



<li>Set up <strong>automated backups</strong> (e.g., Borg, rsync)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup Snapshot Tip (Proxmox)</h3>



<p>Before starting syncs/uploads, create a snapshot:</p>



<pre class="wp-block-preformatted"><code>pct snapshot 101 "fresh-installed-nextcloud"<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Summary</h3>



<p>By following this guide, you’ve built a private cloud using modern tools without Docker or Snap. Your system is modular, lightweight, and easy to backup. Perfect for home labs, professionals, and privacy-focused users.</p>
<p>Сообщение <a href="https://boxvirt.com/full-deployment-of-nextcloud-in-a-proxmox-lxc-container-no-docker/">Full Deployment of Nextcloud in a Proxmox LXC Container (No Docker)</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/full-deployment-of-nextcloud-in-a-proxmox-lxc-container-no-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Secure DNS with DNS-over-TLS in OPNsense Using Unbound</title>
		<link>https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/</link>
					<comments>https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/#respond</comments>
		
		<dc:creator><![CDATA[eXtre]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 17:12:31 +0000</pubDate>
				<category><![CDATA[OPNsense]]></category>
		<category><![CDATA[OPNsense firewall configuration]]></category>
		<category><![CDATA[Private cloud with Linux]]></category>
		<category><![CDATA[Self-hosted cloud alternatives]]></category>
		<guid isPermaLink="false">https://boxvirt.com/?p=7</guid>

					<description><![CDATA[<p>Introduction DNS-over-TLS (DoT) encrypts DNS traffic, preventing third-party monitoring or tampering. OPNsense, a popular open-source firewall, supports DoT out of the box through the integrated Unbound DNS resolver. [&#8230;]</p>
<p>Сообщение <a href="https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/">How to Secure DNS with DNS-over-TLS in OPNsense Using Unbound</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<p></p>



<h3 class="wp-block-heading">Introduction</h3>



<p>DNS-over-TLS (DoT) encrypts DNS traffic, preventing third-party monitoring or tampering. OPNsense, a popular open-source firewall, supports DoT out of the box through the integrated Unbound DNS resolver. This guide walks you through setting up encrypted DNS using Unbound for improved security and privacy.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">What is Unbound DNS?</h3>



<p>Unbound is a modern, high-performance recursive DNS resolver developed by NLnet Labs. Within OPNsense, Unbound acts as the system’s default DNS engine. Instead of relying on third-party resolvers like Google or Cloudflare, Unbound performs full DNS resolution by querying root servers directly.</p>



<h4 class="wp-block-heading">Core Capabilities of Unbound:</h4>



<ul class="wp-block-list">
<li>Full support for DNSSEC to validate DNS integrity</li>



<li>Local DNS overrides for internal hosts</li>



<li>Native DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH) support</li>



<li>Per-client access controls</li>



<li>Fast, efficient DNS caching</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Why Use Unbound in OPNsense?</h3>



<h4 class="wp-block-heading">1. <strong>Enhanced Security</strong></h4>



<ul class="wp-block-list">
<li>Encrypted DNS queries using DoT help prevent eavesdropping and manipulation.</li>



<li>DNSSEC ensures responses are verified at every step of resolution.</li>



<li>Recursive resolution eliminates dependency on upstream DNS providers.</li>
</ul>



<h4 class="wp-block-heading">2. <strong>High Performance</strong></h4>



<ul class="wp-block-list">
<li>Lightweight and resource-efficient — ideal even for embedded systems.</li>



<li>Local caching drastically reduces latency for repeated queries.</li>



<li>Optimized for real-time performance, even under high load.</li>
</ul>



<h4 class="wp-block-heading">3. <strong>Advanced Control</strong></h4>



<ul class="wp-block-list">
<li>Full customization of DNS zones, blacklists, and redirects.</li>



<li>Restrict access by IP, interface, or query type.</li>



<li>Easily integrates with VLANs, aliases, and firewall policies.</li>
</ul>



<h4 class="wp-block-heading">4. <strong>Privacy Focused</strong></h4>



<ul class="wp-block-list">
<li>No DNS logs by default — ideal for privacy-conscious setups.</li>



<li>Completely avoids third-party DNS services unless explicitly configured.</li>
</ul>



<h4 class="wp-block-heading">5. <strong>Seamless Integration with OPNsense</strong></h4>



<ul class="wp-block-list">
<li>Managed through a simple web UI</li>



<li>Ties into DHCP static mappings</li>



<li>Works harmoniously with other OPNsense services</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Limitations to Consider</h3>



<h4 class="wp-block-heading">1. <strong>Cold Start Latency</strong></h4>



<p>Initial queries can be slower than cloud DNS providers, especially after reboots or cache clears, since Unbound must resolve each domain from scratch.</p>



<h4 class="wp-block-heading">2. <strong>Manual Configuration Needed</strong></h4>



<p>Features like DoT, DNS blocklists, or custom rules often require deeper configuration. This can be challenging for beginners.</p>



<h4 class="wp-block-heading">3. <strong>No Built-In Ad Blocking</strong></h4>



<p>Unbound doesn&#8217;t block ads out of the box. Users must manually configure and maintain DNS blocklists.</p>



<h4 class="wp-block-heading">4. <strong>Minimal Logging &amp; GUI</strong></h4>



<p>Unlike Pi-hole or AdGuard Home, Unbound lacks a rich dashboard or per-client query log. Power users may need additional tools to monitor DNS traffic.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Step-by-Step: Enabling DNS-over-TLS in OPNsense</h3>



<h4 class="wp-block-heading">Part 1: Configure DoT in Unbound</h4>



<p></p>



<ol class="wp-block-list">
<li>Go to <strong>Services → Unbound DNS → DNS over TLS</strong> in the OPNsense web GUI.</li>



<li>Click <strong>Add (+)</strong> to create a new DoT entry.</li>



<li>Enable the entry by ticking the <strong>Enabled</strong> checkbox.</li>



<li>Leave the <strong>Domain</strong> field blank to apply forwarding globally.</li>



<li>Specify the DNS server’s IP (e.g., <code>1.1.1.1</code>).</li>



<li>Set the <strong>Port</strong> to <code>853</code> — the standard for DoT.</li>



<li>Enter the DNS server&#8217;s hostname (e.g., <code>cloudflare-dns.com</code>) under <strong>Verify CN</strong> to validate the TLS certificate.</li>



<li>Save the settings. Optionally, add a second (IPv6) DoT server.</li>



<li>Click <strong>Apply</strong> to activate changes.</li>
</ol>



<h4 class="wp-block-heading">Part 2: Update General and DHCP Settings</h4>



<ol class="wp-block-list">
<li>Go to <strong>System → Settings → General</strong>.</li>



<li>Remove any predefined DNS servers to ensure Unbound handles all DNS.</li>



<li>Uncheck the option to allow DNS overrides from DHCP/PPP.</li>



<li>Save changes.</li>



<li>Navigate to <strong>Services → DHCPv4 → LAN</strong>.</li>



<li>Clear the DNS server fields to inherit the default Unbound configuration.</li>



<li>Save and restart DHCP if prompted.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Conclusion</h3>



<p>Unbound DNS with DNS-over-TLS in OPNsense delivers strong privacy and control without reliance on third-party DNS services. While setup requires a bit more effort than using external resolvers, the result is a secure, self-reliant DNS infrastructure — ideal for privacy-focused users and advanced network environments.</p>
<p>Сообщение <a href="https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/">How to Secure DNS with DNS-over-TLS in OPNsense Using Unbound</a> появились сначала на <a href="https://boxvirt.com">Boxvirt - Proxmox &amp; OPNsense Infrastructure Guides</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://boxvirt.com/how-to-secure-dns-with-dns-over-tls-in-opnsense-using-unbound/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
