<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nocrash.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris</id>
	<title>Nocrashwiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nocrash.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chris"/>
	<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php/Special:Contributions/Chris"/>
	<updated>2026-07-15T22:11:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Modern_Mail_Server_Setup_Guide&amp;diff=3024</id>
		<title>Modern Mail Server Setup Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Modern_Mail_Server_Setup_Guide&amp;diff=3024"/>
		<updated>2026-07-14T15:12:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;__TOC__  This runbook builds a single-domain AlmaLinux 9 mail server using Postfix, Dovecot, Rspamd, Redis, nginx, PHP-FPM, Roundcube, SQLite, Sieve, DKIM, and Let&amp;#039;s Encrypt.  The design uses local Unix accounts and per-user Maildir storage. It is intended for a small server such as a 1 GB Nanode and does not require Docker, mailcow, or ClamAV.  This page uses MediaWiki&amp;#039;s SyntaxHighlight extension for command and configuration blocks. If the extension is unavailable, rep...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
This runbook builds a single-domain AlmaLinux 9 mail server using Postfix, Dovecot, Rspamd, Redis, nginx, PHP-FPM, Roundcube, SQLite, Sieve, DKIM, and Let&#039;s Encrypt.&lt;br /&gt;
&lt;br /&gt;
The design uses local Unix accounts and per-user Maildir storage. It is intended for a small server such as a 1 GB Nanode and does not require Docker, mailcow, or ClamAV.&lt;br /&gt;
&lt;br /&gt;
This page uses MediaWiki&#039;s SyntaxHighlight extension for command and configuration blocks. If the extension is unavailable, replace each &amp;lt;code&amp;gt;&amp;amp;lt;syntaxhighlight ...&amp;amp;gt;&amp;lt;/code&amp;gt; block with a standard &amp;lt;code&amp;gt;&amp;amp;lt;pre&amp;amp;gt;&amp;lt;/code&amp;gt; block.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 5px solid #2e6e9e; background: #eaf2f6; padding: 0.7em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Before starting:&#039;&#039;&#039; Replace every value enclosed in angle brackets. Keep &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt; available and serving mail until the cutover and validation steps are complete. Never copy private keys, passwords, or the Roundcube &amp;lt;code&amp;gt;des_key&amp;lt;/code&amp;gt; into documentation.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port&lt;br /&gt;
! Service&lt;br /&gt;
! Purpose&lt;br /&gt;
! Exposure&lt;br /&gt;
|-&lt;br /&gt;
| 25/tcp || SMTP || Inbound Internet mail || Public&lt;br /&gt;
|-&lt;br /&gt;
| 80/tcp || HTTP || ACME challenge and HTTPS redirect || Public&lt;br /&gt;
|-&lt;br /&gt;
| 443/tcp || HTTPS || Roundcube webmail || Public&lt;br /&gt;
|-&lt;br /&gt;
| 587/tcp || Submission || Authenticated SMTP with STARTTLS || Public&lt;br /&gt;
|-&lt;br /&gt;
| 993/tcp || IMAPS || Encrypted mailbox access || Public&lt;br /&gt;
|-&lt;br /&gt;
| 11332/tcp || Rspamd proxy || Postfix milter || Loopback only&lt;br /&gt;
|-&lt;br /&gt;
| 11334/tcp || Rspamd controller || Administration/API || Loopback only&lt;br /&gt;
|-&lt;br /&gt;
| 6379/tcp || Redis || Rspamd data || Loopback only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Phase 1: Build the mail system ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Define the deployment variables ===&lt;br /&gt;
&lt;br /&gt;
Run the build as &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; on &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MAIL_HOST=&amp;quot;mail.example.com&amp;quot;&lt;br /&gt;
MAIL_DOMAIN=&amp;quot;example.com&amp;quot;&lt;br /&gt;
MAIL_USER=&amp;quot;alice&amp;quot;&lt;br /&gt;
OLD_IP=&amp;quot;&amp;lt;Old Host&amp;gt;&amp;quot;&lt;br /&gt;
NEW_IP=&amp;quot;&amp;lt;New Host&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the public mail identity in Postfix, Dovecot, TLS, and Roundcube even if the temporary build hostname is &amp;lt;code&amp;gt;mailnew&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hostnamectl set-hostname mailnew&lt;br /&gt;
vi /etc/hosts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the public mail identity locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
127.0.1.1 mail.example.com mail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify the base system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hostname&lt;br /&gt;
hostname -f&lt;br /&gt;
timedatectl&lt;br /&gt;
free -h&lt;br /&gt;
df -h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Confirm that the public IPv4 address is static, the provider permits inbound and outbound TCP 25, and the provider can set the PTR record. Add 1.5–2 GB of swap on a 1 GB VM.&lt;br /&gt;
&lt;br /&gt;
=== 2. Install repositories and packages ===&lt;br /&gt;
&lt;br /&gt;
Update AlmaLinux and enable EPEL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dnf -y update&lt;br /&gt;
dnf -y install epel-release&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Roundcube 1.7 requires PHP 8.1 or newer. Enable PHP 8.3 from Remi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm&lt;br /&gt;
dnf -y module reset php&lt;br /&gt;
dnf -y module enable php:remi-8.3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the official Rspamd repository:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://rspamd.com/rpm-stable/centos-9/rspamd.repo \&lt;br /&gt;
  -o /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
rpm --import https://rspamd.com/rpm-stable/gpg.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the mail, web, security, and administration packages:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dnf -y install \&lt;br /&gt;
  postfix dovecot dovecot-pigeonhole rspamd redis nginx \&lt;br /&gt;
  php php-fpm php-cli php-curl php-gd php-intl php-mbstring \&lt;br /&gt;
  php-pdo php-sqlite3 php-xml php-zip \&lt;br /&gt;
  certbot firewalld chrony bind-utils rsync unzip tar wget curl \&lt;br /&gt;
  vim-enhanced sqlite policycoreutils-python-utils&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now firewalld chronyd redis php-fpm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Create the mailbox account ===&lt;br /&gt;
&lt;br /&gt;
Check the UID and GID on &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
id &amp;quot;$MAIL_USER&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the account with the same UID and GID on &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;. Matching them prevents ownership trouble during migration and recovery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
groupadd -g &amp;lt;OLD_GID&amp;gt; &amp;quot;$MAIL_USER&amp;quot;&lt;br /&gt;
useradd -u &amp;lt;OLD_UID&amp;gt; -g &amp;lt;OLD_GID&amp;gt; -m -s /bin/bash &amp;quot;$MAIL_USER&amp;quot;&lt;br /&gt;
passwd &amp;quot;$MAIL_USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
install -d -m 700 -o &amp;quot;$MAIL_USER&amp;quot; -g &amp;quot;$MAIL_USER&amp;quot; \&lt;br /&gt;
  /home/$MAIL_USER/Maildir/{cur,new,tmp}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Configure Postfix ===&lt;br /&gt;
&lt;br /&gt;
Back up the packaged configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -a /etc/postfix/main.cf /etc/postfix/main.cf.orig&lt;br /&gt;
cp -a /etc/postfix/master.cf /etc/postfix/master.cf.orig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply the main settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
postconf -e &amp;quot;myhostname = $MAIL_HOST&amp;quot;&lt;br /&gt;
postconf -e &amp;quot;mydomain = $MAIL_DOMAIN&amp;quot;&lt;br /&gt;
postconf -e &#039;myorigin = $mydomain&#039;&lt;br /&gt;
postconf -e &#039;inet_interfaces = all&#039;&lt;br /&gt;
postconf -e &#039;inet_protocols = ipv4&#039;&lt;br /&gt;
postconf -e &#039;mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain&#039;&lt;br /&gt;
postconf -e &#039;home_mailbox = Maildir/&#039;&lt;br /&gt;
postconf -e &#039;mailbox_transport = lmtp:unix:private/dovecot-lmtp&#039;&lt;br /&gt;
postconf -e &#039;smtpd_sasl_type = dovecot&#039;&lt;br /&gt;
postconf -e &#039;smtpd_sasl_path = private/auth&#039;&lt;br /&gt;
postconf -e &#039;smtpd_sasl_auth_enable = yes&#039;&lt;br /&gt;
postconf -e &#039;smtpd_sasl_security_options = noanonymous&#039;&lt;br /&gt;
postconf -e &#039;smtpd_milters = inet:127.0.0.1:11332&#039;&lt;br /&gt;
postconf -e &#039;non_smtpd_milters = inet:127.0.0.1:11332&#039;&lt;br /&gt;
postconf -e &#039;milter_protocol = 6&#039;&lt;br /&gt;
postconf -e &#039;milter_default_action = accept&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the Postfix service definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable authenticated submission on TCP 587:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
submission inet n       -       n       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not start Postfix yet if the configured TLS certificate does not exist.&lt;br /&gt;
&lt;br /&gt;
=== 5. Configure Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Back up the original configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -a /etc/dovecot /etc/dovecot.orig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the enabled protocols in &amp;lt;code&amp;gt;/etc/dovecot/dovecot.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
protocols = imap lmtp&lt;br /&gt;
listen = *&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set Maildir storage in &amp;lt;code&amp;gt;/etc/dovecot/conf.d/10-mail.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
first_valid_uid = 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set authentication in &amp;lt;code&amp;gt;/etc/dovecot/conf.d/10-auth.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
disable_plaintext_auth = yes&lt;br /&gt;
auth_mechanisms = plain login&lt;br /&gt;
auth_username_format = %Ln&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 5px solid #c98720; background: #fff5e3; padding: 0.7em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; &amp;lt;code&amp;gt;auth_username_format = %Ln&amp;lt;/code&amp;gt; converts &amp;lt;code&amp;gt;alice@example.com&amp;lt;/code&amp;gt; to the local Unix user &amp;lt;code&amp;gt;alice&amp;lt;/code&amp;gt;. Without it, IMAP authentication may work while LMTP delivery fails.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable Sieve during LMTP delivery in &amp;lt;code&amp;gt;/etc/dovecot/conf.d/20-lmtp.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
protocol lmtp {&lt;br /&gt;
  mail_plugins = $mail_plugins sieve&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inside &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/dovecot/conf.d/10-master.conf&amp;lt;/code&amp;gt;, create the Postfix SASL socket:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
  mode = 0660&lt;br /&gt;
  user = postfix&lt;br /&gt;
  group = postfix&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure the LMTP socket in the same file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
service lmtp {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/dovecot-lmtp {&lt;br /&gt;
    mode = 0600&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. Configure Redis and Rspamd ===&lt;br /&gt;
&lt;br /&gt;
Ensure Redis listens only on loopback. The packaged &amp;lt;code&amp;gt;/etc/redis/redis.conf&amp;lt;/code&amp;gt; should contain:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
bind 127.0.0.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/rspamd/local.d/redis.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
servers = &amp;quot;127.0.0.1&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/rspamd/local.d/classifier-bayes.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
backend = &amp;quot;redis&amp;quot;;&lt;br /&gt;
servers = &amp;quot;127.0.0.1&amp;quot;;&lt;br /&gt;
autolearn = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/rspamd/local.d/actions.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
reject = 15;&lt;br /&gt;
add_header = 6;&lt;br /&gt;
greylist = 4;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/rspamd/local.d/milter_headers.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
use = [&lt;br /&gt;
  &amp;quot;x-rspamd-action&amp;quot;,&lt;br /&gt;
  &amp;quot;x-spamd-result&amp;quot;,&lt;br /&gt;
  &amp;quot;authentication-results&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
authenticated_headers = [&amp;quot;authentication-results&amp;quot;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use Rspamd&#039;s proxy self-scan mode in &amp;lt;code&amp;gt;/etc/rspamd/local.d/worker-proxy.inc&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
upstream &amp;quot;local&amp;quot; {&lt;br /&gt;
  self_scan = yes;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disable unused workers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
# /etc/rspamd/local.d/worker-normal.inc&lt;br /&gt;
enabled = false;&lt;br /&gt;
&lt;br /&gt;
# /etc/rspamd/local.d/worker-fuzzy.inc&lt;br /&gt;
enabled = false;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a task timeout in &amp;lt;code&amp;gt;/etc/rspamd/local.d/options.inc&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
task_timeout = 12s;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Generate and publish the DKIM key ===&lt;br /&gt;
&lt;br /&gt;
Create the key directory and generate a 2048-bit key:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
install -d -m 750 -o _rspamd -g _rspamd /var/lib/rspamd/dkim&lt;br /&gt;
&lt;br /&gt;
rspamadm dkim_keygen \&lt;br /&gt;
  -b 2048 \&lt;br /&gt;
  -s dkim \&lt;br /&gt;
  -d &amp;quot;$MAIL_DOMAIN&amp;quot; \&lt;br /&gt;
  -k &amp;quot;/var/lib/rspamd/dkim/${MAIL_DOMAIN}.dkim.key&amp;quot; \&lt;br /&gt;
  &amp;gt; &amp;quot;/root/${MAIL_DOMAIN}-dkim-dns.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
chown _rspamd:_rspamd /var/lib/rspamd/dkim/*.key&lt;br /&gt;
chmod 600 /var/lib/rspamd/dkim/*.key&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/rspamd/local.d/dkim_signing.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
selector = &amp;quot;dkim&amp;quot;;&lt;br /&gt;
path = &amp;quot;/var/lib/rspamd/dkim/$domain.$selector.key&amp;quot;;&lt;br /&gt;
sign_authenticated = true;&lt;br /&gt;
sign_local = true;&lt;br /&gt;
use_domain = &amp;quot;header&amp;quot;;&lt;br /&gt;
use_esld = true;&lt;br /&gt;
allow_username_mismatch = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Publish the TXT value from &amp;lt;code&amp;gt;/root/&amp;amp;lt;domain&amp;amp;gt;-dkim-dns.txt&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;dkim._domainkey.example.com&amp;lt;/code&amp;gt;. Never publish the private &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
=== 8. Create automatic Junk filing ===&lt;br /&gt;
&lt;br /&gt;
Create and subscribe the Junk mailbox:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
doveadm mailbox create -u &amp;quot;$MAIL_USER&amp;quot; Junk&lt;br /&gt;
doveadm mailbox subscribe -u &amp;quot;$MAIL_USER&amp;quot; Junk&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the user Sieve directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
install -d -m 700 -o &amp;quot;$MAIL_USER&amp;quot; -g &amp;quot;$MAIL_USER&amp;quot; \&lt;br /&gt;
  /home/$MAIL_USER/sieve&lt;br /&gt;
&lt;br /&gt;
vi /home/$MAIL_USER/sieve/rspamd.sieve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the filtering rule:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
require [&amp;quot;fileinto&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
if header :is &amp;quot;X-Rspamd-Action&amp;quot; &amp;quot;add header&amp;quot; {&lt;br /&gt;
  fileinto &amp;quot;Junk&amp;quot;;&lt;br /&gt;
  stop;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and activate it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sievec /home/$MAIL_USER/sieve/rspamd.sieve&lt;br /&gt;
ln -sfn /home/$MAIL_USER/sieve/rspamd.sieve \&lt;br /&gt;
  /home/$MAIL_USER/.dovecot.sieve&lt;br /&gt;
&lt;br /&gt;
chown -R &amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; \&lt;br /&gt;
  /home/$MAIL_USER/sieve \&lt;br /&gt;
  /home/$MAIL_USER/.dovecot.sieve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Phase 2: Publish and validate the services ==&lt;br /&gt;
&lt;br /&gt;
=== 9. Configure the firewall ===&lt;br /&gt;
&lt;br /&gt;
Open only the required public services:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
firewall-cmd --permanent --add-service=ssh&lt;br /&gt;
firewall-cmd --permanent --add-service=http&lt;br /&gt;
firewall-cmd --permanent --add-service=https&lt;br /&gt;
firewall-cmd --permanent --add-service=smtp&lt;br /&gt;
firewall-cmd --permanent --add-service=imaps&lt;br /&gt;
firewall-cmd --permanent --add-port=587/tcp&lt;br /&gt;
firewall-cmd --reload&lt;br /&gt;
firewall-cmd --list-all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redis and Rspamd must remain on loopback. They must not be opened in the firewall.&lt;br /&gt;
&lt;br /&gt;
=== 10. Bootstrap nginx and obtain the certificate ===&lt;br /&gt;
&lt;br /&gt;
Create the ACME webroot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
install -d -m 755 -o nginx -g nginx \&lt;br /&gt;
  /var/www/letsencrypt/.well-known/acme-challenge&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/nginx/conf.d/mail.conf&amp;lt;/code&amp;gt; with the initial HTTP virtual host:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    server_name mail.example.com;&lt;br /&gt;
&lt;br /&gt;
    location ^~ /.well-known/acme-challenge/ {&lt;br /&gt;
        root /var/www/letsencrypt;&lt;br /&gt;
        try_files $uri =404;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Validate and start nginx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nginx -t&lt;br /&gt;
systemctl enable --now nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The public A record must reach &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt; for HTTP-01 validation. If DNS still points to &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt;, temporarily move the record, use a supported DNS challenge, or wait until cutover.&lt;br /&gt;
&lt;br /&gt;
Request the certificate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
certbot certonly \&lt;br /&gt;
  --webroot \&lt;br /&gt;
  -w /var/www/letsencrypt \&lt;br /&gt;
  -d &amp;quot;$MAIL_HOST&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 11. Configure TLS for Postfix and Dovecot ===&lt;br /&gt;
&lt;br /&gt;
Configure Postfix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
postconf -e &amp;quot;smtpd_tls_cert_file = /etc/letsencrypt/live/$MAIL_HOST/fullchain.pem&amp;quot;&lt;br /&gt;
postconf -e &amp;quot;smtpd_tls_key_file = /etc/letsencrypt/live/$MAIL_HOST/privkey.pem&amp;quot;&lt;br /&gt;
postconf -e &#039;smtpd_tls_security_level = may&#039;&lt;br /&gt;
postconf -e &#039;smtp_tls_security_level = may&#039;&lt;br /&gt;
postconf -e &#039;smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure &amp;lt;code&amp;gt;/etc/dovecot/conf.d/10-ssl.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ssl = required&lt;br /&gt;
ssl_cert = &amp;lt;/etc/letsencrypt/live/mail.example.com/fullchain.pem&lt;br /&gt;
ssl_key = &amp;lt;/etc/letsencrypt/live/mail.example.com/privkey.pem&lt;br /&gt;
ssl_cipher_list = PROFILE=SYSTEM&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the renewal deploy hook:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
vi /etc/letsencrypt/renewal-hooks/deploy/reload-mail-services.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
systemctl reload nginx postfix dovecot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 750 /etc/letsencrypt/renewal-hooks/deploy/reload-mail-services.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 12. Install Roundcube 1.7.2 ===&lt;br /&gt;
&lt;br /&gt;
Roundcube is installed manually and is not maintained by &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local/src&lt;br /&gt;
RC=1.7.2&lt;br /&gt;
&lt;br /&gt;
wget &amp;quot;https://github.com/roundcube/roundcubemail/releases/download/$RC/roundcubemail-$RC-complete.tar.gz&amp;quot;&lt;br /&gt;
tar xzf &amp;quot;roundcubemail-$RC-complete.tar.gz&amp;quot;&lt;br /&gt;
mv &amp;quot;roundcubemail-$RC&amp;quot; /var/www/roundcube&lt;br /&gt;
&lt;br /&gt;
chown -R root:root /var/www/roundcube&lt;br /&gt;
&lt;br /&gt;
install -d -m 750 -o nginx -g nginx \&lt;br /&gt;
  /var/www/roundcube/{temp,logs,db}&lt;br /&gt;
&lt;br /&gt;
runuser -u nginx -- sqlite3 /var/www/roundcube/db/roundcube.db \&lt;br /&gt;
  &amp;lt; /var/www/roundcube/SQL/sqlite.initial.sql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a new encryption secret:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl rand -base64 48&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/var/www/roundcube/config/config.inc.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$config = [];&lt;br /&gt;
&lt;br /&gt;
$config[&#039;db_dsnw&#039;] = &#039;sqlite:////var/www/roundcube/db/roundcube.db&#039;;&lt;br /&gt;
&lt;br /&gt;
$config[&#039;imap_host&#039;] = &#039;ssl://127.0.0.1:993&#039;;&lt;br /&gt;
$config[&#039;imap_conn_options&#039;] = [&lt;br /&gt;
    &#039;ssl&#039; =&amp;gt; [&lt;br /&gt;
        &#039;verify_peer&#039; =&amp;gt; true,&lt;br /&gt;
        &#039;verify_peer_name&#039; =&amp;gt; true,&lt;br /&gt;
        &#039;peer_name&#039; =&amp;gt; &#039;mail.example.com&#039;,&lt;br /&gt;
        &#039;cafile&#039; =&amp;gt; &#039;/etc/pki/tls/certs/ca-bundle.crt&#039;,&lt;br /&gt;
    ],&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
$config[&#039;smtp_host&#039;] = &#039;tls://127.0.0.1:587&#039;;&lt;br /&gt;
$config[&#039;smtp_user&#039;] = &#039;%u&#039;;&lt;br /&gt;
$config[&#039;smtp_pass&#039;] = &#039;%p&#039;;&lt;br /&gt;
$config[&#039;smtp_conn_options&#039;] = [&lt;br /&gt;
    &#039;ssl&#039; =&amp;gt; [&lt;br /&gt;
        &#039;verify_peer&#039; =&amp;gt; true,&lt;br /&gt;
        &#039;verify_peer_name&#039; =&amp;gt; true,&lt;br /&gt;
        &#039;peer_name&#039; =&amp;gt; &#039;mail.example.com&#039;,&lt;br /&gt;
        &#039;cafile&#039; =&amp;gt; &#039;/etc/pki/tls/certs/ca-bundle.crt&#039;,&lt;br /&gt;
    ],&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
$config[&#039;des_key&#039;] = &#039;&amp;lt;PASTE A NEW RANDOM SECRET HERE&amp;gt;&#039;;&lt;br /&gt;
$config[&#039;product_name&#039;] = &#039;Webmail&#039;;&lt;br /&gt;
$config[&#039;mail_domain&#039;] = &#039;example.com&#039;;&lt;br /&gt;
$config[&#039;message_id_domain&#039;] = &#039;example.com&#039;;&lt;br /&gt;
$config[&#039;skin&#039;] = &#039;elastic&#039;;&lt;br /&gt;
$config[&#039;enable_installer&#039;] = false;&lt;br /&gt;
$config[&#039;plugins&#039;] = [&#039;archive&#039;, &#039;zipdownload&#039;, &#039;markasjunk&#039;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secure the configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown root:nginx /var/www/roundcube/config/config.inc.php&lt;br /&gt;
chmod 640 /var/www/roundcube/config/config.inc.php&lt;br /&gt;
chmod 000 /var/www/roundcube/installer 2&amp;gt;/dev/null || true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Tune PHP-FPM and enforce SELinux ===&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/etc/php-fpm.d/www.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
user = nginx&lt;br /&gt;
group = nginx&lt;br /&gt;
listen = /run/php-fpm/www.sock&lt;br /&gt;
listen.owner = nginx&lt;br /&gt;
listen.group = nginx&lt;br /&gt;
listen.mode = 0660&lt;br /&gt;
&lt;br /&gt;
pm = ondemand&lt;br /&gt;
pm.max_children = 3&lt;br /&gt;
pm.process_idle_timeout = 10s&lt;br /&gt;
pm.max_requests = 300&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply persistent SELinux contexts and permit PHP to connect to the local IMAP and SMTP services:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
semanage fcontext -a -t httpd_sys_content_t \&lt;br /&gt;
  &#039;/var/www/roundcube(/.*)?&#039;&lt;br /&gt;
&lt;br /&gt;
semanage fcontext -a -t httpd_sys_rw_content_t \&lt;br /&gt;
  &#039;/var/www/roundcube/(temp|db)(/.*)?&#039;&lt;br /&gt;
&lt;br /&gt;
semanage fcontext -a -t httpd_log_t \&lt;br /&gt;
  &#039;/var/www/roundcube/logs(/.*)?&#039;&lt;br /&gt;
&lt;br /&gt;
restorecon -Rv /var/www/roundcube&lt;br /&gt;
setsebool -P httpd_can_network_connect 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 14. Add the Roundcube HTTPS virtual host ===&lt;br /&gt;
&lt;br /&gt;
Append this server block to &amp;lt;code&amp;gt;/etc/nginx/conf.d/mail.conf&amp;lt;/code&amp;gt;. Roundcube 1.7 requires the &amp;lt;code&amp;gt;public_html&amp;lt;/code&amp;gt; document root. The PHP expression also supports paths such as &amp;lt;code&amp;gt;static.php/...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 443 ssl http2;&lt;br /&gt;
    server_name mail.example.com;&lt;br /&gt;
&lt;br /&gt;
    root /var/www/roundcube/public_html;&lt;br /&gt;
    index index.php;&lt;br /&gt;
&lt;br /&gt;
    ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem;&lt;br /&gt;
    ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem;&lt;br /&gt;
    ssl_protocols TLSv1.2 TLSv1.3;&lt;br /&gt;
&lt;br /&gt;
    client_max_body_size 25M;&lt;br /&gt;
&lt;br /&gt;
    location = /installer.php {&lt;br /&gt;
        return 404;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location ^~ /installer/ {&lt;br /&gt;
        return 404;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        try_files $uri $uri/ /index.php?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location ~ ^(.+\.php)(/.*)?$ {&lt;br /&gt;
        try_files $1 =404;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$1;&lt;br /&gt;
        fastcgi_param PATH_INFO $2;&lt;br /&gt;
        fastcgi_pass unix:/run/php-fpm/www.sock;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location ~ /\. {&lt;br /&gt;
        deny all;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Validate every configuration before starting the complete stack:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -l /var/www/roundcube/config/config.inc.php&lt;br /&gt;
postfix check&lt;br /&gt;
doveconf -n &amp;gt;/dev/null&lt;br /&gt;
rspamadm configtest&lt;br /&gt;
nginx -t&lt;br /&gt;
&lt;br /&gt;
systemctl enable --now postfix dovecot rspamd nginx php-fpm&lt;br /&gt;
systemctl restart redis rspamd postfix dovecot php-fpm nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 15. Run the pre-cutover validation gate ===&lt;br /&gt;
&lt;br /&gt;
Validate services and configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl --failed&lt;br /&gt;
postfix check&lt;br /&gt;
doveconf -n &amp;gt;/dev/null&lt;br /&gt;
rspamadm configtest&lt;br /&gt;
nginx -t&lt;br /&gt;
redis-cli ping&lt;br /&gt;
&lt;br /&gt;
postconf -n | egrep &#039;^(myhostname|mailbox_transport|smtpd_milters)&#039;&lt;br /&gt;
doveconf -n | egrep &#039;^(mail_location|ssl|auth_username_format)&#039;&lt;br /&gt;
&lt;br /&gt;
ss -lntp | egrep &#039;:(25|80|443|587|993|11332|11334|6379)\b&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expected public listeners are 25, 80, 443, 587, and 993. Redis and Rspamd must remain on loopback.&lt;br /&gt;
&lt;br /&gt;
Test certificates against &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt; before production DNS is moved:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -connect &amp;quot;$NEW_IP:993&amp;quot; \&lt;br /&gt;
  -servername &amp;quot;$MAIL_HOST&amp;quot; \&lt;br /&gt;
  &amp;lt;/dev/null&lt;br /&gt;
&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -starttls smtp \&lt;br /&gt;
  -connect &amp;quot;$NEW_IP:587&amp;quot; \&lt;br /&gt;
  -servername &amp;quot;$MAIL_HOST&amp;quot; \&lt;br /&gt;
  &amp;lt;/dev/null&lt;br /&gt;
&lt;br /&gt;
curl --resolve &amp;quot;$MAIL_HOST:443:$NEW_IP&amp;quot; \&lt;br /&gt;
  -fsSI &amp;quot;https://$MAIL_HOST/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test local delivery through Postfix and Dovecot LMTP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
printf &#039;Subject: local test\n\nLMTP works.\n&#039; \&lt;br /&gt;
  | sendmail &amp;quot;$MAIL_USER@$MAIL_DOMAIN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
postqueue -p&lt;br /&gt;
journalctl -u postfix -u dovecot -u rspamd --since -10m --no-pager&lt;br /&gt;
doveadm search -u &amp;quot;$MAIL_USER&amp;quot; mailbox INBOX ALL&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test certificate renewal only after the selected ACME method can reach &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
certbot renew --dry-run&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 16. Prepare production DNS ===&lt;br /&gt;
&lt;br /&gt;
Create or verify these records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mail.example.com.             A      &amp;lt;New Host&amp;gt;&lt;br /&gt;
example.com.                  MX 0   mail.example.com.&lt;br /&gt;
example.com.                  TXT    &amp;quot;v=spf1 ip4:&amp;lt;New Host&amp;gt; -all&amp;quot;&lt;br /&gt;
dkim._domainkey.example.com.  TXT    &amp;quot;&amp;lt;generated DKIM public key&amp;gt;&amp;quot;&lt;br /&gt;
_dmarc.example.com.           TXT    &amp;quot;v=DMARC1; p=none&amp;quot;&lt;br /&gt;
&amp;lt;New Host&amp;gt;                    PTR    mail.example.com.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dig +short A &amp;quot;$MAIL_HOST&amp;quot;&lt;br /&gt;
dig +short MX &amp;quot;$MAIL_DOMAIN&amp;quot;&lt;br /&gt;
dig +short TXT &amp;quot;$MAIL_DOMAIN&amp;quot;&lt;br /&gt;
dig +short TXT &amp;quot;dkim._domainkey.$MAIL_DOMAIN&amp;quot;&lt;br /&gt;
dig +short TXT &amp;quot;_dmarc.$MAIL_DOMAIN&amp;quot;&lt;br /&gt;
dig +short -x &amp;quot;$NEW_IP&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 5px solid #a43b3b; background: #fcedec; padding: 0.7em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Do not cut over&#039;&#039;&#039; with a stale AAAA record, mismatched PTR, failing certificate name, open relay, or unverified DKIM record.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Phase 3: Migrate, cut over, and recover ==&lt;br /&gt;
&lt;br /&gt;
=== 17. Seed the Maildir while the old server is live ===&lt;br /&gt;
&lt;br /&gt;
Create a dedicated known-hosts file on &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
install -d -m 700 /root/.ssh&lt;br /&gt;
ssh-keyscan -H &amp;quot;$OLD_IP&amp;quot; &amp;gt; /root/.ssh/known_hosts.oldmail&lt;br /&gt;
chmod 600 /root/.ssh/known_hosts.oldmail&lt;br /&gt;
ssh-keygen -lf /root/.ssh/known_hosts.oldmail&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify the displayed SSH fingerprint out-of-band before transferring mail.&lt;br /&gt;
&lt;br /&gt;
Perform the initial synchronization while &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt; remains live:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsync -aHvx \&lt;br /&gt;
  --numeric-ids \&lt;br /&gt;
  --chown=&amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; \&lt;br /&gt;
  --exclude=&#039;/tmp/***&#039; \&lt;br /&gt;
  --exclude=&#039;/**/tmp/***&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.index*&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.list.index*&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.mailbox.log*&#039; \&lt;br /&gt;
  -e &#039;ssh -o UserKnownHostsFile=/root/.ssh/known_hosts.oldmail&#039; \&lt;br /&gt;
  &amp;quot;root@$OLD_IP:/home/$MAIL_USER/Maildir/&amp;quot; \&lt;br /&gt;
  &amp;quot;/home/$MAIL_USER/Maildir/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
chown -R &amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; &amp;quot;/home/$MAIL_USER/Maildir&amp;quot;&lt;br /&gt;
doveadm force-resync -u &amp;quot;$MAIL_USER&amp;quot; &#039;*&#039;&lt;br /&gt;
du -sh &amp;quot;/home/$MAIL_USER/Maildir&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 5px solid #c98720; background: #fff5e3; padding: 0.7em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Data safety:&#039;&#039;&#039; Do not exclude &amp;lt;code&amp;gt;.Junk&amp;lt;/code&amp;gt; unless you deliberately want to discard it. Excluding it is a mailbox-data decision, not a harmless optimization.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 18. Freeze mail, perform the final sync, and cut over ===&lt;br /&gt;
&lt;br /&gt;
If DNS rather than an IP move will be used, lower the relevant TTLs beforehand. Announce a short maintenance window.&lt;br /&gt;
&lt;br /&gt;
Stop mailbox changes on &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop postfix dovecot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the final authoritative synchronization on &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsync -aHvx \&lt;br /&gt;
  --delete \&lt;br /&gt;
  --numeric-ids \&lt;br /&gt;
  --chown=&amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; \&lt;br /&gt;
  --exclude=&#039;/tmp/***&#039; \&lt;br /&gt;
  --exclude=&#039;/**/tmp/***&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.index*&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.list.index*&#039; \&lt;br /&gt;
  --exclude=&#039;dovecot.mailbox.log*&#039; \&lt;br /&gt;
  -e &#039;ssh -o UserKnownHostsFile=/root/.ssh/known_hosts.oldmail&#039; \&lt;br /&gt;
  &amp;quot;root@$OLD_IP:/home/$MAIL_USER/Maildir/&amp;quot; \&lt;br /&gt;
  &amp;quot;/home/$MAIL_USER/Maildir/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
chown -R &amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; &amp;quot;/home/$MAIL_USER/Maildir&amp;quot;&lt;br /&gt;
doveadm force-resync -u &amp;quot;$MAIL_USER&amp;quot; &#039;*&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Move the production IP or update A, MX, and PTR records as planned. Then restart the new stack:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart redis rspamd postfix dovecot php-fpm nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 19. Prove production end-to-end ===&lt;br /&gt;
&lt;br /&gt;
Verify production DNS and listeners:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dig +short A &amp;quot;$MAIL_HOST&amp;quot;&lt;br /&gt;
dig +short -x &amp;quot;$NEW_IP&amp;quot;&lt;br /&gt;
ss -lntp | egrep &#039;:(25|80|443|587|993)\b&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify HTTPS, IMAPS, and submission TLS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSI &amp;quot;https://$MAIL_HOST/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -connect &amp;quot;$MAIL_HOST:993&amp;quot; \&lt;br /&gt;
  -servername &amp;quot;$MAIL_HOST&amp;quot; \&lt;br /&gt;
  &amp;lt;/dev/null&lt;br /&gt;
&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -starttls smtp \&lt;br /&gt;
  -connect &amp;quot;$MAIL_HOST:587&amp;quot; \&lt;br /&gt;
  -servername &amp;quot;$MAIL_HOST&amp;quot; \&lt;br /&gt;
  &amp;lt;/dev/null&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the queue and recent logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
postqueue -p&lt;br /&gt;
journalctl -u postfix -u dovecot -u rspamd --since -30m --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Complete these manual acceptance tests from outside the local network:&lt;br /&gt;
&lt;br /&gt;
* Log into Roundcube and read migrated messages.&lt;br /&gt;
* Send a message to an external provider.&lt;br /&gt;
* Reply from the external provider back to the new server.&lt;br /&gt;
* Confirm IMAPS and authenticated submission work in a mail client.&lt;br /&gt;
* Move a message to Junk and verify the mailbox behavior.&lt;br /&gt;
* Inspect received headers for TLS, SPF pass, DKIM pass, DMARC pass, and the expected Rspamd action.&lt;br /&gt;
* Confirm Maildir size and message counts are reasonable.&lt;br /&gt;
* Confirm the queue is clear and no unexpected units have failed.&lt;br /&gt;
&lt;br /&gt;
Leave &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt; intact and powered off—not repurposed—until several days of delivery, login, queue, backup, and renewal checks have passed.&lt;br /&gt;
&lt;br /&gt;
=== 20. Roll back without creating split-brain ===&lt;br /&gt;
&lt;br /&gt;
Rollback is justified for sustained inbound or outbound failure, mailbox-data trouble, or authentication/TLS failure that cannot be corrected inside the maintenance window. A cosmetic Roundcube problem alone may not justify moving SMTP back.&lt;br /&gt;
&lt;br /&gt;
Freeze &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt; before changing routing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop postfix dovecot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Preserve messages accepted only by &amp;lt;code&amp;gt;&amp;amp;lt;New Host&amp;amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsync -aHvx \&lt;br /&gt;
  &amp;quot;/home/$MAIL_USER/Maildir/&amp;quot; \&lt;br /&gt;
  &amp;quot;root@$OLD_IP:/home/$MAIL_USER/Maildir.rollback-from-new/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Move the production IP, DNS, and PTR back to &amp;lt;code&amp;gt;&amp;amp;lt;Old Host&amp;amp;gt;&amp;lt;/code&amp;gt;. Then start the old services:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl start dovecot postfix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verify A/PTR records, ports, queue state, inbound delivery, outbound delivery, and IMAPS. Reconcile &amp;lt;code&amp;gt;Maildir.rollback-from-new&amp;lt;/code&amp;gt; before deleting anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 5px solid #a43b3b; background: #fcedec; padding: 0.7em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Never leave Postfix active on both servers while the same public identity is moving.&#039;&#039;&#039; That is how a clean rollback turns into a mail rodeo.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 21. Back up the irreplaceable data ===&lt;br /&gt;
&lt;br /&gt;
Create a configuration backup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
BACK=&amp;quot;/root/mail-backup-$(date +%F-%H%M)&amp;quot;&lt;br /&gt;
mkdir -p &amp;quot;$BACK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
tar --xattrs --acls -czf &amp;quot;$BACK/configs.tgz&amp;quot; \&lt;br /&gt;
  /etc/postfix \&lt;br /&gt;
  /etc/dovecot \&lt;br /&gt;
  /etc/rspamd \&lt;br /&gt;
  /etc/nginx \&lt;br /&gt;
  /etc/php-fpm.d \&lt;br /&gt;
  /etc/letsencrypt \&lt;br /&gt;
  /etc/firewalld \&lt;br /&gt;
  /var/www/roundcube/config \&lt;br /&gt;
  /var/www/roundcube/db \&lt;br /&gt;
  /var/lib/rspamd/dkim&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back up Maildir and Rspamd data to storage outside the mail server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rsync -aHAX \&lt;br /&gt;
  &amp;quot;/home/$MAIL_USER/Maildir/&amp;quot; \&lt;br /&gt;
  &amp;quot;&amp;lt;BACKUP_TARGET&amp;gt;/Maildir/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -a /var/lib/rspamd &amp;quot;&amp;lt;BACKUP_TARGET&amp;gt;/rspamd-data/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
test ! -f /root/mail-admin-check || \&lt;br /&gt;
  cp -a /root/mail-admin-check &amp;quot;$BACK/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Store backup encryption keys and DKIM private keys off-host. A backup kept only beside the server is merely a second copy waiting for the same shovel.&lt;br /&gt;
&lt;br /&gt;
=== 22. Recover on bare metal ===&lt;br /&gt;
&lt;br /&gt;
Use this order:&lt;br /&gt;
&lt;br /&gt;
# Install a clean AlmaLinux 9 system.&lt;br /&gt;
# Restore the original mailbox UID and GID.&lt;br /&gt;
# Install the repositories and packages from this guide.&lt;br /&gt;
# Restore Postfix, Dovecot, Rspamd, nginx, PHP-FPM, firewall, and certificate configuration.&lt;br /&gt;
# Restore the Roundcube configuration and SQLite database.&lt;br /&gt;
# Restore DKIM keys and Rspamd data.&lt;br /&gt;
# Restore Maildir.&lt;br /&gt;
# Correct ownership and SELinux labels.&lt;br /&gt;
# Validate every configuration.&lt;br /&gt;
# Start services and repeat the end-to-end tests.&lt;br /&gt;
&lt;br /&gt;
Final recovery commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown -R &amp;quot;$MAIL_USER:$MAIL_USER&amp;quot; &amp;quot;/home/$MAIL_USER/Maildir&amp;quot;&lt;br /&gt;
chown _rspamd:_rspamd /var/lib/rspamd/dkim/*.key&lt;br /&gt;
restorecon -RFv /etc /var/www/roundcube /var/lib/rspamd&lt;br /&gt;
&lt;br /&gt;
postfix check&lt;br /&gt;
doveconf -n &amp;gt;/dev/null&lt;br /&gt;
rspamadm configtest&lt;br /&gt;
nginx -t&lt;br /&gt;
&lt;br /&gt;
systemctl restart redis rspamd postfix dovecot php-fpm nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 23. Patch, renew, and monitor ===&lt;br /&gt;
&lt;br /&gt;
Install the completed health script and run the summary with update checks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
install -o root -g root -m 750 \&lt;br /&gt;
  &amp;lt;MAIL_ADMIN_CHECK&amp;gt; \&lt;br /&gt;
  /root/mail-admin-check&lt;br /&gt;
&lt;br /&gt;
/root/mail-admin-check --summary --check-updates&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Routine administration commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dnf check-update || test $? -eq 100&lt;br /&gt;
postqueue -p&lt;br /&gt;
systemctl --failed&lt;br /&gt;
certbot renew --dry-run&lt;br /&gt;
journalctl -p warning --since today --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Roundcube is installed manually, so &amp;lt;code&amp;gt;dnf&amp;lt;/code&amp;gt; will not update it. Before every Roundcube upgrade:&lt;br /&gt;
&lt;br /&gt;
# Back up &amp;lt;code&amp;gt;/var/www/roundcube&amp;lt;/code&amp;gt; and the SQLite database.&lt;br /&gt;
# Download and unpack the current complete release tarball.&lt;br /&gt;
# Read the release&#039;s &amp;lt;code&amp;gt;UPGRADING&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;INSTALL&amp;lt;/code&amp;gt; files.&lt;br /&gt;
# Run the bundled upgrade tool.&lt;br /&gt;
# Reapply SELinux contexts and validate nginx and PHP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/local/src/roundcubemail-&amp;lt;NEW_VERSION&amp;gt;&lt;br /&gt;
bin/installto.sh /var/www/roundcube&lt;br /&gt;
&lt;br /&gt;
php -l /var/www/roundcube/config/config.inc.php&lt;br /&gt;
restorecon -RFv /var/www/roundcube&lt;br /&gt;
nginx -t&lt;br /&gt;
systemctl reload php-fpm nginx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/roundcube/roundcubemail/releases Roundcube releases]&lt;br /&gt;
* [https://github.com/roundcube/roundcubemail/wiki/Upgrade Roundcube upgrade instructions]&lt;br /&gt;
* [https://docs.rspamd.com/getting-started/installation/ Rspamd installation guide]&lt;br /&gt;
* [https://doc.dovecot.org/main/howto/lmtp/postfix.html Dovecot LMTP with Postfix]&lt;br /&gt;
* [https://doc.dovecot.org/main/howto/sasl/postfix.html Dovecot SASL with Postfix]&lt;br /&gt;
* [https://eff-certbot.readthedocs.io/en/stable/using.html Certbot user guide and renewal hooks]&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Mail servers]]&lt;br /&gt;
[[Category:AlmaLinux]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=3023</id>
		<title>Linux Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=3023"/>
		<updated>2026-07-14T15:12:17Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Active Directory - Join Linux to a Domain]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Apache 2 bandwidth limiting]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[CDRecord to burn ISO image]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD Authoring]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD9 to DVD5]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Erase your MBR in Linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Find / GZIP]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Flash, Java, Real Player 32 bit plugins under 64 bit Firefox]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Grub Problems]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[ISO - Make an ISO from a CD or DVD]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Linux remount partition r/w]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://www.nocrash.net/linux/mpegtools.html MJPEG HOWTO]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Modern Mail Server Setup Guide]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NIS Setup]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NMAP tips and tricks]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NVIDIA Drivers]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://zlib.net/pigz/ Parallel GZIP]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Reboot / Shutdown - Only allow root to]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[RSYNC over ssh]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SELinux Administration]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SMTP Auth for Sendmail]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SSH Auto Login]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Tar over SSH]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Unison - File synchronization]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Video conversion in linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Vi Reference Card]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Virtualbox Issues]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Wipe your Hard disk]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Windows_11_-_First_login_create_Local_Account&amp;diff=3022</id>
		<title>Windows 11 - First login create Local Account</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Windows_11_-_First_login_create_Local_Account&amp;diff=3022"/>
		<updated>2025-01-22T19:44:10Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;On the first run of the system, when it asks for the language or keyboard layout, do the following:  -  Use the keyboard shortcut Shift + F10.  A Command Prompt window should...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On the first run of the system, when it asks for the language or keyboard layout, do the following:&lt;br /&gt;
&lt;br /&gt;
-  Use the keyboard shortcut Shift + F10.  A Command Prompt window should show up.&lt;br /&gt;
&lt;br /&gt;
-  Type and enter &amp;quot;oobe\bypassnro&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Windows_Administration&amp;diff=3021</id>
		<title>Windows Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Windows_Administration&amp;diff=3021"/>
		<updated>2025-01-22T19:43:57Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auto Login as a certain user]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[BSOD on boot... Windows update related]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DOS Recursive Delete]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://www.howtohaven.com/system/slipstream-xp-service-pack-3.shtml Slipstream Windows XP Service Pack 3]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[PDF - Restore Adobe PDF Printer]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Registry Hacks]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Remove XP Internet Security Virus]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Repair Remote Admin|Remote Admin Repair]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Restore XP TCP/IP Settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Scan and fix protected system files]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Windows 11 - First login create Local Account]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3020</id>
		<title>SD card read-only mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3020"/>
		<updated>2024-12-12T16:58:05Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unplugging your Raspberry Pi to shut it down can eventually result in system file corruption. Any operating system stored on an SD card may eventually fail if used for long periods of time. To reduce these risks, you can make your SD card read-only. Open the raspi-config tool with the following command:&lt;br /&gt;
 $ sudo raspi-config&lt;br /&gt;
Navigate through the menu system as follows:&lt;br /&gt;
#Select Performance options&lt;br /&gt;
#Select Overlay File System&lt;br /&gt;
#Confirm that you would like to enable the overlay file system&lt;br /&gt;
#Confirm that you would like to write-protect the boot partition&lt;br /&gt;
#Confirm reboot&lt;br /&gt;
This whole process may take a few minutes to complete.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to enable access again to carry out an update or adjust your scripts, SSH back into your Raspberry Pi and run the above steps to disable overlay fs, then reboot.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3019</id>
		<title>SD card read-only mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3019"/>
		<updated>2024-12-12T16:57:26Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unplugging your Raspberry Pi to shut it down can eventually result in system file corruption. Any operating system stored on an SD card may eventually fail if used for long periods of time. To reduce these risks, you can make your SD card read-only. Open the raspi-config tool with the following command:&lt;br /&gt;
 $ sudo raspi-config&lt;br /&gt;
Navigate through the menu system as follows:&lt;br /&gt;
#Select Performance options&lt;br /&gt;
#Select Overlay File System&lt;br /&gt;
#Confirm that you would like to enable the overlay file system&lt;br /&gt;
#Confirm that you would like to write-protect the boot partition&lt;br /&gt;
#Confirm reboot&lt;br /&gt;
This whole process may take a few minutes to complete.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to enable access again to carry out an update or adjust your scripts, SSH back into your Raspberry Pi and run the above steps in reverse, then reboot.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3018</id>
		<title>Raspberry pi Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3018"/>
		<updated>2024-12-12T16:18:00Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auto start firefox-esr in kiosk mode on boot]] (Via A .desktop File - Wayland/Wayfire)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[SD card read-only mode]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3017</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3017"/>
		<updated>2024-12-12T15:56:03Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Raspberry pi Admin]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3016</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3016"/>
		<updated>2024-12-12T15:55:56Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Raspberry pi Admin 2023]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3015</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3015"/>
		<updated>2024-12-12T15:55:45Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Raspberry pi Admin 2023 and up]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3014</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3014"/>
		<updated>2024-12-12T15:53:34Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Raspberry pi Admin &amp;gt; 2023]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3013</id>
		<title>SD card read-only mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=SD_card_read-only_mode&amp;diff=3013"/>
		<updated>2024-12-12T15:50:30Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;Unplugging your Raspberry Pi to shut it down can eventually result in system file corruption. Any operating system stored on an SD card may eventually fail if used for long pe...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unplugging your Raspberry Pi to shut it down can eventually result in system file corruption. Any operating system stored on an SD card may eventually fail if used for long periods of time. To reduce these risks, you can make your SD card read-only. Open the raspi-config tool with the following command:&lt;br /&gt;
 $ sudo raspi-config&lt;br /&gt;
Navigate through the menu system as follows:&lt;br /&gt;
#Select Performance options&lt;br /&gt;
#Select Overlay File System&lt;br /&gt;
#Confirm that you would like to enable the overlay file system&lt;br /&gt;
#Confirm that you would like to write-protect the boot partition&lt;br /&gt;
#Confirm reboot&lt;br /&gt;
This whole process may take a few minutes to complete.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to enable access again to carry out an update or adjust your scripts, SSH back into your Raspberry Pi and run this command to allow write access temporarily:&lt;br /&gt;
&lt;br /&gt;
 $ sudo mount -o remount,rw /boot&lt;br /&gt;
You can now carry out any work required. Another reboot will revert your SD card to a read-only state.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3012</id>
		<title>Raspberry pi Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3012"/>
		<updated>2024-12-12T15:46:53Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auto start firefox-esr in kiosk mode on boot]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[SD card read-only mode]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3011</id>
		<title>Raspberry pi Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3011"/>
		<updated>2024-12-12T15:46:41Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auto start firefox-esr in kiosk mode on boot]]&lt;br /&gt;
[[SD card read-only mode]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3010</id>
		<title>Auto start firefox-esr in kiosk mode on boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3010"/>
		<updated>2024-12-12T15:45:21Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Create the autostart directory:&lt;br /&gt;
 mkdir -p /home/&amp;lt;USER&amp;gt;/.config/autostart&lt;br /&gt;
#Open a new text file in your preferred editor.&lt;br /&gt;
#Add the following three lines:&lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Exec=mousepad&lt;br /&gt;
Replace mouespad with the command of your choice.&lt;br /&gt;
#Save in /home/&amp;lt;USER&amp;gt;/.config/autostart with a name ending in .desktop e.g.&lt;br /&gt;
 mousepad.desktop&lt;br /&gt;
#Logout and login or reboot.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3009</id>
		<title>Auto start firefox-esr in kiosk mode on boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3009"/>
		<updated>2024-12-12T15:43:31Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Create the autostart directory:&lt;br /&gt;
mkdir -p /home/pi/.config/autostart&lt;br /&gt;
#Open a new text file in your preferred editor.&lt;br /&gt;
#Add the following three lines:&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Type=Application&lt;br /&gt;
Exec=mousepad&lt;br /&gt;
Replace mouespad with the command of your choice.&lt;br /&gt;
#Save in /home/pi/.config/autostart with a name ending in .desktop e.g.&lt;br /&gt;
mousepad.desktop&lt;br /&gt;
#Logout and login or reboot.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3008</id>
		<title>Auto start firefox-esr in kiosk mode on boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Auto_start_firefox-esr_in_kiosk_mode_on_boot&amp;diff=3008"/>
		<updated>2024-12-12T15:42:29Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;1. Create the autostart directory: mkdir -p /home/pi/.config/autostart 2. Open a new text file in your preferred editor. 3. Add the following three lines: [Desktop Entry] Type...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Create the autostart directory:&lt;br /&gt;
mkdir -p /home/pi/.config/autostart&lt;br /&gt;
2. Open a new text file in your preferred editor.&lt;br /&gt;
3. Add the following three lines:&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Type=Application&lt;br /&gt;
Exec=mousepad&lt;br /&gt;
Replace mouespad with the command of your choice.&lt;br /&gt;
4. Save in /home/pi/.config/autostart with a name ending in .desktop e.g.&lt;br /&gt;
mousepad.desktop&lt;br /&gt;
5. Logout and login or reboot.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3007</id>
		<title>Raspberry pi Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Raspberry_pi_Admin&amp;diff=3007"/>
		<updated>2024-12-12T15:41:37Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;Auto start firefox-esr in kiosk mode on boot&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auto start firefox-esr in kiosk mode on boot]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3006</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=3006"/>
		<updated>2024-12-12T15:40:57Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Raspberry pi Admin]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=373</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=373"/>
		<updated>2019-06-24T17:46:17Z</updated>

		<summary type="html">&lt;p&gt;Chris: Changed protection level for &amp;quot;Main Page&amp;quot; ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=372</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=372"/>
		<updated>2019-06-24T17:45:28Z</updated>

		<summary type="html">&lt;p&gt;Chris: Protected &amp;quot;Brian&amp;#039;s Thoughts&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Out of a jam]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Levels of perfection]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[I can hear the heat]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=371</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=371"/>
		<updated>2019-06-24T17:43:10Z</updated>

		<summary type="html">&lt;p&gt;Chris: Protected &amp;quot;Main Page&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=368</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=368"/>
		<updated>2019-06-24T17:27:20Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Out_of_a_jam&amp;diff=367</id>
		<title>Out of a jam</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Out_of_a_jam&amp;diff=367"/>
		<updated>2019-06-24T17:23:22Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have a solution for traffic backups. The problem is rubber necking. How can we stop it? One driver at a time.&lt;br /&gt;
&lt;br /&gt;
The first driver is my self, for about a year I have been doing research. What I do is simple, I don`t look when I drive by an accident. My mother could be there dead an I wouldn`t know it. I keep safe following distance and drive on through. When I clear I look in my rear view mirror I have about 20 car lengths on the car behind me. That 20 car lengths is the problem. That driver can`t resist looking, it`s human nature. Just ten minutes ago that driver was complaining about being stuck in traffic. If you look you wave the right to complain when you are stuck in a traffic jam because you are the reason for the jam.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=366</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=366"/>
		<updated>2019-06-14T19:37:55Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]] &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=NMAP_tips_and_tricks&amp;diff=365</id>
		<title>NMAP tips and tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=NMAP_tips_and_tricks&amp;diff=365"/>
		<updated>2019-01-21T15:18:25Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;To test local DHCP Server.  # nmap --script broadcast-dhcp-discover&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To test local DHCP Server.&lt;br /&gt;
 # nmap --script broadcast-dhcp-discover&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=364</id>
		<title>Linux Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=364"/>
		<updated>2019-01-21T15:17:36Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Active Directory - Join Linux to a Domain]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Apache 2 bandwidth limiting]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[CDRecord to burn ISO image]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD Authoring]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD9 to DVD5]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Erase your MBR in Linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Find / GZIP]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Flash, Java, Real Player 32 bit plugins under 64 bit Firefox]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Grub Problems]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[ISO - Make an ISO from a CD or DVD]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Linux remount partition r/w]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://www.nocrash.net/linux/mpegtools.html MJPEG HOWTO]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NIS Setup]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NMAP tips and tricks]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NVIDIA Drivers]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://zlib.net/pigz/ Parallel GZIP]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Reboot / Shutdown - Only allow root to]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[RSYNC over ssh]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SELinux Administration]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SMTP Auth for Sendmail]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SSH Auto Login]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Tar over SSH]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Unison - File synchronization]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Video conversion in linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Vi Reference Card]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Virtualbox Issues]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Wipe your Hard disk]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=363</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=363"/>
		<updated>2018-11-06T15:16:43Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Out of a jam]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Levels of perfection]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[I can hear the heat]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=362</id>
		<title>NVIDIA Drivers</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=362"/>
		<updated>2018-08-24T20:02:43Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;just do the following in the fresh centos 7 install:&lt;br /&gt;
&lt;br /&gt;
 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm&lt;br /&gt;
 yum install nvidia-detect.x86_64&lt;br /&gt;
 yum install kmod-nvidia-375xx.x86_64 &lt;br /&gt;
 yum install nvidia-x11-drv-375xx.x86_64&lt;br /&gt;
 reboot&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=361</id>
		<title>NVIDIA Drivers</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=361"/>
		<updated>2018-08-24T20:01:28Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;just do the following in the fresh centos 7 install:&lt;br /&gt;
&lt;br /&gt;
 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org&lt;br /&gt;
 rpm -Uvh http://www.elrepo.org/elrepo-release-7. ... noarch.rpm&lt;br /&gt;
 yum install nvidia-detect.x86_64&lt;br /&gt;
 yum install kmod-nvidia-375xx.x86_64 &lt;br /&gt;
 yum install nvidia-x11-drv-375xx.x86_64&lt;br /&gt;
 reboot&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=360</id>
		<title>NVIDIA Drivers</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=NVIDIA_Drivers&amp;diff=360"/>
		<updated>2018-08-24T20:00:01Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;just do the following in the fresh centos 7 install:  rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7. ... noarch.rp...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;just do the following in the fresh centos 7 install:&lt;br /&gt;
&lt;br /&gt;
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org&lt;br /&gt;
rpm -Uvh http://www.elrepo.org/elrepo-release-7. ... noarch.rpm&lt;br /&gt;
yum install nvidia-detect.x86_64&lt;br /&gt;
yum install kmod-nvidia-375xx.x86_64 &lt;br /&gt;
yum install nvidia-x11-drv-375xx.x86_64&lt;br /&gt;
reboot&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=359</id>
		<title>Linux Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=359"/>
		<updated>2018-08-24T19:59:54Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Active Directory - Join Linux to a Domain]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Apache 2 bandwidth limiting]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[CDRecord to burn ISO image]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD Authoring]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD9 to DVD5]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Erase your MBR in Linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Find / GZIP]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Flash, Java, Real Player 32 bit plugins under 64 bit Firefox]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Grub Problems]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[ISO - Make an ISO from a CD or DVD]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Linux remount partition r/w]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://www.nocrash.net/linux/mpegtools.html MJPEG HOWTO]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NIS Setup]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NVIDIA Drivers]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://zlib.net/pigz/ Parallel GZIP]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Reboot / Shutdown - Only allow root to]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[RSYNC over ssh]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SELinux Administration]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SMTP Auth for Sendmail]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SSH Auto Login]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Tar over SSH]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Unison - File synchronization]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Video conversion in linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Vi Reference Card]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Virtualbox Issues]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Wipe your Hard disk]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=File:Windows7.jpg&amp;diff=358</id>
		<title>File:Windows7.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=File:Windows7.jpg&amp;diff=358"/>
		<updated>2017-11-13T14:38:08Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of &amp;amp;quot;File:Windows7.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=File:Welding.jpg&amp;diff=357</id>
		<title>File:Welding.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=File:Welding.jpg&amp;diff=357"/>
		<updated>2017-11-13T14:37:30Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of &amp;amp;quot;File:Welding.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=File:Cooking.jpg&amp;diff=356</id>
		<title>File:Cooking.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=File:Cooking.jpg&amp;diff=356"/>
		<updated>2017-11-13T14:36:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of &amp;amp;quot;File:Cooking.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=File:Tux.jpg&amp;diff=355</id>
		<title>File:Tux.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=File:Tux.jpg&amp;diff=355"/>
		<updated>2017-11-13T14:35:22Z</updated>

		<summary type="html">&lt;p&gt;Chris: Chris uploaded a new version of &amp;amp;quot;File:Tux.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=354</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Main_Page&amp;diff=354"/>
		<updated>2017-11-13T14:34:55Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the Nocrash.net article page. Below are some interesting facts, recipes, and howto&#039;s that I frequently use. I hope you find some of them interesting as well. &lt;br /&gt;
&lt;br /&gt;
[[Why Carry a Gun|Why Carry a Gun?]] &lt;br /&gt;
&lt;br /&gt;
[[Brian&#039;s Thoughts]]&lt;br /&gt;
&lt;br /&gt;
[[File:tux.jpg]]  [[Linux Administration]] &lt;br /&gt;
&lt;br /&gt;
[[File:cooking.jpg]]  [[Recipes]] &lt;br /&gt;
&lt;br /&gt;
[[File:welding.jpg]]  [[Welding]] &lt;br /&gt;
&lt;br /&gt;
[[File:windows7.jpg]]  [[Windows Administration]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Vi_Reference_Card&amp;diff=352</id>
		<title>Vi Reference Card</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Vi_Reference_Card&amp;diff=352"/>
		<updated>2017-11-08T21:03:32Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;Open a file:				vi filename&lt;br /&gt;
Insert text before current character:	i&lt;br /&gt;
Insert after character:			a&lt;br /&gt;
Insert at end of line:			A&lt;br /&gt;
Insert at beggingin of line:		I&lt;br /&gt;
Stop inserting text:			Esc&lt;br /&gt;
Delete a line:				Esc dd&lt;br /&gt;
Delete a character:			Esc x&lt;br /&gt;
Copy a line:				yy&lt;br /&gt;
Paste a line:				p&lt;br /&gt;
Replace a word:				Esc cw type new word then Esc&lt;br /&gt;
Replace a character:			Esc r new character&lt;br /&gt;
Search for a word:			Esc /word Enter&lt;br /&gt;
UNDO:					Esc u&lt;br /&gt;
REDO:					Esc :redo&lt;br /&gt;
Do last command again:			Esc .&lt;br /&gt;
Save a file:				Esc :w&lt;br /&gt;
Quit vi:				Esc :q&lt;br /&gt;
Quit without saving			Esc :q!&lt;br /&gt;
Save and quit:				Esc :wq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Vi_Reference_Card&amp;diff=351</id>
		<title>Vi Reference Card</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Vi_Reference_Card&amp;diff=351"/>
		<updated>2017-11-08T21:02:58Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;Open a file:				vi filename Insert text before current character:	i Insert after character:			a Insert at end of line:			A Insert at beggingin of line:		I Stop inserting text:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Open a file:				vi filename&lt;br /&gt;
Insert text before current character:	i&lt;br /&gt;
Insert after character:			a&lt;br /&gt;
Insert at end of line:			A&lt;br /&gt;
Insert at beggingin of line:		I&lt;br /&gt;
Stop inserting text:			Esc&lt;br /&gt;
Delete a line:				Esc dd&lt;br /&gt;
Delete a character:			Esc x&lt;br /&gt;
Copy a line:				yy&lt;br /&gt;
Paste a line:				p&lt;br /&gt;
Replace a word:				Esc cw type new word then Esc&lt;br /&gt;
Replace a character:			Esc r new character&lt;br /&gt;
Search for a word:			Esc /word Enter&lt;br /&gt;
UNDO:					Esc u&lt;br /&gt;
REDO:					Esc :redo&lt;br /&gt;
Do last command again:			Esc .&lt;br /&gt;
Save a file:				Esc :w&lt;br /&gt;
Quit vi:				Esc :q&lt;br /&gt;
Quit without saving			Esc :q!&lt;br /&gt;
Save and quit:				Esc :wq&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=350</id>
		<title>Linux Administration</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Linux_Administration&amp;diff=350"/>
		<updated>2017-11-08T21:02:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Active Directory - Join Linux to a Domain]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Apache 2 bandwidth limiting]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[CDRecord to burn ISO image]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD Authoring]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[DVD9 to DVD5]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Erase your MBR in Linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Find / GZIP]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Flash, Java, Real Player 32 bit plugins under 64 bit Firefox]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Grub Problems]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[ISO - Make an ISO from a CD or DVD]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Linux remount partition r/w]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://www.nocrash.net/linux/mpegtools.html MJPEG HOWTO]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[NIS Setup]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[http://zlib.net/pigz/ Parallel GZIP]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Reboot / Shutdown - Only allow root to]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[RSYNC over ssh]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SELinux Administration]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SMTP Auth for Sendmail]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[SSH Auto Login]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Tar over SSH]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Unison - File synchronization]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Video conversion in linux]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Vi Reference Card]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Virtualbox Issues]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Wipe your Hard disk]]&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=I_can_hear_the_heat&amp;diff=349</id>
		<title>I can hear the heat</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=I_can_hear_the_heat&amp;diff=349"/>
		<updated>2017-08-11T23:24:18Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;During the fall and winter, like most I want warm water to wash my hands. In the summer the cool water is a welcome refreshment but in cold weather it`s more like a shock trea...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;During the fall and winter, like most I want warm water to wash my hands. In the summer the cool water is a welcome refreshment but in cold weather it`s more like a shock treatment. One day while waiting on the hot water to arrive from the water heater to the faucet&amp;amp;nbsp; I notice something. While only running the hot side of the faucet there was a certain pitch or sound. Then as the hot water got closer the pitch got higher. What does all of&amp;amp;nbsp; this mean? One no longer has to&amp;amp;nbsp; feel the water to see if it is hot yet. Instead just listen for the heat.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=348</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=348"/>
		<updated>2017-08-11T23:23:49Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Out of a jam]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Levels of perfection]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[I can hear the heat]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;/font&amp;gt;&amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Levels_of_perfection&amp;diff=347</id>
		<title>Levels of perfection</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Levels_of_perfection&amp;diff=347"/>
		<updated>2017-08-11T23:23:30Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;Few things in life are perfect. One such place comes to mind, major league baseball fields  Unlike football and soccer fields, that show wear, even golf courses have worn plac...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Few things in life are perfect. One such place comes to mind, major league baseball fields&lt;br /&gt;
&lt;br /&gt;
Unlike football and soccer fields, that show wear, even golf courses have worn places . Baseball fields look perfect. As a&amp;amp;nbsp; connoisseur of grass (the kind you mow). I look on with wild eyed amazement, at the blue grass of&amp;amp;nbsp; Fenway park. All parks are different, Fenway has the green monster, Wrigley has the ivy and Minute Maid has the hill. Perfect they all are when ones eye turns to look at the grass. What a reward, it must be for a grounds keeper to look down on a freshly mowed Turner field. Not unlike the farmer and his field of corn or tobacco. Viewed from an airplane, the symmetrical rows look almost unreal. But we don`t sit in 40,000 seat stadiums to watch corn grow.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=346</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=346"/>
		<updated>2017-08-11T23:23:13Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Out of a jam]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Levels of perfection]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;/font&amp;gt;&amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Out_of_a_jam&amp;diff=345</id>
		<title>Out of a jam</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Out_of_a_jam&amp;diff=345"/>
		<updated>2017-08-11T23:22:55Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;I have a solution for traffic backups. The problem is rubber necking. How can we stop it? One driver at a time.  The first driver is my self, for about a year I have been doin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have a solution for traffic backups. The problem is rubber necking. How can we stop it? One driver at a time.&lt;br /&gt;
&lt;br /&gt;
The first driver is my self, for about a year I have been doing research. What I do is simple, I don`t look when I drive by an accident. My mother could be there dead an I wouldn`t know it. I keep safe following distance and drive on through. When I clear I look in my rear view mirror I have about 20 car links on the car behind me. That 20 car links is the problem. That driver can`t resist looking, it`s human nature. Just ten minutes ago that driver was complaining about being stuck in traffic. If you look you wave the right to complain when you are stuck in a traffic jam because you are the reason for the jam.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=344</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=344"/>
		<updated>2017-08-11T23:22:33Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Out of a jam]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;/font&amp;gt;&amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Keeping_it_straight&amp;diff=343</id>
		<title>Keeping it straight</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Keeping_it_straight&amp;diff=343"/>
		<updated>2017-08-11T23:22:12Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;Ever wonder about the stock market scenes in movies like the ones in trading places?  A large group of people are gathered around yelling buy or sell. Then when its all over e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ever wonder about the stock market scenes in movies like the ones in trading places?&lt;br /&gt;
&lt;br /&gt;
A large group of people are gathered around yelling buy or sell. Then when its all over every one throws their slips of paper on the floor. How could anyone keep track of that? Along the same lines gambling on the street. Two guys are going to fight, up pops the bookie taking money and yelling odds. Then the fight is over and by magic all records are correct. I can&amp;amp;#39;t&amp;amp;nbsp; get a lunch order right.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=342</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=342"/>
		<updated>2017-08-11T23:21:56Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Keeping it straight]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;/font&amp;gt;&amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=What_size_are_your_bulbs&amp;diff=341</id>
		<title>What size are your bulbs</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=What_size_are_your_bulbs&amp;diff=341"/>
		<updated>2017-08-11T23:21:39Z</updated>

		<summary type="html">&lt;p&gt;Chris: Created page with &amp;quot;I went shopping for a ceiling fan a couple of weeks ago. Having already made the mistake of buying one with candleobera type bulbs before for a bedroom.    You see,&amp;amp;nbsp; if i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I went shopping for a ceiling fan a couple of weeks ago. Having already made the mistake of buying one with candleobera type bulbs before for a bedroom.  &lt;br /&gt;
&lt;br /&gt;
You see,&amp;amp;nbsp; if it is the main light source for a room the candle bulbs are just not bright enough. So I selected one, or I should say I steered my wife in the direction of one, that looked like it should take standard bulbs. While unpacking the fan I discovered&amp;amp;nbsp; I new species of bulb. After some research (I read the side of the box) I find they are referred to as intermediate bulbs. A size between small and standard. For what reason ? I think the small bulbs should only be used for candle like fixtures, night lights, Christmas lights and some small appliances. I also think the reckless cowboy who came up with the intermediate bulb should be shot. I don&amp;amp;#39;t mean shoot to kill, just the fleshy part of the thigh with a full metal jacket.&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
	<entry>
		<id>https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=340</id>
		<title>Brian&#039;s Thoughts</title>
		<link rel="alternate" type="text/html" href="https://wiki.nocrash.net/index.php?title=Brian%27s_Thoughts&amp;diff=340"/>
		<updated>2017-08-11T23:21:24Z</updated>

		<summary type="html">&lt;p&gt;Chris: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Racism, grass seed and mascots]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What would the earth do with out us?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Time one week at a time]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Red light green light yellow light go ?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What&#039;&#039;s better than new?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Bottle caps easy or hard?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Who do you like to roll with?]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Fear is a dangerous thing]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[One man&#039;&#039;s Left overs is another man&#039;&#039;s delicacy|One man&#039;s Left overs is another man&#039;s delicacy]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Piss off the street corner begger]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Pizza. If your not for it, you&#039;&#039;re against it.]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[Gas, Taxes, and Beyond]]&lt;br /&gt;
&amp;lt;br/&amp;gt;[[What size are your bulbs]]&lt;br /&gt;
&lt;br /&gt;
Quotes&lt;br /&gt;
&amp;lt;br/&amp;gt;I want to know God&#039;s thoughts... the rest are details. -- Albert Einstein&lt;br /&gt;
&amp;lt;br/&amp;gt;There ain&#039;t but one way out, and that&#039;s straight throught the middle.&lt;br /&gt;
&amp;lt;br/&amp;gt;100% of the shots you don&amp;amp;#39;t take don&amp;amp;#39;t go in. -- Wayne Gretzky&lt;br /&gt;
&amp;lt;br/&amp;gt;An eye for eye only ends up making the whole world blind. -- M.K. Gandhi&lt;br /&gt;
&amp;lt;br/&amp;gt;Whatever the mind can conceive and believe, the mind can achieve. -- Dr. Napoleon Hill&lt;br /&gt;
&amp;lt;br/&amp;gt;The chief danger in life is that you may take too many precautions. &amp;lt;/font&amp;gt;&amp;lt;strong&amp;gt;Alfred Adler&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;You can have everything in life that you want if you just give enough other people what they want. -- Zig Ziglar&lt;br /&gt;
&amp;lt;br/&amp;gt;There is much pleasure to be gained from useless knowledge.- &amp;lt;strong&amp;gt;Bertrand Russell&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Great works are performed, not by strength, but by perseverance. -- Samuel Johnson&lt;br /&gt;
&amp;lt;br/&amp;gt;Do or don`t do. There is no try. - Yoda&lt;br /&gt;
&amp;lt;br/&amp;gt;Peace on earth will come to stay, When we live Christmas every day. -- Helen Steiner Rice&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chris</name></author>
	</entry>
</feed>