<?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>Application Archives - ServerStadium</title>
	<atom:link href="https://serverstadium.com/knowledge-base/category/application/feed/" rel="self" type="application/rss+xml" />
	<link>https://serverstadium.com/knowledge-base/category/application/</link>
	<description>Public Cloud Solution by ServerStadium</description>
	<lastBuildDate>Tue, 09 Dec 2025 06:15:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://serverstadium.com/wp-content/uploads/2023/04/cropped-favicon-1-32x32.png</url>
	<title>Application Archives - ServerStadium</title>
	<link>https://serverstadium.com/knowledge-base/category/application/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>File Sharing Made Simple: Setting Up Samba on Ubuntu with ServerStadium</title>
		<link>https://serverstadium.com/knowledge-base/setting-up-samba-on-ubuntu/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Mon, 18 Sep 2023 19:52:05 +0000</pubDate>
				<guid isPermaLink="false">https://serverstadium.com/?post_type=epkb_post_type_1&#038;p=11738</guid>

					<description><![CDATA[<p>Sharing files between Linux and Windows systems can be challenging in a multi-platform environment. Samba, a file-sharing utility for Ubuntu, bridges this gap. With ServerStadium&#8217;s reliable infrastructure, setting up Samba becomes straightforward, allowing for effortless cross-platform file sharing. Why Samba? Samba facilitates file sharing between Linux and Windows and acts as a domain controller, offering&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/setting-up-samba-on-ubuntu/">File Sharing Made Simple: Setting Up Samba on Ubuntu with ServerStadium</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Sharing files between Linux and Windows systems can be challenging in a multi-platform environment. Samba, a file-sharing utility for Ubuntu, bridges this gap. With ServerStadium&#8217;s reliable infrastructure, setting up Samba becomes straightforward, allowing for effortless cross-platform file sharing.</p>
<p><strong>Why Samba?</strong> Samba facilitates file sharing between Linux and Windows and acts as a domain controller, offering services like authentication and name resolution. It&#8217;s an essential tool for businesses aiming for seamless operations in mixed OS environments.</p>
<p><strong>Step-by-Step Guide to Setting Up Samba on Ubuntu at ServerStadium</strong></p>
<ol>
<li><strong>Installation</strong>: Begin by updating your system and installing Samba:
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-sql">sudo apt<span class="hljs-operator">-</span><span class="hljs-keyword">get</span> <span class="hljs-keyword">update</span><br />
sudo apt<span class="hljs-operator">-</span><span class="hljs-keyword">get</span> install samba<br />
</code></div>
</div>
</li>
<li><strong>Configuration</strong>: Backup the original Samba configuration file and then edit the new one:
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">sudo <span class="hljs-built_in">cp</span> /etc/samba/smb.conf /etc/samba/smb.conf.backup<br />
sudo nano /etc/samba/smb.conf<br />
</code></div>
</div>
<p>Add your desired configurations, specifying directories to share and permissions.</li>
<li><strong>User Setup</strong>: Samba requires a dedicated user. Create one and set a password:
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-css">sudo smbpasswd -<span class="hljs-selector-tag">a</span> username<br />
</code></div>
</div>
</li>
<li><strong>Access and Permissions</strong>: Ensure the shared directories have the correct permissions. Adjust as needed using <code>chmod</code> and <code>chown</code>.</li>
<li><strong>Restart and Test</strong>: Restart the Samba service and test your setup:
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs">sudo service smbd restart<br />
smbclient -L localhost -U username<br />
</code></div>
</div>
</li>
</ol>
<p><strong>Optimizing Samba on ServerStadium</strong></p>
<ol>
<li><strong>Security</strong>: Regularly update Samba to benefit from security patches. Consider firewall configurations to restrict access.</li>
<li><strong>Monitoring</strong>: Monitor Samba logs for any unusual activity or errors. This aids in proactive troubleshooting.</li>
<li><strong>Integration</strong>: Integrate Samba with other services on your <a href="https://serverstadium.com/all-products/" target="_new" rel="noopener">ServerStadium infrastructure</a>, like backups or cloud storage, for enhanced functionality.</li>
</ol>
<p><strong>Conclusion</strong> Samba on Ubuntu offers a world of cross-platform file-sharing possibilities. Whether you&#8217;re running a small business or a large enterprise, Samba ensures seamless file access across your network. With <a href="https://serverstadium.com/dedicated-server/" target="_new" rel="noopener">ServerStadium&#8217;s dedicated servers</a> and <a href="https://serverstadium.com/pricing/" target="_new" rel="noopener">cloud VM solutions</a>, you&#8217;re equipped with the perfect environment to harness Samba&#8217;s capabilities.</p>
<p>Ready to explore more server solutions? Navigate through <a href="https://serverstadium.com/knowledge-base/" target="_new" rel="noopener">ServerStadium&#8217;s knowledge base</a> for expert articles and guides, or <a href="https://serverstadium.com/contact/" target="_new" rel="noopener">contact our team</a> for tailored solutions.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/setting-up-samba-on-ubuntu/">File Sharing Made Simple: Setting Up Samba on Ubuntu with ServerStadium</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Step-by-Step MEAN Stack Setup on ServerStadium VM Instances</title>
		<link>https://serverstadium.com/knowledge-base/mean-stack-setup-serverstadium-vm-instances/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Tue, 30 May 2023 21:02:29 +0000</pubDate>
				<guid isPermaLink="false">https://serverstadium.com/?post_type=epkb_post_type_1&#038;p=11688</guid>

					<description><![CDATA[<p>Setting up a MEAN Stack (MongoDB, Express.js, Angular, Node.js) can sometimes be complex, especially for newcomers. However, with ServerStadium&#8217;s VM instances, the process is straightforward. In this tutorial, we&#8217;ll guide you step by step through the entire process. Before we get started, be sure to visit our comprehensive Knowledge Base for a wealth of other&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/mean-stack-setup-serverstadium-vm-instances/">Step-by-Step MEAN Stack Setup on ServerStadium VM Instances</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Setting up a MEAN Stack (MongoDB, Express.js, Angular, Node.js) can sometimes be complex, especially for newcomers. However, with ServerStadium&#8217;s VM instances, the process is straightforward. In this tutorial, we&#8217;ll guide you step by step through the entire process.</p>
<p>Before we get started, be sure to visit our comprehensive <a href="https://serverstadium.com/knowledge-base/" target="_new" rel="noopener">Knowledge Base</a> for a wealth of other useful tutorials and guides.</p>
<h2>Step 1: Register Your Account</h2>
<p>To kick off, you&#8217;ll need to register an account on our <a href="https://cp.serverstadium.com/register-user" target="_new" rel="noopener">Registration Page</a>. Fill out your details, and create your account. Following registration, you&#8217;ll gain access to your personal Cloud Dashboard.</p>
<h2 data-id="articleTOC_1">Step 2: Choose Your Cloud Instance</h2>
<p>From your Cloud Dashboard, go to the ‘Add VM’ section. Here, you’ll find a variety of cloud instance options. Select the one that suits your needs. If you need help deciding, our <a href="https://serverstadium.com/pricing/" target="_new" rel="noopener">Instance Pricing Guide</a> can help you.</p>
<h2>Step 3: Install Node.js and NPM</h2>
<p>Node.js is a JavaScript runtime built on Chrome&#8217;s V8 JavaScript engine. It&#8217;s designed to build scalable network applications. Node.js uses an event-driven, non-blocking I/O model that is lightweight and efficient.</p>
<p>NPM (Node Package Manager) is the default package manager for Node.js. It&#8217;s used for installing, sharing, and distributing code, managing dependencies in your projects, and much more.</p>
<p>To install Node.js and NPM, you can run the following commands:</p>
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">sudo apt update</code></div>
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">sudo apt install nodejs npm<br />
</code></div>
</div>
<p>You can verify the installation with <code>nodejs -v</code> and <code>npm -v</code>.</p>
<h2>Step 4: Install MongoDB</h2>
<p>MongoDB is a source-available cross-platform document-oriented database program. It&#8217;s classified as a NoSQL database program, which means it doesn&#8217;t use the traditional tabular relational database structure. Instead, it uses JSON-like documents with optional schemas.</p>
<p>To install MongoDB, run the following commands:</p>
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">sudo apt install mongodb</code></div>
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">sudo systemctl status mongodb<br />
</code></div>
</div>
<p>The first command will install MongoDB, and the second will check the status of MongoDB to ensure it&#8217;s running correctly.</p>
<h2>Step 5: Install Express.js</h2>
<p>Express.js, or simply Express, is a web application framework for Node.js, designed for building web applications and APIs. It&#8217;s minimalistic and flexible and provides a robust set of features for web and mobile applications.</p>
<p>To install Express.js, you must create a project directory, navigate to it, and initialize a new Node.js application using NPM. After that, you can install Express.js:</p>
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash"><span class="hljs-built_in">mkdir</span></code><code class="!whitespace-pre hljs language-bash">myapp</code></div>
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash"><span class="hljs-built_in">cd</span> myapp</code></div>
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">npm init</code></div>
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">npm install express<br />
</code></div>
</div>
<h2>Step 6: Install Angular</h2>
<p>Angular is a platform for building web applications. It provides a way to create single-page applications requiring only HTML, CSS, and JavaScript on the client side.</p>
<p>To install Angular, you need to install Angular CLI (Command Line Interface), a command line tool used to scaffold and build Angular apps using node.js style (commonJs) modules. Not only does it provide you with scaffolding for your apps, but it also helps you manage your entire Angular project.</p>
<p>Install Angular CLI globally using NPM:</p>
<div class="bg-black rounded-md mb-4">
<div class="p-4 overflow-y-auto"><code class="!whitespace-pre hljs language-bash">npm install -g @angular/cli<br />
</code></div>
</div>
<p>You can verify the installation with <code>ng version</code>.</p>
<h2>Step 7: Create Your Application</h2>
<p>Now that your MEAN Stack is set up, you can start building your application. This involves creating an Express.js server, setting up routes for your application, connecting your application to your MongoDB database, and building your front-end with Angular.</p>
<p>If you&#8217;re new to the MEAN Stack, check out our introductory <a href="https://serverstadium.com/knowledge-base/mean-stack-intro" target="_new" rel="noopener">MEAN Stack tutorial</a> to get a detailed walk-through of how to create your first MEAN Stack application.</p>
<h2>Conclusion</h2>
<p>Congratulations! You now have a MEAN Stack set up in your ServerStadium VM instance! You&#8217;re ready to dive into web application development and harness the powerful capabilities of ServerStadium&#8217;s VM instances.</p>
<p>Remember, our <a href="https://serverstadium.com/knowledge-base/" target="_new" rel="noopener">Knowledge Base</a> is a treasure trove of tutorials, guides, and helpful tips. If you ever need assistance, don&#8217;t hesitate to contact our support team.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/mean-stack-setup-serverstadium-vm-instances/">Step-by-Step MEAN Stack Setup on ServerStadium VM Instances</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Upgrade Zimbra and the OS Version</title>
		<link>https://serverstadium.com/knowledge-base/upgrade-zimbra-and-the-os-version/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Fri, 10 Mar 2023 09:07:59 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=3226</guid>

					<description><![CDATA[<p>Zimbra is an email platform that integrates with calendars, documents, contacts, etc. It gives a better collaboration experience within the user&#8217;s company by focusing on its scalability, data sovereignty, and security, making it one of the most-wanted collaboration tools in ServerStadium. ServerStadium and Zimbra want to continue our best service to our dearest customers by&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/upgrade-zimbra-and-the-os-version/">Upgrade Zimbra and the OS Version</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Zimbra is an email platform that integrates with calendars, documents, contacts, etc. It gives a better collaboration experience within the user&#8217;s company by focusing on its scalability, data sovereignty, and security, making it one of the most-wanted collaboration tools in ServerStadium.</p>



<p class="wp-block-paragraph">ServerStadium and Zimbra want to continue our best service to our dearest customers by updating the new version. This way, we can keep up with the users&#8217; needs while keeping them secure.</p>



<p class="wp-block-paragraph">Recently, the latest version has been available to be used. To get the most of its features and security protection, you must upgrade it as well as the OS version</p>



<p class="wp-block-paragraph">Please follow the tutorial below:</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Prerequisite:</h2>



<p class="wp-block-paragraph">Single-server Installation</p>



<ul class="wp-block-list">
<li>RAM: 8 GB minimum</li>



<li>50 GB free disk space minimum for software and logs</li>



<li>OS: Ubuntu based</li>
</ul>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Environment Set</h2>



<p class="wp-block-paragraph">In this setup, I use Ubuntu 16.04 as a starting point for the Zimbra operating system and ZCS-8.7.11 as the version of the Zimbra Collaboration.</p>

<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3263" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-5.png" alt="" width="572" height="269" /></p>

<p class="wp-block-paragraph">Zimbra has one administrative account and one user account as my initial data.</p>

<p><img decoding="async" class="alignnone  wp-image-3264" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/Image-002.png" alt="" width="560" height="64" /></p>

<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Reinstall the ZCS Version to the Latest</h2>



<p class="wp-block-paragraph">This section will explain reinstalling the current Zimbra Collabora to the latest version.</p>



<ol class="wp-block-list">
<li>Before proceeding with the reinstall and the upgrade, please create a snapshot of the VM first &#8211; <a href="https://serverstadium.com/knowledge-base/how-to-make-a-snapshot-and-configure-vm-backup-in-serverstadium/">How to Make a Snapshot and Configure VM Backup in ServerStadium</a></li>



<li>Reinstall the ZCS version to the latest. You can get the installer based on the operating system in the following link &#8211; <a href="https://www.zimbra.com/try/zimbra-collaboration-open-source/" target="_blank" rel="noreferrer noopener">get zimbra collaboration open source</a> or <a href="https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3869.UBUNTU16_64.20190918004220.tgz" target="_blank" rel="noreferrer noopener">here</a> for Ubuntu 16.04</li>



<li>Navigate to the extracted folder of the ZCS installer then execute the <code style="color: tomato;">install.sh</code> file, with options <code style="color: tomato;">--force-upgrade</code> and <code style="color: tomato;">--skip-upgrade-check</code></li>



<li>The Zimbra installer file will scan the existing packages to upgrade and will prompt some confirmation questions to the packages that might want to be installed.</li>
</ol>

<p><img decoding="async" class="wp-image-3266 alignnone" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-7.png" alt="" width="433" height="536" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-7.png 511w, https://serverstadium.com/wp-content/uploads/2023/02/image-7-242x300.png 242w" sizes="(max-width: 433px) 100vw, 433px" /></p>

<p class="wp-block-paragraph">After successful reinstallation</p>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3267" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-8.png" alt="" width="503" height="192" /></p>

<ol class="wp-block-list" start="5">
<li>Email test flow after reinstalling
<div style="color: mediumblue;">Sender: mamad@mamadngelinux.my.id</div>
<div style="color: mediumblue;">Recipient: ahmadnromiz@gmail.com, ahmad.naufal@wowrack.com</div>
</li>
</ol>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3270" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-9.png" alt="" width="600" height="120" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-9.png 843w, https://serverstadium.com/wp-content/uploads/2023/02/image-9-300x60.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-9-768x154.png 768w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3271" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-10.png" alt="" width="602" height="159" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-10.png 1011w, https://serverstadium.com/wp-content/uploads/2023/02/image-10-300x79.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-10-768x203.png 768w" sizes="(max-width: 602px) 100vw, 602px" /></p>

<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Upgrade the OS version</h2>



<p class="wp-block-paragraph">To upgrade Ubuntu to the next LTS version, enter <code style="color: tomato;">do-release-upgrade</code> in the CLI.</p>



<p class="wp-block-paragraph">Some confirmation prompts may appear during the upgrade process, with the default value of configuration set to <strong>no</strong>.</p>



<p class="wp-block-paragraph">Either keep the previous configurations of the filesystem or replace them with the maintainer preferences; those are dependent on your needs.</p>



<p class="wp-block-paragraph">Example:</p>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3274" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-11.png" alt="" width="520" height="204" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-11.png 556w, https://serverstadium.com/wp-content/uploads/2023/02/image-11-300x118.png 300w" sizes="(max-width: 520px) 100vw, 520px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3276" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-12.png" alt="" width="520" height="161" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-12.png 938w, https://serverstadium.com/wp-content/uploads/2023/02/image-12-300x93.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-12-768x237.png 768w" sizes="(max-width: 520px) 100vw, 520px" /></p>

<p class="wp-block-paragraph">After the OS is successfully upgraded, do the Zimbra reinstallation steps as explained in the previous section.</p>



<p class="wp-block-paragraph">Please note that the latest support of Ubuntu OS for Zimbra is 20.04 LTE. Thus, we only need to upgrade the OS to the 20.04 LTE version.</p>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3282" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-13.png" alt="" width="595" height="209" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-13.png 717w, https://serverstadium.com/wp-content/uploads/2023/02/image-13-300x105.png 300w" sizes="(max-width: 595px) 100vw, 595px" /></p>

<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Final Email Flow Test</h2>



<ul class="has-black-color has-text-color wp-block-list">
<li>
<div style="color: mediumblue;">Sender: mamad@mamadngelinux.my.id, pop3@mamadngelinux.my.id</div>
</li>



<li>
<div style="color: mediumblue;">Recipient: ahmadnromiz@gmail.com, ahmad.naufal@wowrack.com</div>
</li>
</ul>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3284" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-15.png" alt="" width="484" height="652" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-15.png 503w, https://serverstadium.com/wp-content/uploads/2023/02/image-15-223x300.png 223w" sizes="(max-width: 484px) 100vw, 484px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3285" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-16.png" alt="" width="494" height="399" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-16.png 736w, https://serverstadium.com/wp-content/uploads/2023/02/image-16-300x242.png 300w" sizes="(max-width: 494px) 100vw, 494px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3286" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-17.png" alt="" width="497" height="496" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-17.png 603w, https://serverstadium.com/wp-content/uploads/2023/02/image-17-300x300.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-17-150x150.png 150w" sizes="(max-width: 497px) 100vw, 497px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3287" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-18.png" alt="" width="495" height="441" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-18.png 791w, https://serverstadium.com/wp-content/uploads/2023/02/image-18-300x267.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-18-768x685.png 768w" sizes="(max-width: 495px) 100vw, 495px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3288" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-19.png" alt="" width="562" height="218" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3289" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-20.png" alt="" width="565" height="218" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-20.png 862w, https://serverstadium.com/wp-content/uploads/2023/02/image-20-300x116.png 300w, https://serverstadium.com/wp-content/uploads/2023/02/image-20-768x296.png 768w" sizes="(max-width: 565px) 100vw, 565px" /></p>
<p>&nbsp;</p>

<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Now you are ready to use your latest version of Zimbra and the OS. Please feel free to ask for further information about this tutorial with our support team.</p>



<p class="wp-block-paragraph">Visit our <a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">knowledge base</a> to get more tutorials and insights about technology.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/upgrade-zimbra-and-the-os-version/">Upgrade Zimbra and the OS Version</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Deploy Mailu on Rancher Kubernetes</title>
		<link>https://serverstadium.com/knowledge-base/deploy-mailu-on-rancher-kubernetes/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Fri, 10 Mar 2023 03:47:28 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=3106</guid>

					<description><![CDATA[<p>Mailu is a simple yet comprehensive mail server as a set of Docker images that is very easy to use. Another perk of using Mailu is that it is an open-source mail server, free to use for everyone. This article will show you the easy deployment step of Mailu on Rancher Kubernetes. Prerequisite: System Preparation:&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/deploy-mailu-on-rancher-kubernetes/">Deploy Mailu on Rancher Kubernetes</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mailu is a simple yet comprehensive mail server as a set of Docker images that is very easy to use. Another perk of using Mailu is that it is an open-source mail server, free to use for everyone.</p>



<p class="wp-block-paragraph">This article will show you the easy deployment step of Mailu on Rancher Kubernetes.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Prerequisite:</h2>



<ul class="wp-block-list">
<li>Please enable DNSSEC on your nameserver and add it to your domain registrar (Reff link to enable DNSSEC on <a href="https://developers.cloudflare.com/dns/additional-options/dnssec" target="_blank" rel="noreferrer noopener">CloudFlare</a> nameserver).</li>



<li>Set up the Rancher Kubernetes cluster or a single node cluster (adjusting your cluster.yml file). 
<ul class="wp-block-list">
<li><a href="https://serverstadium.com/knowledge-base/high-availability-kubernetes-using-rke-in-serverstadium-part-1/" target="_blank" rel="noreferrer noopener">High Availability Kubernetes Using RKE in ServerStadium Part 1</a></li>



<li><a href="https://serverstadium.com/knowledge-base/high-availability-kubernetes-using-rke-in-serverstadium-part-2/" target="_blank" rel="noreferrer noopener">High Availability Kubernetes Using RKE in ServerStadium Part 2</a></li>



<li><a href="https://serverstadium.com/knowledge-base/high-availability-kubernetes-using-rke-in-serverstadium-part-3/">High Availability Kubernetes Using RKE in ServerStadium Part 3</a></li>
</ul>
</li>
</ul>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">System Preparation:</h2>



<ul class="wp-block-list">
<li>OS: Ubuntu 22.04</li>



<li>Docker Version: 20.10.x</li>



<li>RAM: 8GB Memory</li>



<li>vCPU: 6 Core</li>



<li>Single node host</li>
</ul>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">K8s Environment Set:</h2>



<p class="has-black-color has-text-color wp-block-paragraph">1. Install helm and kubectl on the Ubuntu host using the Snap package manager</p>



<pre class="wp-block-code has-vivid-red-color has-text-color"><code>snap install helm --classic -y &amp;&amp; snap install kubectl --classic -y</code></pre>



<p class="wp-block-paragraph">2. Copy the API generated by the RKE (Rancher Kubernetes Engine) Kubernetes cluster to the kubectl config located in <code>/root/.kube/config</code> (create the config file if necessary). Then verify the kubectl connection.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="437" height="80" class="wp-image-3107" src="https://serverstadium.com/wp-content/uploads/2023/02/image.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image.png 437w, https://serverstadium.com/wp-content/uploads/2023/02/image-300x55.png 300w" sizes="(max-width: 437px) 100vw, 437px" /></figure>



<p class="wp-block-paragraph">3. Create a new project namespace on your rancher (e.g. <strong>mail-server </strong>namespace)</p>



<p class="wp-block-paragraph">4. Deploy longhorn on the related rancher project and set the replica to 1. Depending on the node in the Kubernetes cluster, you might want to increase the replica to the number of worker nodes. The longhorn will be used as the storageclass in Rancher Kubernetes Cluster.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Mailu Installation</h2>



<ul class="wp-block-list">
<li>Add the repository via:</li>
</ul>



<pre class="wp-block-code has-vivid-red-color has-text-color"><code>helm repo add mailu https://mailu.github.io/helm-charts/</code></pre>



<ul class="wp-block-list">
<li>Create a local values file:</li>
</ul>



<pre class="wp-block-code has-vivid-red-color has-text-color"><code>helm show values mailu/mailu &gt; values.yaml</code></pre>



<ul class="wp-block-list">
<li>Edit the <code>values.yaml</code> to reflect your environment. The full setup example can be seen in the following code:</li>
</ul>



<div style="overflow: auto; max-height: 800px; background-color: black;">
<pre class="wp-block-code has-pale-cyan-blue-color has-text-color"><code>
# Default values for mailu.
# A list of mail hostnames is required. The first will be used as primary mail hostname
hostnames:
  - mailu.example.com # Please use your real domain

# The mail domain is required. See https://github.com/Mailu/Mailu/blob/master/docs/faq.rst#what-is-the-difference-between-domain-and-hostnames
domain: example.com # Please use your real domain

# The secret key is required for protecting authentication cookies and must be set individually for each deployment
# secretKey: chang3m3!
secretKey: chang3m3!

# An initial account can automatically be created:
initialAccount:
  username: mailadmin
  domain: example.com
  password: chang3m3!


nameOverride: ""
fullnameOverride: ""
clusterDomain: cluster.local

nodeSelector: {}

# Tolerations for pod assignment
# Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations: {}

# Affinity for pod assignment
# Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
affinity: {}

database:
  # type of the database for mailu (sqlite or mysql)
  # default database is an embedded sqlite
  # for mysql, see settings below
  type: sqlite

  # type of the database for roundcube (sqlite or mysql)
  # default database is an embedded sqlite
  # for mysql, see settings below
  roundcubeType: sqlite

# For mysql/mariadb use the following config:
# Set the host to use an external database.
# If not host is set, a database instance is created by this chart.
#   type: mysql
  mysql: {}
    # host: external-db-hostname
    # root password for mysql database
    # rootPassword: chang3m3! # can only be set for embedded mysql

    # settings for mailu (required if mailu database type is "mysql")
    # database: mailu
    # user: mailu
    # password: chang3m3!

  # For an external PostgreSQL database, use the following config:
  postgresql: {}
    # host: external-db-hostname
    # database: mailu
    # user: mailu
    # password: chang3m3!

    # settings for roundcube (required if roundcube database type is "mysql" or "postgresql")
    # roundcubeDatabase: roundcube
    # roundcubeUser: roundcube
    # roundcubePassword: chang3m3!

external_relay: {}
#    host: "[domain.tld]:port"
#    username: username
#    password: SECRET
#    # username and password can also be stored as secret:
#    secretName: external-relay-secret
#    usernameKey: username
#    passwordKey: password

persistence:
  # Setings for a single volume for all apps
  # set single_pvc: false to use a per app volume and set the properties in &lt;app&gt;.persistence (ex. admin.persistence)
  single_pvc: true
  size: 70Gi
  accessMode: ReadWriteOnce
  #annotations:
  #  "helm.sh/resource-policy": keep
  #hostPath: /path/on/the/host
  #existingClaim: name-of-existing.claim
  #storageClass: "-"
  storageClass: "longhorn"
  #claimNameOverride: mailu-pvc

# Change this if you're using different address ranges for pods
subnet: 10.42.0.0/16

# Version of mailu docker images to use when not specified otherwise
mailuVersion: 1.9.26
#mailuVersion: 1.8

# default log level. can be overridden globally or per service
logLevel: WARNING
# local part of the postmaster email address (Mailu will use @$DOMAIN as domain part)
postmaster: postmaster

mail:
  messageSizeLimitInMegabytes: 50

  # Configuration to prevent brute-force attacks. See the documentation for further information: https://mailu.io/master/configuration.html
  authRatelimitIP: 60/hour
  authRatelimitIPv4Mask: 24
  authRatelimitIPv6Mask: 56
  authRatelimitUser: 100/day
  authRatelimitExemtionLength: 86400
  # authRatelimitExemtion:

  # Configuration to reduce outgoing spam in case of an compromised account. See the documentation for further information: https://mailu.io/1.9/configuration.html?highlight=MESSAGE_RATELIMIT
  messageRatelimit: 200/day
  # messageRatelimitExemption:

# certmanager settings
certmanager:
  enabled: true
  issuerType: ClusterIssuer
  issuerName: letsencrypt
  apiVersion: cert-manager.io/v1

# Set ingress and loadbalancer config
ingress:
  externalIngress: true
  tlsFlavor: cert
  className: ""
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
  realIpHeader: X-Forwarded-For
  realIpFrom: 0.0.0.0/0

# Frontend load balancer for non-HTTP(s) services
front:
  # logLevel: WARNING
  image:
    repository: mailu/nginx
    # tag defaults to mailuVersion
    # tag: master
  resources:
    requests:
      memory: 100Mi
      cpu: 100m
    limits:
      memory: 200Mi
      cpu: 200m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5
  # Deployment or DaemonSet
  controller:
    kind: Deployment
  nodeSelector: {}

  # Expose front mail ports via hostPort
  hostPort:
    enabled: true

  # Expose front mail ports via external service (ClusterIP or LoadBalancer)
  externalService:
    enabled: false
    type: ClusterIP
    # LoadBalancer
    # type: LoadBalancer
    # loadBalancerIP:
    externalTrafficPolicy: Local
    annotations: {}
    pop3:
      pop3: false
      pop3s: true
    imap:
      imap: false
      imaps: true
    smtp:
      smtp: true
      smtps: true
      submission: true

admin:
  # logLevel: WARNING
  image:
    repository: mailu/admin
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep

  resources:
    requests:
      memory: 500Mi
      cpu: 100m
    limits:
      memory: 500Mi
      cpu: 100m
  podAnnotations: {}
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5


redis:
  image:
    repository: redis
    tag: 5-alpine
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 200Mi
      cpu: 100m
    limits:
      memory: 300Mi
      cpu: 200m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5

postfix:
  # logLevel: WARNING
  image:
    repository: mailu/postfix
    # tag defaults to mailuVersion
    # tag: master
  containerSecurityContext: {}
  #    CRI-O users will need to add the following:
  #    capabilities:
  #      add:
  #        - SYS_CHROOT
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 2Gi
      cpu: 500m
    limits:
      memory: 2Gi
      cpu: 500m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5

dovecot:
  enabled: true
  # logLevel: WARNING
  image:
    repository: mailu/dovecot
    # tag defaults to mailuVersion
    # tag: master
  containerSecurityContext: {}
#    CRI-O users will need to add the following:
#    capabilities:
#      add:
#        - SYS_CHROOT
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 500Mi
      cpu: 500m
    limits:
      memory: 500Mi
      cpu: 500m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5
  # enable dovecot overrides
  # overrides:
  #   dovecot.conf: |
  #     # More info here: https://mailu.io/1.8/kubernetes/mailu/index.html#dovecot
  #     mail_nfs_index = yes
  #     mail_nfs_storage = yes
  #     mail_fsync = always
  #     mmap_disable = yes
  #     mail_max_userip_connections=100

# historically rspamd and clamav shared their volumes in this chart
# this isn't needed anymore. to maintain backward compatibility and give users
# some time to migrate we keep this here.
#
# if you want a "shared" volume keep in mind you have to use affinity rules on
# rspamd and clamav pods so that both pods are scheduled on the same node
# to keep RWO volumes working
#
# otherwise set rspamd_clamav_persistence.single_pvc to true and review
# rspamd.persistence and clamav.persistence
rspamd_clamav_persistence:
  size: 6Gi
  storageClass: ""
  accessMode: ReadWriteOnce
  claimNameOverride: ""
  single_pvc: false
  #annotations:
  #  "helm.sh/resource-policy": keep

rspamd:
  # logLevel: WARNING
  image:
    repository: mailu/rspamd
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 1Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 300Mi
      cpu: 300m
    limits:
      memory: 300Mi
      cpu: 300m
  startupProbe: # give it 15 minutes for initial rule compilation
    periodSeconds: 10
    failureThreshold: 90
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5

clamav:
  enabled: true
  # logLevel: WARNING
  image:
    repository: mailu/clamav
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 2Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 1Gi
      cpu: 1000m
    limits:
      memory: 2Gi
      cpu: 1000m
  startupProbe: # give it 10 minutes for initial freshclam update
    periodSeconds: 10
    failureThreshold: 60
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5
  # clamav must share a volume with rspamd. This is usually enforced by the volume itself (RWO). If you use RWM volumes and want to
  # have clamav running on the same node, add the following affinity rule:
#  affinity:
#    podAffinity:
#      requiredDuringSchedulingIgnoredDuringExecution:
#        - labelSelector:
#            matchExpressions:
#              - key: component
#                operator: In
#                values:
#                  - rspamd
#          topologyKey: kubernetes.io/hostname

roundcube:
  enabled: true
  # logLevel: WARNING
  image:
    repository: mailu/roundcube
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  uri: /roundcube
  resources:
    requests:
      memory: 100Mi
      cpu: 100m
    limits:
      memory: 200Mi
      cpu: 200m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5


webdav:
  enabled: false
  # logLevel: WARNING
  image:
    repository: mailu/radicale
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5

mysql:
  image:
    repository: library/mariadb
    tag: 10.4.10
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 256Mi
      cpu: 100m
    limits:
      memory: 512Mi
      cpu: 200m
  startupProbe:
    periodSeconds: 10
    failureThreshold: 30
    timeoutSeconds: 5
  livenessProbe:
    periodSeconds: 10
    failureThreshold: 3
    timeoutSeconds: 5
  readinessProbe:
    periodSeconds: 10
    failureThreshold: 1
    timeoutSeconds: 5

fetchmail:
  enabled: false
  # logLevel: WARNING
  image:
    repository: mailu/fetchmail
    # tag defaults to mailuVersion
    # tag: master
  persistence:
    size: 6Gi
    storageClass: ""
    accessMode: ReadWriteOnce
    claimNameOverride: ""
    #annotations:
    #  "helm.sh/resource-policy": keep
  resources:
    requests:
      memory: 100Mi
      cpu: 100m
    limits:
      memory: 200Mi
      cpu: 200m
  delay: 600
</code></pre>
</div>



<p class="wp-block-paragraph">&nbsp;</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Key Takeaways</h2>



<p class="wp-block-paragraph">There are three keys that are required to be fulfilled.</p>



<p class="wp-block-paragraph">Those are the <strong>hostname</strong>, the <strong>domain </strong>name, <strong>secret key,</strong> and the <strong>initial account.</strong></p>



<div style="overflow: auto; max-height: 800px; background-color: black;">
<pre class="wp-block-code has-pale-cyan-blue-color has-text-color"><code>
# A list of mail hostnames is required. The first will be used as primary mail hostname
hostnames:
#  - mail.example.com
#  - imap.example.com
  - mailu.example.com # Please use your real domain

# The mail domain is required. See https://github.com/Mailu/Mailu/blob/master/docs/faq.rst#what-is-the-difference-between-domain-and-hostnames
domain: example.com # Please use your real domain

# The secret key is required for protecting authentication cookies and must be set individually for each deployment
# secretKey: chang3m3!
secretKey: chang3m3!

# An initial account can automatically be created:
initialAccount:
  username: mailadmin
  domain: example.com # Please use your real domain
  password: chang3m3!
</code></pre>
</div>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph">References:</p>



<ul class="wp-block-list">
<li><a href="https://mailu.io/1.9/kubernetes/mailu/index.html" target="_blank" rel="noreferrer noopener">Mailu Kubernetes Setup</a></li>



<li><a href="https://github.com/Mailu/helm-charts/blob/master/mailu/README.md" target="_blank" rel="noreferrer noopener">Mailu Helm Chart Documentation</a></li>
</ul>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Functionality Test</h2>



<ul class="wp-block-list">
<li>IMAP Sending and Receiving test</li>
</ul>

<p><strong>Webmail</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3428" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/03/image-2.png" alt="" width="534" height="301" srcset="https://serverstadium.com/wp-content/uploads/2023/03/image-2.png 609w, https://serverstadium.com/wp-content/uploads/2023/03/image-2-300x169.png 300w" sizes="(max-width: 534px) 100vw, 534px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3430" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/03/image.png" alt="" width="535" height="406" srcset="https://serverstadium.com/wp-content/uploads/2023/03/image.png 632w, https://serverstadium.com/wp-content/uploads/2023/03/image-300x228.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></p>
<p><strong>Thunderbird Mail Client</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3141" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/02/image-3.png" alt="" width="468" height="280" srcset="https://serverstadium.com/wp-content/uploads/2023/02/image-3.png 560w, https://serverstadium.com/wp-content/uploads/2023/02/image-3-300x179.png 300w" sizes="(max-width: 468px) 100vw, 468px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3431" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/03/image-1.png" alt="" width="477" height="383" /></p>

<ul class="wp-block-list">
<li>POP3 Sending and Receiving Test</li>
</ul>

<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3433" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/03/Image-030.png" alt="" width="396" height="415" srcset="https://serverstadium.com/wp-content/uploads/2023/03/Image-030.png 530w, https://serverstadium.com/wp-content/uploads/2023/03/Image-030-286x300.png 286w" sizes="(max-width: 396px) 100vw, 396px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-3434" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2023/03/Image-032-768x578-1.png" alt="" width="395" height="297" srcset="https://serverstadium.com/wp-content/uploads/2023/03/Image-032-768x578-1.png 768w, https://serverstadium.com/wp-content/uploads/2023/03/Image-032-768x578-1-300x226.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></p>

<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">There you have deployed a mail server based on a container environment. Now, you have a mail server that has been engaged with future DevOps environments. If you have further questions regarding this tutorial, freely put the questions in the comment section below.</p>



<p class="wp-block-paragraph">Check other tutorials that might benefit you on our <a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">knowledge base</a>,</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/deploy-mailu-on-rancher-kubernetes/">Deploy Mailu on Rancher Kubernetes</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Managing ServerStadium Storage from various tools and from various OS</title>
		<link>https://serverstadium.com/knowledge-base/managing-serverstadium-storage-from-various-tools-and-from-various-os/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Tue, 22 Nov 2022 08:14:21 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2848</guid>

					<description><![CDATA[<p>In addition to using panels, according to our discussion in this article. So many S3 Client applications can be used; in this article, we will discuss three ways to manage ServerStadium Storage based on the tools and OS variants. GUI S3 Client on Windows OS Several S3 client applications offer S3 management using a GUI&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/managing-serverstadium-storage-from-various-tools-and-from-various-os/">Managing ServerStadium Storage from various tools and from various OS</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In addition to using panels, according to our discussion in this <a href="https://serverstadium.com/knowledge-base/raya-storage-serverstadium-s3-object-storage/" target="_blank" rel="noreferrer noopener">article</a>.</p>



<p class="wp-block-paragraph">So many S3 Client applications can be used; in this article, we will discuss three ways to manage ServerStadium Storage based on the tools and OS variants.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">GUI S3 Client on Windows OS</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Several S3 client applications offer S3 management using a GUI (Graphical User Interface). One of the most popular, easy-to-use, and open-source is <strong>Cyberduck</strong>.</p>







<h4 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">A brief explanation of Cyberduck</h4>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph"><strong>Cyberduck </strong>provides full operational convenience in connecting to ServerStadium Storage. The Cyberduck application is used as an S3 client and can also be a client for FTP, SFTP, WebDAV, Dropbox, Google Drive, and many others.</p>



<p class="wp-block-paragraph">There are many things we can do in CyberDuck, including:</p>



<ul class="wp-block-list">
<li>Add &amp; Remove buckets</li>



<li>Upload, download, and sync files</li>



<li>Integrating with other programs we use to edit files (depending on file extension, eg: .txt)</li>



<li>Edit permissions (ACL) for each file, and folder, up to the bucket level</li>



<li>Edit Metadata for each file</li>



<li>Duplicate files, folders, up to bucket level</li>



<li>Monitor our file transfer process</li>



<li>Create bookmarks for our other storage accounts (if any) and reconnect without having to enter their credential details every time</li>
</ul>



<p class="wp-block-paragraph">And we can do many other unique &amp; advanced features, such as scheduling backups (using Duck CLI), and mounting the S3 into our Windows OS (using Mountain Duck).</p>



<p class="wp-block-paragraph">Currently, Cyberduck is compatible with Windows OS and macOS.</p>



<div class="wp-block-spacer" style="height: 21px;" aria-hidden="true"> </div>



<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">How-To</h3>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">The steps to install and operate CyberDuck are as follows:</p>



<p class="wp-block-paragraph">Download Cyberduck at <a href="https://cyberduck.io" target="_blank" rel="noreferrer noopener">https://cyberduck.io</a> and install it according to your operating system.</p>







<p class="wp-block-paragraph">↳ If so, open the CyberDuck application. To establish a connection to ServerStadium Storage, click the <strong>Open Connection</strong> button.</p>







<p class="wp-block-paragraph">↳ In the dialog box that appears, fill in according to the example above. For &#8220;Access Key ID&#8221; and &#8220;Secret Access Key&#8221;, you can customize your own. If so, click <strong>Connect</strong>.</p>







<p class="wp-block-paragraph">↳ If it is successful, then our Object Storage will be connected and display the buckets that we have. We can upload files into the ServerStadium Storage service bucket by dragging &amp; dropping the files that we want to upload.</p>







<p class="wp-block-paragraph">↳ We can do some features to our files, folders, or buckets.</p>







<p class="wp-block-paragraph">↳ You can edit files directly (on the go) without downloading the file first.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">CLI S3 Client on Linux OS (Ubuntu)</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Next, manage ServerStadium Storage using the CLI (Command Line Interface). Like S3 tools that use GUI, many parties develop CLI-based S3 tools. One of the most popular is the <strong>S3CMD </strong>tool.</p>









<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">A brief explanation of S3CMD</h3>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph"><strong>S3CMD </strong>is an Open Source tool that is free for personal and commercial use. Today, most cloud/sysadmins use S3CMD to manage S3 buckets. S3CMD is written in Python.</p>



<p class="wp-block-paragraph">S3CMD comes with many features and options, including:</p>



<ul class="wp-block-list">
<li>Over 60+ command-line options</li>



<li>Encryption</li>



<li>Incremental Backup</li>



<li>S3 sync</li>



<li>Support multipart uploads</li>



<li>ACLs and metadata management</li>



<li>Check the size of the S3 bucket, and many others</li>
</ul>



<div class="wp-block-spacer" style="height: 21px;" aria-hidden="true"> </div>



<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">How-To</h3>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">S3CMD repositories are, by default, installed for CentOS, RHEL, and Ubuntu Systems. This tutorial will teach us the simple steps to install S3CMD on Linux (Ubuntu) and operate S3CMD to manage ServerStadium Cloud Storage.</p>



<p class="wp-block-paragraph">Run the S3CMD installation using the following command:</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># sudo apt-get install s3cmd</code></pre>



<p class="wp-block-paragraph">If so, now we configure S3CMD to be able to manage our Cloud Storage buckets. Type the following command:</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd --configure</code></pre>







<p class="wp-block-paragraph">↳ There will be some perimeters that we have to fill. We will need ServerStadium Cloud Storage credentials (<strong>Access Key</strong> and <strong>Secret Key</strong>).</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Once the configuration is complete, let&#8217;s use the S3CMD command line to perform some activities on our ServerStadium Cloud Storage service.</p>



<p class="wp-block-paragraph">1. View all of our bucket lists</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd ls</code></pre>



<p class="wp-block-paragraph">2. View the list of contents in our bucket</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd ls s3://bucket-name</code></pre>



<p class="wp-block-paragraph">3. Create a new bucket</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd mb s3://new-bucket-name</code></pre>



<p class="wp-block-paragraph">4. Upload files to the bucket (private)</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd put myfile.txt s3://my-bucket-name/myfile.txt</code></pre>



<p class="wp-block-paragraph">5. Upload files to the bucket (public)</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd put --acl-public --guess-mime-type myfile.txt s3://my-bucket-name/myfile.txt</code></pre>



<p class="wp-block-paragraph">6. Download files on the bucket</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd get s3://my-bucket-name/myfile.txt myfile.txt</code></pre>



<p class="wp-block-paragraph">7. Delete files on the bucket</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd del s3://my-bucket-name/myfile.txt</code></pre>



<p class="wp-block-paragraph">8. Delete the bucket</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd rb s3://my-bucket-name/</code></pre>



<p class="wp-block-paragraph">9. Synchronize files on our local (source) with our S3 bucket (destination)</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd sync my-local-folder-path/ s3://my-bucket-name/</code></pre>



<p class="wp-block-paragraph">10. Synchronize files on our S3 bucket (source) with our local (destination)</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd sync s3://my-bucket-name/ my-local-folder-path/</code></pre>



<p class="wp-block-paragraph">11. Do a dry-run (doesn&#8217;t do the actual activities but only displays information on what the process will do [download or upload] without actually doing it). In this tutorial, we will try the dry-run synchronization process.</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd --dry-run sync s3://my-bucket-name/ my-local-folder-path/</code></pre>



<p class="wp-block-paragraph">Those are the most frequently used commands in S3CMD, where there are download, upload, delete, and sync. We can explore and develop many more commands, one of which is by using <strong>scheduled sync </strong>combined with <strong>cron-jobs</strong>.</p>



<p class="wp-block-paragraph">For other commands, you can explore in command help:</p>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># s3cmd --help</code></pre>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Mobile S3 Client on Android OS</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">The final method we will discuss in this tutorial is accessing and managing ServerStadium Cloud Storage via Mobile S3 Client (Android). This method will be very suitable for those who want to synchronize and back up our archived data on a Mobile Phone.</p>



<p class="wp-block-paragraph">The Android app that we use in this discussion is <strong>BucketAnywhere for S3</strong>. One of the reasons is that it is stable, and there have been no problems or bugs that we have found.</p>









<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">A brief explanation of BucketAnywhere for S3</h3>





<p class="wp-block-paragraph"><strong>BucketAnywhere</strong> <strong>for S3</strong> is a file manager for Android devices. This application allows us to manage multiple S3 buckets from an Object Storage service provider compliant with the S3 REST API, which ServerStadium Cloud Storage uses.</p>



<p class="wp-block-paragraph">The features provided are quite complete and no less interesting than the two tools we discussed earlier, including:</p>



<ul class="wp-block-list">
<li>Upload, download, delete, rename, and copy files</li>



<li>Edit permissions (<em>ACL</em>) of each file, up to bucket level</li>



<li>Create bookmarks for our other S3 accounts (<em>if any</em>) and reconnect without having to enter their credential details (Server URL, Access Key ID, Secret Access Key)</li>



<li>Support resume (continue) unfinished download process</li>



<li>Server-side encryption support</li>



<li>Support for sharing S3 files with a custom expiration date</li>
</ul>



<p class="wp-block-paragraph">If we need file synchronization features (remote/local mirrors, scheduling, and widgets) without ads, we can grab the Pro version for around <strong>$4.49</strong>.</p>





<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">How-To</h3>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">The steps to install and operate BucketAnywhere are as follows:</p>



<p class="wp-block-paragraph">Download BucketAnywhere on PlayStore, or via the following <a href="https://play.google.com/store/apps/details?id=lysesoft.s3anywhere" target="_blank" rel="noreferrer noopener">link</a>.</p>







<p class="wp-block-paragraph">↳ The initial dashboard of BucketAnywhere is as follows. We can add a new connection by clicking <strong>Add</strong>.</p>







<p class="wp-block-paragraph">↳ We will be taken to a menu for our S3 Bucket settings. There are 3 tab menus that we can configure here. The main perimeter is in the General tab, which you can fill in as follows:</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<ul class="wp-block-list">
<li>S3 URL: Fill in ServerStadium Cloud Storage URL</li>



<li>KeyID : Fill in the KeyID you have in your account</li>



<li>SecretKey : Fill in the SecretKey you have in your account</li>



<li>Bucket : Fill in the name of your bucket in Storage Raya that you want to manage</li>



<li>Local dir : The location on the mobile phone that you use to save files or sync with your Storage Raya bucket</li>



<li>Resume: We can check if we want to resume the unfinished file download process from the bucket</li>
</ul>







<p class="wp-block-paragraph">↳ The configuration on the <strong>Advanced </strong>menu is an advanced feature that you can adjust depending on your needs.</p>







<p class="wp-block-paragraph">↳ You can use the <strong>Sync </strong>tab if you are using the Pro version, where you can synchronize files (remote/local mirrors, scheduling, and widgets) in this menu. If so, you can click <strong>Save</strong>.</p>







<p class="wp-block-paragraph">↳ Now connect your bucket by clicking <strong>Connect</strong>.</p>











<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">All in all, ServerStadium Cloud Storage can be managed in various ways using S3 Client Applications. This S3 Client Applications include GUI S3 Client on Windows OS using Cyberduck, CLI S3 Client using S3 CMD, and Mobile S3 Client on Android OS using BucketAnywhere for S3. Each way can be done easily without any hassle.</p>



<p class="wp-block-paragraph">Find more tutorials in ServerStadium&#8217;s <strong><a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">knowledge base</a></strong>.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/managing-serverstadium-storage-from-various-tools-and-from-various-os/">Managing ServerStadium Storage from various tools and from various OS</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Binding NextCloud with ServerStadium S3 Object Storage as External Storage Mount</title>
		<link>https://serverstadium.com/knowledge-base/binding-nextcloud-with-serverstadium-s3-object-storage/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 16:02:18 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2805</guid>

					<description><![CDATA[<p>In the previous tutorial we discussed NextCloud, starting from its definition, features, and how to implement it in ServerStadium VM, to one of the extensions uses in using Nextcloud, namely utilizing Collabora Online. Well, because NextCloud has a very large and wide potential in its use, then in this tutorial, let&#8217;s discuss one of the&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/binding-nextcloud-with-serverstadium-s3-object-storage/">Binding NextCloud with ServerStadium S3 Object Storage as External Storage Mount</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the previous <a href="https://ServerStadium.com/knowledge-base/installing-nextcloud/" target="_blank" rel="noreferrer noopener">tutorial</a> we discussed NextCloud, starting from its definition, features, and how to implement it in ServerStadium VM, to one of the extensions uses in using Nextcloud, namely utilizing Collabora Online.</p>



<p class="wp-block-paragraph">Well, because NextCloud has a very large and wide potential in its use, then in this tutorial, let&#8217;s discuss one of the potentials that NextCloud can give us. And, of course, this is a game changer for all of you in seeing and using NextCloud in the future.</p>



<p class="wp-block-paragraph">Yes, we will talk about configuring S3 Object Storage from ServerStadium so that it can be integrated with our NextCloud service in the VM.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">The Benefits</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">By configuring S3 Object Storage on the NextCloud server, we will get a lot of advantages in terms of storage space.</p>


<div class="wp-block-image is-style-default">
<figure class="aligncenter size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture1.png"><img loading="lazy" decoding="async" class="wp-image-2810" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture1.png" alt="" width="547" height="547" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture1.png 1093w, https://serverstadium.com/wp-content/uploads/2022/10/Picture1-300x300.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture1-1024x1024.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture1-150x150.png 150w, https://serverstadium.com/wp-content/uploads/2022/10/Picture1-768x768.png 768w" sizes="(max-width: 547px) 100vw, 547px" /></a></figure>
</div>


<p class="wp-block-paragraph">As we know, by default, NextCloud will use the storage space of our VM as a place to store its files.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture2.png"><img loading="lazy" decoding="async" class="wp-image-2809" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture2.png" alt="" width="548" height="548" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture2.png 1095w, https://serverstadium.com/wp-content/uploads/2022/10/Picture2-300x300.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture2-1024x1024.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture2-150x150.png 150w, https://serverstadium.com/wp-content/uploads/2022/10/Picture2-768x768.png 768w" sizes="(max-width: 548px) 100vw, 548px" /></a></figure>
</div>


<p class="wp-block-paragraph">By binding NextCloud with S3 object storage, you don&#8217;t have to worry about running out of storage space on your VM.</p>



<p class="wp-block-paragraph">Because basically, the NextCloud system doesn&#8217;t need a VM specification that is too big, but the only problem is the storage space.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture3.png"><img loading="lazy" decoding="async" class="wp-image-2814" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture3.png" alt="" width="546" height="546" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture3.png 1091w, https://serverstadium.com/wp-content/uploads/2022/10/Picture3-300x300.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture3-1024x1024.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture3-150x150.png 150w, https://serverstadium.com/wp-content/uploads/2022/10/Picture3-768x768.png 768w" sizes="(max-width: 546px) 100vw, 546px" /></a></figure>
</div>


<p class="wp-block-paragraph">What&#8217;s more, this configuration will also separate your content that is in the VM from your content that is in S3 Object Storage. So if our VM goes down for whatever reason, at least you still have access to your S3 bucket.</p>



<p class="wp-block-paragraph">This is one of the benefits that I think is very good!</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Prerequisites</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">OK, let&#8217;s move on to the implementation.</p>



<p class="wp-block-paragraph">Before we get into the discussion, there are a few things you should do:</p>



<ol class="wp-block-list">
<li>Have a ServerStadium VM that has NextCloud installed in it. If you don&#8217;t know how to install NextCloud in a ServerStadium VM, you can check the following <a href="https://ServerStadium.com/knowledge-base/installing-nextcloud/" target="_blank" rel="noreferrer noopener">tutorial</a>.</li>



<li>Have Object Storage service in ServerStadium and have created the bucket. If you are not familiar with the S3 Object Storage service from ServerStadium, you can also check the following <a href="https://ServerStadium.com/knowledge-base/ServerStadium-s3-object-storage/" target="_blank" rel="noreferrer noopener">tutorial</a>.</li>
</ol>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Implementation</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture4.png"><img loading="lazy" decoding="async" class="wp-image-2817" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture4.png" alt="" width="661" height="601" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture4.png 881w, https://serverstadium.com/wp-content/uploads/2022/10/Picture4-300x273.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture4-768x698.png 768w" sizes="(max-width: 661px) 100vw, 661px" /></a></figure>



<p class="wp-block-paragraph">↳ First of all, access your NextCloud dashboard. Make sure you are logged in as an admin.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture5.png"><img loading="lazy" decoding="async" class="wp-image-2822" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture5.png" alt="" width="592" height="495" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture5.png 592w, https://serverstadium.com/wp-content/uploads/2022/10/Picture5-300x251.png 300w" sizes="(max-width: 592px) 100vw, 592px" /></a></figure>



<p class="wp-block-paragraph">↳ On the &#8220;user icon&#8221;, click <strong>Apps</strong></p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture6.png"><img loading="lazy" decoding="async" class="wp-image-2823" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture6.png" alt="" width="934" height="377" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture6.png 1383w, https://serverstadium.com/wp-content/uploads/2022/10/Picture6-300x121.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture6-1024x414.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture6-768x310.png 768w" sizes="(max-width: 934px) 100vw, 934px" /></a></figure>



<p class="wp-block-paragraph">↳ Then in the search field, type &#8220;External storage&#8221;, after which several results will be displayed.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture7.png"><img loading="lazy" decoding="async" class="wp-image-2824" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture7.png" alt="" width="930" height="339" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture7.png 1376w, https://serverstadium.com/wp-content/uploads/2022/10/Picture7-300x109.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture7-1024x374.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture7-768x280.png 768w" sizes="(max-width: 930px) 100vw, 930px" /></a></figure>



<p class="wp-block-paragraph">↳ In the External storage support result, change it to <strong>enable</strong></p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Okay, now we are ready to add external storage to our NextCloud. According to this tutorial, we will connect ServerStadium with NextCloud.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture8.png"><img loading="lazy" decoding="async" width="484" height="371" class="wp-image-2825" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture8.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture8.png 484w, https://serverstadium.com/wp-content/uploads/2022/10/Picture8-300x230.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></a></figure>



<p class="wp-block-paragraph">↳ Now click on the user icon again, then click on <strong>Settings</strong>.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture9.png"><img loading="lazy" decoding="async" class="wp-image-2826" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture9.png" alt="" width="922" height="378" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture9.png 698w, https://serverstadium.com/wp-content/uploads/2022/10/Picture9-300x123.png 300w" sizes="(max-width: 922px) 100vw, 922px" /></a></figure>



<p class="wp-block-paragraph">↳ On the left menu, select <strong>External storages</strong> in the &#8220;<strong>Administration</strong>&#8221; section. Later the configuration page will appear.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture10.png"><img loading="lazy" decoding="async" class="wp-image-2827" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture10.png" alt="" width="909" height="369" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture10.png 569w, https://serverstadium.com/wp-content/uploads/2022/10/Picture10-300x122.png 300w" sizes="(max-width: 909px) 100vw, 909px" /></a></figure>



<p class="wp-block-paragraph">↳ In the &#8220;Folder Name&#8221; field, enter a name for this external storage directory in NextCloud.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture11.png"><img loading="lazy" decoding="async" class="wp-image-2828" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture11.png" alt="" width="695" height="506" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture11.png 486w, https://serverstadium.com/wp-content/uploads/2022/10/Picture11-300x219.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>



<p class="wp-block-paragraph">↳ Select <strong>Amazon S3</strong>, In the &#8220;External Storage&#8221; dropdown.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">For those who are still wondering why we choose Amazon S3, so, ServerStadium itself is an S3-compatible Object Storage service. And by default, NextCloud connects to the Amazon Object Storage service. However, we can still override this by inputting the host from ServerStadium instead.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture12.png"><img loading="lazy" decoding="async" class="wp-image-2829" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture12.png" alt="" width="702" height="417" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture12.png 653w, https://serverstadium.com/wp-content/uploads/2022/10/Picture12-300x178.png 300w" sizes="(max-width: 702px) 100vw, 702px" /></a></figure>



<p class="wp-block-paragraph">↳ OK, if so, in the &#8220;Authentication&#8221; dropdown, select the <strong>Access key</strong>.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture13.png"><img loading="lazy" decoding="async" class="wp-image-2830" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture13.png" alt="" width="928" height="316" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture13.png 839w, https://serverstadium.com/wp-content/uploads/2022/10/Picture13-300x102.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture13-768x262.png 768w" sizes="(max-width: 928px) 100vw, 928px" /></a></figure>



<p class="wp-block-paragraph">↳ Finally, in the &#8220;Configuration&#8221; field, enter the following fields:</p>



<ul class="wp-block-list">
<li>Under &#8220;Bucket&#8221;, enter the name of the bucket from ServerStadium you created.<br /><img loading="lazy" decoding="async" width="800" height="303" class="wp-image-2831" style="width: 800px;" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture14.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture14.png 809w, https://serverstadium.com/wp-content/uploads/2022/10/Picture14-300x113.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture14-768x290.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></li>



<li>Under &#8220;Hostname&#8221;, enter the hostname of ServerStadium. To see it, you can check the link in the &#8220;Endpoint&#8221; section on your ServerStadium page.</li>



<li>Under &#8220;Port&#8221;, enter 443.</li>



<li>In &#8220;Region&#8221;, enter the region of your ServerStadium storage, to find out you can enter the subdomain of this hostname, which is <strong>s3-jak01 </strong>in this example.</li>



<li>Under &#8220;Enable SSL&#8221;, check this option.</li>



<li>For other checks, leave the defaults.</li>
</ul>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture15.png"><img loading="lazy" decoding="async" class="wp-image-2832" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture15.png" alt="" width="457" height="160" /></a></figure>



<p class="wp-block-paragraph">↳ In &#8220;Access Key&#8221; and &#8220;Secret Key&#8221;, enter according to the one in your ServerStadium storage panel.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture16.png"><img loading="lazy" decoding="async" class="wp-image-2833" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture16.png" alt="" width="599" height="340" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture16.png 505w, https://serverstadium.com/wp-content/uploads/2022/10/Picture16-300x170.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></a></figure>



<p class="wp-block-paragraph">↳ There is also a field to determine whether this bucket will be shared with certain NextCloud users or available for all users. If you have your own preferences, you can enter the user or group here.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture17.png"><img loading="lazy" decoding="async" class="wp-image-2834" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture17.png" alt="" width="931" height="337" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture17.png 1306w, https://serverstadium.com/wp-content/uploads/2022/10/Picture17-300x109.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture17-1024x372.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture17-768x279.png 768w" sizes="(max-width: 931px) 100vw, 931px" /></a></figure>



<p class="wp-block-paragraph">↳ If so, click on the <strong>Check icon</strong> on the right to save the configuration.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture18.png"><img loading="lazy" decoding="async" class="wp-image-2835" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture18.png" alt="" width="932" height="337" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture18.png 1281w, https://serverstadium.com/wp-content/uploads/2022/10/Picture18-300x109.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture18-1024x371.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture18-768x278.png 768w" sizes="(max-width: 932px) 100vw, 932px" /></a></figure>



<p class="wp-block-paragraph">↳ If all the configurations you entered are valid, then you will see a green checkbox appear next to the entry.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">OK, the configuration is complete; now let&#8217;s check the results.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture19.png"><img loading="lazy" decoding="async" class="wp-image-2836" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture19.png" alt="" width="769" height="387" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture19.png 624w, https://serverstadium.com/wp-content/uploads/2022/10/Picture19-300x151.png 300w" sizes="(max-width: 769px) 100vw, 769px" /></a></figure>



<p class="wp-block-paragraph">↳ On the top menu, click on the <strong>Files</strong> menu item.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture20.png"><img loading="lazy" decoding="async" class="wp-image-2837" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture20.png" alt="" width="938" height="524" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture20.png 1309w, https://serverstadium.com/wp-content/uploads/2022/10/Picture20-300x168.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture20-1024x573.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture20-768x429.png 768w" sizes="(max-width: 938px) 100vw, 938px" /></a></figure>



<p class="wp-block-paragraph">↳ The external storage folder that we created earlier will appear in our account&#8217;s NextCloud folder list.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture21.png"><img loading="lazy" decoding="async" class="wp-image-2838" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture21.png" alt="" width="922" height="465" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture21.png 1046w, https://serverstadium.com/wp-content/uploads/2022/10/Picture21-300x151.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture21-1024x517.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture21-768x388.png 768w" sizes="(max-width: 922px) 100vw, 922px" /></a></figure>



<p class="wp-block-paragraph">↳ Let&#8217;s try clicking on the folder to see its contents. But there shouldn&#8217;t be any contents because our bucket is still empty. Unless you have uploaded certain files in this bucket in the ServerStadium panel before.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Now let&#8217;s test whether this external storage is really synchronized with our bucket.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture22.png"><img loading="lazy" decoding="async" class="wp-image-2839" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture22.png" alt="" width="727" height="333" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture22.png 515w, https://serverstadium.com/wp-content/uploads/2022/10/Picture22-300x137.png 300w" sizes="(max-width: 727px) 100vw, 727px" /></a></figure>



<p class="wp-block-paragraph">↳ Let&#8217;s try uploading the file.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture23.png"><img loading="lazy" decoding="async" class="wp-image-2840" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture23.png" alt="" width="848" height="522" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture23.png 661w, https://serverstadium.com/wp-content/uploads/2022/10/Picture23-300x185.png 300w" sizes="(max-width: 848px) 100vw, 848px" /></a></figure>



<p class="wp-block-paragraph">↳ Okay, it&#8217;s been uploaded; now let&#8217;s check the bucket on the ServerStadium dashboard.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/10/Picture24.png"><img loading="lazy" decoding="async" class="wp-image-2841" src="https://serverstadium.com/wp-content/uploads/2022/10/Picture24.png" alt="" width="940" height="423" srcset="https://serverstadium.com/wp-content/uploads/2022/10/Picture24.png 1040w, https://serverstadium.com/wp-content/uploads/2022/10/Picture24-300x135.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/Picture24-1024x461.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/Picture24-768x346.png 768w" sizes="(max-width: 940px) 100vw, 940px" /></a></figure>



<p class="wp-block-paragraph">↳ And it is synchronized.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Okay, that&#8217;s it, everyone, in this tutorial, we&#8217;ve both learned about the use of nextcloud extension because the nextcloud provides a lot of additional integrations that we can do in it.</p>



<p class="wp-block-paragraph">Now by combining S3 with nextcloud, you no longer need to worry about storage space that is limited by the storage size of the NextCloud VM, and you are free to upload and delete files according to your needs because ServerStadium already carries a pay-per-use method as well. So you pay per hour according to the size of the files you have.</p>



<p class="wp-block-paragraph">Find more insight on our <a href="https://ServerStadium.com/knowledge-base/">knowledge base</a> page for tutorials and technology updates!</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/binding-nextcloud-with-serverstadium-s3-object-storage/">Binding NextCloud with ServerStadium S3 Object Storage as External Storage Mount</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Simple monitoring and alerting with Monit on Ubuntu 22.04 LTS</title>
		<link>https://serverstadium.com/knowledge-base/simple-monitoring-and-alerting-with-monit-on-ubuntu-22-04-lts/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Wed, 12 Oct 2022 05:17:48 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2767</guid>

					<description><![CDATA[<p>TLDR Guide On Ubuntu 22.04: Example config: Mailserver config example using Gmail in /etc/monit/monitrc: Then reload Monit: Introduction Monit is a utility to monitor your services, systems, and processes and can handle alarms. Not only that, monit is available on most official upstream repositories. Its lightweight web user interface allows you to review the monitored&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/simple-monitoring-and-alerting-with-monit-on-ubuntu-22-04-lts/">Simple monitoring and alerting with Monit on Ubuntu 22.04 LTS</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">TLDR Guide</h2>



<p class="wp-block-paragraph">On Ubuntu 22.04:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code> sudo apt update
 sudo apt install monit -y
 sudo systemctl enable monit --now</code></pre>



<p class="wp-block-paragraph">Example config:</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>check filesystem root with path /dev/sda1
    if space usage &gt; 90% for 5 cycles then alert</code></pre>



<p class="wp-block-paragraph">Mailserver config example using Gmail in <code>/etc/monit/monitrc</code>:</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>set mailserver smtp.gmail.com port 587
    username "your-username" password "12-digit-app-password"
    using tlsv13
    with timeout 30 seconds

set alert your-username+alerting@gmail.com</code></pre>



<p class="wp-block-paragraph">Then reload Monit:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code> sudo monit reload</code></pre>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">Monit is a utility to monitor your services, systems, and processes and can handle alarms. Not only that, monit is available on most official upstream repositories. Its lightweight web user interface allows you to review the monitored components in a simple visual representation.</p>



<p class="wp-block-paragraph">So, in this article, I will show you how to install<strong> Monit</strong>, monitor things, and set the alerting for them as well. This time, I will use a Ubuntu 22.04 VM instance.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Installation Steps</h2>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Do a repository update and install Monit:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>sudo apt update
sudo apt install monit -y</code></pre>



<p class="wp-block-paragraph"><strong>Step 2.</strong> Start monit service and enable it</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>sudo systemctl enable monit --now</code></pre>



<p class="wp-block-paragraph"><strong>Step 3.</strong> Open the <code>/etc/monit/monitrc</code> file, then find the following lines and uncomment them to enable the Web UI (specify the SSL cert path if you have one):</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>set httpd port 2812 and
    use address localhost  
    allow localhost        
    allow admin:monit</code></pre>



<p class="wp-block-paragraph"><strong>Step 4</strong>. Reload monit.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>sudo monit reload</code></pre>



<p class="wp-block-paragraph"><strong>Step 5.</strong> Test it by issuing <code>sudo monit status</code>, it should output something like this:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2772" src="https://serverstadium.com/wp-content/uploads/2022/10/image-9.png" alt="" width="949" height="298" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-9.png 1265w, https://serverstadium.com/wp-content/uploads/2022/10/image-9-300x94.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-9-1024x321.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/image-9-768x241.png 768w" sizes="(max-width: 949px) 100vw, 949px" />
<figcaption>Monit status output</figcaption>
</figure>
</div>


<p class="wp-block-paragraph">You can access the Web UI by tunneling port 2812 to any free local port on your PC/Laptop.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2774" src="https://serverstadium.com/wp-content/uploads/2022/10/image-10.png" alt="" width="977" height="546" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-10.png 1302w, https://serverstadium.com/wp-content/uploads/2022/10/image-10-300x168.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-10-1024x573.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/image-10-768x429.png 768w" sizes="(max-width: 977px) 100vw, 977px" />
<figcaption>Monit&#8217;s Web UI</figcaption>
</figure>
</div>


<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Monitoring things</h2>



<p class="wp-block-paragraph">Monit can monitor a variety of things, for instance:</p>



<ul class="wp-block-list">
<li>Monitor websites using HTTP or HTTPS protocol</li>
<li>Monitor TCP ports</li>
<li>Monitor remote hosts</li>
<li>Monitor popular protocols like SMTP, FTP, LDAP, etc.</li>
<li>Monitor SSL certificates</li>
<li>Monitor processes</li>
<li>Monitor files, directories, and disks</li>
<li>Monitor network interfaces</li>
<li>Monitor a program&#8217;s output</li>
<li>Etc.</li>
</ul>



<p class="wp-block-paragraph">This time, I&#8217;ll show an example of monitoring a remote host and local disk usage.</p>



<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Monitor a remote host</h3>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Go to <code>/etc/monit/conf.d</code> and create a new file. The name could be anything, but for example, name it simply &#8220;host&#8221;</p>



<p class="wp-block-paragraph"><strong>Step 2.</strong> Edit the file with the following content:</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>check host myhost with address IP-ADDRESS
    if failed ping then alert</code></pre>



<p class="wp-block-paragraph">It means that we monitor a host at the specified IP-ADDRESS, and if it can&#8217;t be pinged, then send an alert. Pretty straightforward, right?</p>



<p class="wp-block-paragraph"><strong>Step 3.</strong> Do a <code>sudo monit reload</code> to allow Monit to reload its configurations without stopping the service.</p>



<p class="wp-block-paragraph"><strong>Step 4.</strong> Check the monitoring using <code>sudo monit status myhost</code></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="571" height="247" class="wp-image-2775" src="https://serverstadium.com/wp-content/uploads/2022/10/image-11.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-11.png 571w, https://serverstadium.com/wp-content/uploads/2022/10/image-11-300x130.png 300w" sizes="(max-width: 571px) 100vw, 571px" />
<figcaption>Monitor status</figcaption>
</figure>
</div>


<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Monitor a local disk</h3>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Create a new config file in <code>/etc/monit/conf.d</code> and name it a &#8220;disk&#8221;</p>



<p class="wp-block-paragraph"><strong>Step 2.</strong> Fill in the file with the following configuration. You may change the disk to your actual disk path:</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>check filesystem root with path /dev/sda1
    if space usage &gt; 90% then alert</code></pre>



<p class="wp-block-paragraph"><strong>Step 3.</strong> Reload monit: <code>sudo monit reload</code></p>



<p class="wp-block-paragraph"><strong>Step 4.</strong> Verify the monitor: <code>sudo monit status root</code></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2776" src="https://serverstadium.com/wp-content/uploads/2022/10/image-12.png" alt="" width="680" height="461" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-12.png 907w, https://serverstadium.com/wp-content/uploads/2022/10/image-12-300x203.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-12-768x520.png 768w" sizes="(max-width: 680px) 100vw, 680px" />
<figcaption>Disk monitoring status</figcaption>
</figure>
</div>


<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Configure email alerting</h2>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Open <code>/etc/monit/monitrc</code></p>



<p class="wp-block-paragraph"><strong>Step 2.</strong> Add the following lines and adjust the data accordingly</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>set maileserver your.smtp-server.com port the-port
    username "username" password "password"
    using tls 

set alert alert-recipient@example.com</code></pre>



<p class="wp-block-paragraph">However, if you only have a public mailing service like Gmail for instance, you can use the following configuration:</p>



<pre class="wp-block-code has-background" style="background-color: #ffecbf;"><code>set mailserver smtp.gmail.com port 587
    username "username-without-atgmailcom" password "the-password"
    using tls
    with timeout 30 seconds

set alert alert-recipient@example.com</code></pre>



<p class="wp-block-paragraph"><strong>Step 3.</strong> Test the alert by simply reloading the Monit. Example email:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" class="wp-image-2778" src="https://serverstadium.com/wp-content/uploads/2022/10/image-13.png" alt="" />
<figcaption>Alert email from monit</figcaption>
</figure>
</div>


<p class="wp-block-paragraph">You can change the alerting format in the <code>monitrc</code> file; try looking around at the config.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Additional Notes</h2>



<p class="wp-block-paragraph">For more examples of how to add other monitoring types, please visit Monit&#8217;s official documentation here: <a href="https://mmonit.com/monit/documentation/monit.html" target="_blank" rel="noreferrer noopener">https://mmonit.com/monit/documentation/monit.html</a></p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">It&#8217;s so easy to install and configure Monit and monitor things.</p>



<p class="wp-block-paragraph">Find more tips and tutorials article in ServerStadium&#8217;s <strong><a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">Knowledge Base</a>.</strong> Even better, you can<strong><a href="https://cp.serverstadium.com/regist-user" target="_blank" rel="noreferrer noopener"> register</a></strong> in ServerStadium and try our powerful VM.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/simple-monitoring-and-alerting-with-monit-on-ubuntu-22-04-lts/">Simple monitoring and alerting with Monit on Ubuntu 22.04 LTS</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>VS Code on your browser! How to install code-server on a VM</title>
		<link>https://serverstadium.com/knowledge-base/vs-code-on-your-browser-how-to-install-code-server-on-a-vm/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Tue, 11 Oct 2022 09:57:17 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2749</guid>

					<description><![CDATA[<p>TLDR Guide Access the VS Code via SSH Tunnel on 8080:127.0.0.1:8080, then open your browser. Enjoy! Introduction Did you know that you can have your very own VS Code server that can be accessed anywhere on your browser? This way, your development environment is no longer dependent on your device. And If you have a&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/vs-code-on-your-browser-how-to-install-code-server-on-a-vm/">VS Code on your browser! How to install code-server on a VM</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">TLDR Guide</h2>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>sudo useradd -m -G sudo -s /bin/bash devel
sudo passwd devel
sudo su - devel
# as devel user #
curl -fsSL https://code-server.dev/install.sh | sudo sh
systemctl enable --now code-server@$USER</code></pre>



<p class="wp-block-paragraph">Access the VS Code via SSH Tunnel on <code>8080:127.0.0.1:8080</code>, then open your browser. Enjoy!</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Introduction</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2750" src="https://serverstadium.com/wp-content/uploads/2022/10/image.png" alt="" width="991" height="553" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image.png 1321w, https://serverstadium.com/wp-content/uploads/2022/10/image-300x167.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-1024x571.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/image-768x428.png 768w" sizes="(max-width: 991px) 100vw, 991px" />
<figcaption>VS Code in a browser!</figcaption>
</figure>
</div>


<p class="wp-block-paragraph">Did you know that you can have your very own VS Code server that can be accessed anywhere on your browser? This way, your development environment is no longer dependent on your device. And If you have a low-end PC/Mac/Laptop, running VS Code locally will burden your machine and will run very slowly.</p>



<p class="wp-block-paragraph">So, let&#8217;s jump into it!</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Preparation</h2>



<p class="wp-block-paragraph">In this article, the VS Code server will be running locally on the server. So, by default, public access is not available. So how would you access it? You can choose any of the following options:</p>



<ol class="wp-block-list">
<li>Using an SSH tunnel.</li>
<li>Using a reverse proxy with basic HTTP authentication.</li>
<li>Using ServerStadium&#8217;s VPN or your own VPN server.</li>
</ol>



<p class="wp-block-paragraph">I will only explain the first option.</p>



<h3 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">System requirements</h3>



<p class="wp-block-paragraph">The official minimal system requirements are:</p>



<ul class="wp-block-list">
<li>1 GB of RAM</li>
<li>2 vCPUs</li>
</ul>



<p class="wp-block-paragraph">You can use any Linux distribution of your choice, but I will show you how to deploy it on an Ubuntu server.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Installation Steps</h2>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Log in to your server. Assuming it&#8217;s a freshly deployed server, always update the packages.</p>



<p class="wp-block-paragraph"><strong>Step 2.</strong> Create a new user. Let&#8217;s call it <code>devel</code> and set a password for it. Also, make sure it&#8217;s a sudoer.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># useradd -m -G sudo -s /bin/bash devel
# passwd devel</code></pre>



<p class="wp-block-paragraph"><strong>Step 3. </strong>As the <code>devel</code> user (and from now on), install <code>code-server</code> by running the following command:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>curl -fsSL https://code-server.dev/install.sh | sudo sh</code></pre>



<p class="wp-block-paragraph"><strong>Step 4.</strong> Start the <code>code-server</code> service and enable it on boot.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>sudo systemctl enable --now code-server@$USER</code></pre>



<p class="wp-block-paragraph"><strong>Step 5. </strong>Ensure it&#8217;s running by doing the following command:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>ss -tulpn | grep 8080</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2751" src="https://serverstadium.com/wp-content/uploads/2022/10/image-1.png" alt="" width="755" height="44" />
<figcaption>code-server is listening on port 8080</figcaption>
</figure>
</div>


<p class="wp-block-paragraph"><strong>Step 6.</strong> Open <code>~/.config/code-server/config.yaml</code> to get the login password.</p>



<p class="wp-block-paragraph"><strong>Step 7.</strong> Done.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Accessing via SSH Tunnel</h2>



<p class="wp-block-paragraph"><strong>Step 1.</strong> Ensure the SSH port (default is 22) is accessible from your network.</p>



<p class="wp-block-paragraph"><strong>Step 2a.</strong> On a <strong>Linux</strong>/<strong>Mac</strong> workstation, do the following :</p>



<ul class="wp-block-list">
<li>Open your terminal.</li>
<li>Type the below command:</li>
</ul>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>ssh -N -L anyport:127.0.0.1:8080 devel@your-server-ip </code></pre>



<ul class="wp-block-list">
<li>The <code>anyport </code>is literally any port you wish as long as it&#8217;s not being used. Port 8000 for example.</li>
<li>The command will seem to do nothing, but that is how it works. The tunnel is being established.</li>
</ul>



<p class="wp-block-paragraph"><strong>Step 2b.</strong> On a <strong>Windows</strong> workstation, do as follows:</p>



<ul class="wp-block-list">
<li>Download and Install <strong>PuTTY</strong></li>
<li>Start <strong>PuTTY</strong>, fill in your server IP address/hostname:</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2752" src="https://serverstadium.com/wp-content/uploads/2022/10/image-2.png" alt="" width="339" height="332" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-2.png 452w, https://serverstadium.com/wp-content/uploads/2022/10/image-2-300x294.png 300w" sizes="(max-width: 339px) 100vw, 339px" />
<figcaption>PuTTY Session</figcaption>
</figure>
</div>


<ul class="wp-block-list">
<li>Then go to <strong>Connection &gt; SSH &gt; Tunnels</strong></li>
<li>On the <strong>Source port</strong> define your desired port, any port as long as it&#8217;s not being used yet. And in the <strong>Destination</strong> box, type <code>127.0.0.1:8080</code>. And finally, click <strong>Add</strong>.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2753" src="https://serverstadium.com/wp-content/uploads/2022/10/image-3.png" alt="" width="338" height="332" />
<figcaption>Tunnel setting in PuTTY</figcaption>
</figure>
</div>


<ul class="wp-block-list">
<li>Go back to the <strong>Session </strong>menu, give a name for the session and click <strong>Save</strong>. This way you can directly connect to this configuration in the future easily.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="297" height="234" class="wp-image-2755" src="https://serverstadium.com/wp-content/uploads/2022/10/image-4.png" alt="" />
<figcaption>Save Session</figcaption>
</figure>
</div>


<ul class="wp-block-list">
<li>Lastly, click<strong> Open </strong>to establish the tunnel.</li>
</ul>



<p class="wp-block-paragraph"><strong>Step 3.</strong> Open your browser and type <code>localhost:theport</code> replacing <code>theport</code> with the port, you previously defined when establishing the tunnel.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2758" src="https://serverstadium.com/wp-content/uploads/2022/10/image-7.png" alt="" width="986" height="443" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-7.png 1315w, https://serverstadium.com/wp-content/uploads/2022/10/image-7-300x135.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-7-1024x459.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/image-7-768x345.png 768w" sizes="(max-width: 986px) 100vw, 986px" />
<figcaption>Accessing the VS Code</figcaption>
</figure>
</div>


<p class="wp-block-paragraph"><strong>Step 4.</strong> Put the password as you can find it in the file, then click Submit.</p>



<p class="wp-block-paragraph"><strong>Step 5.</strong> Happy coding!</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2759" src="https://serverstadium.com/wp-content/uploads/2022/10/image-8.png" alt="" width="988" height="479" srcset="https://serverstadium.com/wp-content/uploads/2022/10/image-8.png 1317w, https://serverstadium.com/wp-content/uploads/2022/10/image-8-300x146.png 300w, https://serverstadium.com/wp-content/uploads/2022/10/image-8-1024x497.png 1024w, https://serverstadium.com/wp-content/uploads/2022/10/image-8-768x373.png 768w" sizes="(max-width: 988px) 100vw, 988px" />
<figcaption>VS Code in the browser!</figcaption>
</figure>
</div>


<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Last words</h2>



<p class="wp-block-paragraph">If you wish to access it using a dedicated domain/subdomain you own (e.g. code.example.com), check out my other article on <a href="https://serverstadium.com/knowledge-base/reverse-proxy-management-using-nginx-proxy-manager/">Nginx Reverse Proxy</a>. That way, you can proxy and secure your VS Code server using SSL.</p>



<p class="wp-block-paragraph">The only thing you&#8217;ll need to change is the bind IP configuration in the <code>~/.config/code-server/config.yaml</code> then change it to your LAN IP (accessible from the NPM server).</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">Installing VS Code (code-server) on a VM instance is so easy. Simply by running a designated oneliner command, it&#8217;s installed!</p>



<p class="wp-block-paragraph">Check other articles in our <strong><a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">Knowledge Base</a></strong> Or even better, you can try installing VS Code on ServerStadium&#8217;s VM by <a href="https://cp.serverstadium.com/regist-user" target="_blank" rel="noreferrer noopener"><strong>registering</strong> </a>here.</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/vs-code-on-your-browser-how-to-install-code-server-on-a-vm/">VS Code on your browser! How to install code-server on a VM</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Implementing Redis HA and Auto-Failover on ServerStadium</title>
		<link>https://serverstadium.com/knowledge-base/implementing-redis-ha-and-auto-failover-on-serverstadium/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 10:24:43 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2505</guid>

					<description><![CDATA[<p>INTRODUCTION Redis is an open-source, in-memory, key-value data store most commonly used as a primary database, cache, message broker, and queue. Redis delivers sub-millisecond response times, enabling fast and powerful real-time applications in industries such as gaming, fintech, ad-tech, social media, healthcare, and IoT. ARCHITECTURE The Infrastructure layout of Redis multi-cluster is like the picture&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/implementing-redis-ha-and-auto-failover-on-serverstadium/">Implementing Redis HA and Auto-Failover on ServerStadium</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">INTRODUCTION</h2>



<p class="wp-block-paragraph">Redis is an open-source, in-memory, key-value data store most commonly used as a primary database, cache, message broker, and queue. Redis delivers sub-millisecond response times, enabling fast and powerful real-time applications in industries such as gaming, fintech, ad-tech, social media, healthcare, and IoT.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">ARCHITECTURE</h2>



<p class="wp-block-paragraph">The Infrastructure layout of Redis multi-cluster is like the picture below.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2506" src="https://serverstadium.com/wp-content/uploads/2022/09/arsitektur.jpg" alt="" width="555" height="555" srcset="https://serverstadium.com/wp-content/uploads/2022/09/arsitektur.jpg 595w, https://serverstadium.com/wp-content/uploads/2022/09/arsitektur-300x300.jpg 300w, https://serverstadium.com/wp-content/uploads/2022/09/arsitektur-150x150.jpg 150w" sizes="(max-width: 555px) 100vw, 555px" /></figure>



<p class="wp-block-paragraph">The initial setup will need three instances that act as the Redis master-slave.</p>



<p class="wp-block-paragraph">One instance acts as the master, and the rest instances will act as the slave that replicates the data from the Redis master.</p>



<p class="wp-block-paragraph">The Redis sentinel monitoring on each instance will accommodate the high availability component.</p>



<p class="wp-block-paragraph">The Redis sentinel will then change the Redis configuration and determine which instance stands as master or slave.</p>



<p class="wp-block-paragraph">By default, only the Redis master can read and write, whereas the slave instances can only do the read command.</p>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">STEPS</h2>



<h3 class="wp-block-heading">Spin Up New VMs</h3>



<p class="wp-block-paragraph">NOTE: The setup below is the setup used in the tutorial. Please adjust the resources based on the price you are affordable to spend.</p>



<figure class="wp-block-table">
<table>
<tbody>
<tr>
<td><strong>Instance 1</strong></td>
<td><strong>Instance 2</strong></td>
</tr>
<tr>
<td><strong>OS: Ubuntu 22.04 Jammy</strong><br /><strong>vCore: 2<br />Memory: 2 GB<br />Disk: 20 GB<br />Public IP: yes<br />Private IP: 3</strong></td>
<td><strong>OS: Ubuntu 22.04 Jammy</strong><br /><strong>vCore: 2<br />Memory: 2 GB<br />Disk: 20 GB<br />Public IP: No<br />Private IP: 1</strong></td>
</tr>
<tr>
<td><strong>Instance 3</strong></td>
<td> </td>
</tr>
<tr>
<td><strong>OS: Ubuntu 22.04 Jammy</strong><br /><strong>vCore: 2<br />Memory: 2 GB<br />Disk: 20 GB<br />Public IP: No<br />Private IP: 1</strong></td>
<td> </td>
</tr>
</tbody>
</table>
</figure>



<h3 class="wp-block-heading">Machine Tuning</h3>



<p class="wp-block-paragraph"><strong>Disabling THP on each machine</strong></p>



<pre class="wp-block-code"><code>echo never &gt; /sys/kernel/mm/transparent_hugepage/enabled</code></pre>



<p class="wp-block-paragraph"><strong>Enabling overcommit_memory</strong></p>



<pre class="wp-block-code"><code>$ echo 1 &gt; /proc/sys/vm/overcommit_memory
## Set it persistently
$ echo 'vm.overcommit_memory = 1' &gt;&gt; /etc/sysctl.conf</code></pre>



<p class="wp-block-paragraph"><strong>Set swappiness at the least weight</strong></p>



<pre class="wp-block-code"><code>$ echo 1 &gt; /proc/sys/vm/swappiness
## Set it persistently
$ echo 'vm.swappiness = 1' &gt;&gt; /etc/sysctl.conf</code></pre>



<h3 class="wp-block-heading">Install Redis on The Related Machine</h3>



<p class="wp-block-paragraph">Add the repository to the <code>apt</code> index, update it, and then install it.</p>



<pre class="wp-block-code"><code>curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis redis-sentinel</code></pre>



<p class="wp-block-paragraph">&nbsp;</p>



<h3 class="wp-block-heading">Obtain Secondary Private IP and Attached it to the Redis Master</h3>



<ul class="wp-block-list">
<li>Navigate to your Redis Master machine from the ServerStadium portal</li>
<li>Click the <strong>Public &amp; Private IP </strong>tab, then attempt to <strong>Acquire New Private IP</strong></li>
</ul>

<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1358" height="378" class="wp-image-2534" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2022/09/acquire-private-ip-1.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/acquire-private-ip-1.png 1358w, https://serverstadium.com/wp-content/uploads/2022/09/acquire-private-ip-1-300x84.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/acquire-private-ip-1-1024x285.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/acquire-private-ip-1-768x214.png 768w" sizes="(max-width: 1358px) 100vw, 1358px" /></figure>

<ul class="wp-block-list">
<li>Manually attach the new acquired private IP to the VM</li>
</ul>



<pre class="wp-block-code"><code>~# ip addr add 10.10.90.92/24 dev &lt;your interface name&gt;
~# ip addr add 10.10.90.50/24 dev &lt;your interface name&gt;</code></pre>

<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="489" height="347" class="wp-image-2533" style="border: 3px; border-style: solid; border-color: #FF0000;" src="https://serverstadium.com/wp-content/uploads/2022/09/privateIP-1.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/privateIP-1.png 489w, https://serverstadium.com/wp-content/uploads/2022/09/privateIP-1-300x213.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></figure>

<p class="wp-block-paragraph">&nbsp;</p>



<h3 class="wp-block-heading">Configure Redis Server</h3>



<p class="wp-block-paragraph">Add/overwrite the following config to your initial /etc/redis/redis.conf master</p>



<pre class="wp-block-code"><code>bind 127.0.0.1 &lt;private IP&gt;
protected-mode no

# add authentication feature for security
requirepass &lt;your password&gt; 

# will be used to authenticate to master during failover
masterauth &lt;your password&gt; 
masteruser &lt;authoritative user&gt; 

# enable AOF feature
appendonly yes</code></pre>



<p class="wp-block-paragraph">Add / overwrite the following config to your initial /etc/redis/redis.conf slaves</p>



<pre class="wp-block-code"><code>bind 127.0.0.1 &lt;private IP&gt;
protected-mode no

# will replicate the state from the master instance
replicaof &lt;master ip&gt; &lt;master port&gt;

# add authentication feature for security
requirepass &lt;your password&gt; 

# will be used to authenticate to master during failover
masterauth &lt;your password&gt; 
masteruser &lt;authoritative user&gt; 

# enable AOF feature
appendonly yes</code></pre>



<p class="wp-block-paragraph">When done, restart your Redis service on each instance.</p>



<pre class="wp-block-code"><code>systemctl restart redis</code></pre>



<h3 class="wp-block-heading">Config ACL to Set The Authoritative Redis User</h3>



<p class="wp-block-paragraph">Login to your Redis instance using the Redis-CLI command and do the AUTH using the previous password that has been set.</p>



<pre class="wp-block-code"><code>redis-cli -p 6379
127.0.0.1:6379&gt; AUTH default &lt;redis password&gt;

## Example of the ACL
ACL SETUSER admin on allchannels &gt;R3plicationP4sswd ~* &amp;* +@all

## write config to the file
CONFIG REWRITE</code></pre>



<p class="wp-block-paragraph">Make sure the above ACLs are set to each Redis instance.</p>



<h3 class="wp-block-heading">Configure Redis Sentinel</h3>



<p class="wp-block-paragraph">Add / overwrite the following config to your initial /etc/redis/sentinel.conf instances</p>



<pre class="wp-block-code"><code>protected-mode no
sentinel monitor mymaster &lt;master IP&gt; 6379 2

# Example seconds threshold to perform failover
sentinel down-after-milliseconds mymaster 15000
sentinel failover-timeout mymaster 30000

# Example of redis sentinel authentication
sentinel auth-pass mymaster R3plicationP4sswd
sentinel auth-user mymaster admin</code></pre>



<p class="wp-block-paragraph">When done, restart your Redis-sentinel service on each instance.</p>



<pre class="wp-block-code"><code>systemctl restart redis-sentinel</code></pre>



<h3 class="wp-block-heading">Configure Haproxy to Actively Check Redis Auto-Failover Process</h3>



<p class="wp-block-paragraph">Install Haproxy on Redis master node</p>



<pre class="wp-block-code"><code>~# apt-get install haproxy -y</code></pre>



<p class="wp-block-paragraph">Add the following setup to Haproxy Config</p>



<pre class="wp-block-code"><code>listen stats
        bind *:8080
        stats enable
        stats hide-version
        stats refresh 30s
        stats show-node
        stats auth appadmin:Asdf1234
        stats uri /stats


# redis block start

defaults REDIS
        mode tcp
        timeout connect 3s
        timeout server 30s
        timeout client 30s

frontend front_redis_master
        bind 10.10.90.92:6379 name redis
        default_backend back_redis_master

frontend front_redis_slave
        bind 10.10.90.50:6379 name redis
        default_backend back_redis_slave

backend back_redis_master
        option tcp-check
        tcp-check connect
        tcp-check send AUTH\ admin\ R3plicationP4sswd\r\n
        tcp-check send PING\r\n
        tcp-check expect string +PONG
        tcp-check send info\ replication\r\n
        tcp-check expect string role:master
        tcp-check send QUIT\r\n
        tcp-check expect string +OK

        server redis-a 10.10.90.37:6379 check inter 1s
        server redis-b 10.10.90.227:6379 check inter 1s
        server redis-c 10.10.90.147:6379 check inter 1s

backend back_redis_slave
        option tcp-check
        tcp-check connect
        tcp-check send AUTH\ admin\ R3plicationP4sswd\r\n
        tcp-check send PING\r\n
        tcp-check expect string +PONG
        tcp-check send info\ replication\r\n
        tcp-check expect string role:slave
        tcp-check send QUIT\r\n
        tcp-check expect string +OK

        server redis-a 10.10.90.37:6379 check inter 1s
        server redis-b 10.10.90.227:6379 check inter 1s
        server redis-c 10.10.90.147:6379 check inter 1s


# redis block end</code></pre>



<p class="wp-block-paragraph">Save the configuration and restart the Haproxy service</p>



<pre class="wp-block-code"><code>systemctl restart haproxy</code></pre>



<h3 class="wp-block-heading">Failover Test</h3>



<p class="wp-block-paragraph">The failover test section is fulfilled by purposely stopping the Redis service on the master instance.</p>



<p class="wp-block-paragraph">As an expected result, the Redis sentinel will change the config on the Redis master and promote one of the slaves as the new master.</p>



<p class="wp-block-paragraph">The picture below is a Haproxy TCP-check result against the Redis master and the Redis slave role.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" class="wp-image-2527" src="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2.png" alt="" width="839" height="382" srcset="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2.png 1899w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2-300x137.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2-1024x468.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2-768x351.png 768w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1-2-1536x702.png 1536w" sizes="(max-width: 839px) 100vw, 839px" />
<figcaption><strong>Haproxy TCP-Check Result on Redis master-slave</strong></figcaption>
</figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1904" height="716" class="wp-image-2528" src="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1.png 1904w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1-300x113.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1-1024x385.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1-768x289.png 768w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy1.1-1536x578.png 1536w" sizes="(max-width: 1904px) 100vw, 1904px" />
<figcaption><strong>Haproxy TCP-Check Result on Redis master-slave</strong> <strong>(zoom-in)</strong></figcaption>
</figure>



<p class="wp-block-paragraph">During the master promotion, the previous master instance will turn yellow (warning alert), and the successfully promoted instance will turn green.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1858" height="609" class="wp-image-2529" src="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion.png 1858w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion-300x98.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion-1024x336.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion-768x252.png 768w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion-1536x503.png 1536w" sizes="(max-width: 1858px) 100vw, 1858px" />
<figcaption><strong>TCP-chek During Master Promotion</strong></figcaption>
</figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1826" height="607" class="wp-image-2530" src="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1.png 1826w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1-300x100.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1-1024x340.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1-768x255.png 768w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-during-promotion1-1536x511.png 1536w" sizes="(max-width: 1826px) 100vw, 1826px" />
<figcaption><strong>Redis-a Successful Promotion</strong></figcaption>
</figure>



<p class="wp-block-paragraph">The picture above shows the Redis instance successfully promoted to master. The Redis-c is expected to be down because the service was stopped intentionally and has not started yet.</p>



<p class="wp-block-paragraph">The Redis instance C will be promoted to a slave as soon as the Redis service is started.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1855" height="611" class="wp-image-2531" src="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion.png 1855w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion-300x99.png 300w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion-1024x337.png 1024w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion-768x253.png 768w, https://serverstadium.com/wp-content/uploads/2022/09/Haproxy-slave-promotion-1536x506.png 1536w" sizes="(max-width: 1855px) 100vw, 1855px" />
<figcaption><strong>Redis-C Slave Promotion</strong></figcaption>
</figure>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">CONCLUSION</h2>



<p class="wp-block-paragraph">We have learned how to implement Redis HA and Auto-Failover in ServerStadium. Find more tech tutorials and informative articles in ServerStadium&#8217;s <strong><a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">Knowledge Base </a></strong>Or, even better, you can go to ServerStadium&#8217;s <a href="https://cp.serverstadium.com">Cloud Services</a> to get started!</p>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph">&nbsp;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/implementing-redis-ha-and-auto-failover-on-serverstadium/">Implementing Redis HA and Auto-Failover on ServerStadium</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using XFCE Desktop Environment on ServerStadium VM</title>
		<link>https://serverstadium.com/knowledge-base/using-xfce-desktop-environment-on-serverstadium-vm/</link>
		
		<dc:creator><![CDATA[Brian K]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 09:42:45 +0000</pubDate>
				<guid isPermaLink="false">https://cloudraya.com/knowledge-base/?p=2462</guid>

					<description><![CDATA[<p>This article is going to discuss XFCE in ServerStadium Virtual Machine. When we create a VM with Linux OS inside ServerStadium Cloud, it will always be CUI (Command User Interface) / terminal. As a server, we will work more with remote systems. Indeed, a server generally does not need a GUI Desktop Environment installed because&#8230;</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/using-xfce-desktop-environment-on-serverstadium-vm/">Using XFCE Desktop Environment on ServerStadium VM</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This article is going to discuss XFCE in ServerStadium Virtual Machine.</p>



<p class="wp-block-paragraph">When we create a VM with Linux OS inside ServerStadium Cloud, it will always be CUI (Command User Interface) / terminal.</p>



<p class="wp-block-paragraph">As a server, we will work more with remote systems. Indeed, a server generally does not need a GUI Desktop Environment installed because it can be managed with SSH. But if the server we are installing is a LAMP Server (Linux-Apache-MySQL-PHP, including Python and PostgreSQL) then it is very helpful to install the Desktop Environment as well. So, we can browse to find information (such as forgetting how to manage log files on Ubuntu, testing on our server, or even when we want to experience multimedia features like we usually can in the Desktop Environment).</p>



<p class="wp-block-paragraph">Thus, I will explain installing the XFCE Desktop Environment in our Ubuntu VM on ServerStadium Cloud and how to connect it using Remote Desktop Connection.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">What is XFCE?</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">To start, let&#8217;s get to know what is XFCE. XFCE is a lightweight Desktop Environment for UNIX-like operating systems. It targets a Desktop Environment that is fast and low on system resources while remaining visually appealing and user-friendly.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">XFCE Features</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Now, let&#8217;s jump on the features. XFCE contains several core components for the minimum tasks you&#8217;d expect from a desktop environment:</p>



<ul class="wp-block-list">
<li><strong>Window &amp; Desktop Manager<br /></strong>Switch between opened windows, provide window decorations, and set Background images, and icons on the Desktop.</li>
<li><strong>Session Manager<br /></strong>Controls login and power management from the Desktop and allows us to save multiple login sessions.</li>
<li><strong>Application Finder<br /></strong>Shows the applications installed on the system in the form of categories so that we can quickly find and launch them.</li>
<li><strong>File Manager<br /></strong>Provides basic file management features and unique utilities like bulk renamer.</li>
<li><strong>Settings Manager<br /></strong>Tools to control the various settings of the desktop; like keyboard shortcuts, appearance, display settings, etc.</li>
</ul>



<div class="wp-block-spacer" style="height: 18px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Besides the basic set of modules, XFCE also provides numerous additional applications and plugins so you can extend your desktop the way you like, for example, a terminal emulator, text editor, sound mixer, application finder, image viewer, iCal-based calendar and a CD and DVD burning application. You can read more about the modules of XFCE on the <a href="https://www.xfce.org/projects">projects</a> page.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">The Benefits of Using XFCE</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">There are several impacts and benefits that we can get when using XFCE, including:</p>



<ul class="wp-block-list">
<li>Can access Linux VM not only via SSH but also via GUI.</li>
<li>Not only can you use a Linux VM to configure the server, but it can also be used as a means of multimedia, browsing, file management, games, and other common things in the Desktop Environment.</li>
<li>Get the Desktop Environment experience with its lightweight performance.</li>
<li>Get the Desktop Environment experience without additional licenses, like when we use Windows OS.</li>
</ul>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Why Should we Launch XFCE on ServerStadium Cloud?</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Now that we know the features and benefits of using XFCE. Let&#8217;s dive deeper into why we should launch XFCE on ServerStadium Cloud.</p>



<ul class="wp-block-list">
<li>Fast performance thanks to ServerStadium&#8217;s Data Center grade SSD, making our Desktop Environment fast and lightweight</li>
<li>Diverse package options, making us free to determine the VM specifications that suit our Desktop Environment needs</li>
<li>Flexibility in upgrading and downgrading VM specifications. Suitable for those of us who need to adjust VM performance from time to time</li>
<li>Diverse cloud region options</li>
<li>Reliable 24/7/365 ServerStadium&#8217;s support</li>
</ul>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Install XFCE on Ubuntu VM on ServerStadium</h2>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">So, to start with, we need a VM inside ServerStadium. In this article, I will use the Ubuntu OS.</p>



<figure class="wp-block-image size-full"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5.png"><img loading="lazy" decoding="async" width="1033" height="620" class="wp-image-2465" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5.png 1033w, https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5-300x180.png 300w, https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5-1024x615.png 1024w, https://serverstadium.com/wp-content/uploads/2022/08/Picture1-5-768x461.png 768w" sizes="(max-width: 1033px) 100vw, 1033px" /></a></figure>



<p class="wp-block-paragraph">To see how easy it is to launch a VM in ServerStadium, you can check the following article: <u>Create VM on ServerStadium</u></p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">We access the VM via PuTTY.</p>



<p class="wp-block-paragraph">First of all, we need to change the password to make it easier for us to access the remote desktop.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture2-5.png"><img loading="lazy" decoding="async" class="wp-image-2466" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture2-5.png" alt="" width="574" height="252" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture2-5.png 419w, https://serverstadium.com/wp-content/uploads/2022/08/Picture2-5-300x132.png 300w" sizes="(max-width: 574px) 100vw, 574px" /></a></figure>



<pre class="wp-block-code has-black-color has-cyan-bluish-gray-background-color has-text-color has-background"><code># sudo passwd root</code></pre>



<p class="wp-block-paragraph">Then we update and upgrade our Ubuntu package first.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># sudo apt-get update &amp;&amp; apt-get upgrade</code></pre>



<p class="wp-block-paragraph">After the system is up-to-date, we can start installing the Desktop Environment. In this article, I will install Xubuntu-Desktop.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># sudo apt install xubuntu-desktop</code></pre>



<p class="wp-block-paragraph">Several other Desktop Environment options are available, such as KDE, GNOME, etc. But I&#8217;d go with XFCE because it&#8217;s light enough and fast enough; it also works well.</p>



<div class="wp-block-spacer" style="height: 11px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture3-5.png"><img loading="lazy" decoding="async" class="wp-image-2467" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture3-5.png" alt="" width="842" height="533" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture3-5.png 663w, https://serverstadium.com/wp-content/uploads/2022/08/Picture3-5-300x190.png 300w" sizes="(max-width: 842px) 100vw, 842px" /></a></figure>



<div class="wp-block-spacer" style="height: 18px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture4-5.png"><img loading="lazy" decoding="async" class="wp-image-2468" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture4-5.png" alt="" width="841" height="534" /></a>
<figcaption>↳ In this step, you can choose <strong>lightdm</strong></figcaption>
</figure>



<div class="wp-block-spacer" style="height: 18px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">After everything is done, the next thing we will do is install <strong>XRDP</strong>.</p>



<p class="wp-block-paragraph"><strong>XRDP </strong>provides a graphical login to remote machines using RDP (Microsoft Remote Desktop Protocol)</p>



<p class="wp-block-paragraph">Most people prefer to use VNC to do remote work on their servers. However, I prefer RDP, so I will use <strong>XRDP</strong>.</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># sudo apt install xrdp</code></pre>



<p class="wp-block-paragraph">When finished, we will make this XRDP service run automatically at bootup</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># systemctl enable --now xrdp</code></pre>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture5-5.png"><img loading="lazy" decoding="async" class="wp-image-2469" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture5-5.png" alt="" width="856" height="120" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture5-5.png 648w, https://serverstadium.com/wp-content/uploads/2022/08/Picture5-5-300x42.png 300w" sizes="(max-width: 856px) 100vw, 856px" /></a></figure>



<p class="wp-block-paragraph">This way, in the future, when we start the VM, the XRDP service will automatically run.</p>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">We can check the status also with the following command:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># systemctl status xrdp</code></pre>



<div class="wp-block-spacer" style="height: 29px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture6-4.png"><img loading="lazy" decoding="async" class="wp-image-2470" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture6-4.png" alt="" width="842" height="488" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture6-4.png 651w, https://serverstadium.com/wp-content/uploads/2022/08/Picture6-4-300x174.png 300w" sizes="(max-width: 842px) 100vw, 842px" /></a></figure>



<div class="wp-block-spacer" style="height: 12px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3.png"><img loading="lazy" decoding="async" width="1377" height="704" class="wp-image-2474" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3.png" alt="" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3.png 1377w, https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3-300x153.png 300w, https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3-1024x524.png 1024w, https://serverstadium.com/wp-content/uploads/2022/08/Picture7-2-3-768x393.png 768w" sizes="(max-width: 1377px) 100vw, 1377px" /></a>
<figcaption>↳ RDP requires port 3389 to run. So you can add it to the Access Control List in your VPC Network.</figcaption>
</figure>



<div class="wp-block-spacer" style="height: 12px;" aria-hidden="true"> </div>



<p class="wp-block-paragraph">Finally, we will create a file called xsession</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code># nano ~/.xsession</code></pre>



<p class="wp-block-paragraph">Add the following syntax:</p>



<pre class="wp-block-code has-cyan-bluish-gray-background-color has-background"><code>xfce4-session</code></pre>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture8-4.png"><img loading="lazy" decoding="async" class="wp-image-2475" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture8-4.png" alt="" width="838" height="531" srcset="https://serverstadium.com/wp-content/uploads/2022/08/Picture8-4.png 666w, https://serverstadium.com/wp-content/uploads/2022/08/Picture8-4-300x190.png 300w" sizes="(max-width: 838px) 100vw, 838px" /></a>
<figcaption>Then save.</figcaption>
</figure>



<div class="wp-block-spacer" style="height: 12px;" aria-hidden="true"> </div>



<figure class="wp-block-image size-full is-resized"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture9-4.png"><img loading="lazy" decoding="async" class="wp-image-2476" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture9-4.png" alt="" width="658" height="413" /></a>
<figcaption>↳ Now open the Remote Desktop application, and enter our VM IP.</figcaption>
</figure>



<figure class="wp-block-image size-full"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture10-3.png"><img decoding="async" class="wp-image-2477" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture10-3.png" alt="" /></a>
<figcaption>↳ Then enter the username and password of our VM according to the one we changed in the first step.</figcaption>
</figure>



<figure class="wp-block-image size-full"><a href="https://serverstadium.com/wp-content/uploads/2022/08/Picture11-3.png"><img decoding="async" class="wp-image-2478" src="https://serverstadium.com/wp-content/uploads/2022/08/Picture11-3.png" alt="" /></a>
<figcaption>↳ It has been observed that we can use our VM complete with its GUI.</figcaption>
</figure>



<div class="wp-block-spacer" style="height: 30px;" aria-hidden="true"> </div>



<h2 class="has-vivid-cyan-blue-color has-text-color wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">All in all, XFCE helps us to create a desktop environment of our ServerStadium Linux server VM, which by default only uses the Command User Interface. In this article, you have known XFCE&#8217;s benefits, and features, and how to install it in ServerStadium&#8217;s VM. Hopefully, you find this article helpful.</p>



<p class="wp-block-paragraph">Find more tutorials and articles in ServerStadium&#8217;s <strong><a href="https://serverstadium.com/knowledge-base/" target="_blank" rel="noreferrer noopener">Knowledge Base</a> </strong></p>



<p class="wp-block-paragraph">&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
<p>The post <a href="https://serverstadium.com/knowledge-base/using-xfce-desktop-environment-on-serverstadium-vm/">Using XFCE Desktop Environment on ServerStadium VM</a> appeared first on <a href="https://serverstadium.com">ServerStadium</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
