Redmine 3.45 install Debian 9 stretch with SystemD

Please notice this is a quick and slim example only for non-multi user environment.

It fits my need very well.

Can hold up to 50 Clients at same time.

I am using SQLite as database because I love it.

My config/database.yml:

Start install:

Testing it out:

Run as systemd service: add file


To start it:

What to improve:

  1. I run it as [root] user it may not super safe, but this is just for internal use.
  2. Redmine Log rotation, please reference my old post: Redmine Log rotation

efibootmgr quick guide

Been working on UEFI/Secure Boot recently.


How to delete an unwanted entry in efibootmgr?


Deleting a boot entry


Creating a boot entry
To create an EFI boot entry, a couple of arguments are passed to efibootmgr:


Postfix qmgr process causes heavy overload on RHEL 6

A RHEL 6 Server running some web service not Email service.

This morning found under heavy I/O delay.

Try check it out by:

The Postfix qmgr process causes heavy overload, which doesn’t make any sense to me.

Have to check the mail queue.

which give me over 40K queued emails.

by reading them, here is same example:

It turn’s out that one of the cron job runs every minute did not have a proprietary MAIL to settings.

Then purge all old emails both postfix queue and local mail:

Just want make it more clean, I try to remove the postfix package:

The cron require at lease one MTA on system.
Because we had smart host Email internal.
I did install my favorite SSMTP inside of sendmail.

First Backup the /etc/postfix

Setup the /etc/ssmtp/ssmtp.conf, did small test.

Everything looks good.

Please notice the server is not serve as an EMail server.


Batch send Email to each address


Please notice each receipts only see their own Address.
The [To: ], makes the Outlook display correctly.

Email in a format example:

Email Address example:

imagemagick convert append multi jpg into a big jpg photo

First install the Imagemagick.

convert is a sub command from Imagemagick.

To make a long JPG file:

Vertical connect:

Horizontal connect:

4 Panels:

Again, I love opensource!

All credit goes to

Configuring WordPress Automatic Background Updates Plugin

Don’t want always login to my WP admin Dashboard just for update the Plugin.

Here is how I do it:

Manually create folder: wp-content/mu-plugins/
Then put auto-update.php in there.

Make sure the permission:

And enjoy your day!

String matchs for not in the Second File

Try to clean some old files/folders:

This will find all [ (all_dir.sort) – (active.sort) ] put it into [ del_list ].
Case insensitive.

update WordPress Plugin Advanced Custom Fields PRO

Just installed an new WordPress theme, it requires plugin [Advanced Custom Fields PRO]

After automatic installation, the WordPress installed the Version 5.5.

Then it pop message about an update version 5.6.1 available only for the paid user.

I found it is open public on github:

    1. First I backup the version 5.5 plugin:

    1. Then download the latest release:

  1. Overwrite the download to the existing plugin files:
    dry-run to make sure before the changes:

    Final run overwrite:

PS: I switch my website to HHVM+SQLite now.

I will be really appreciate if you can give me some feedback about the changes like: load time, speed …

HHVM Tuning

  • Disabling The Typechecker:

HHVM automatically runs the typechecker – this is useful in development, but assuming you have it running in your development workflow and in your CI system, there is not much additional benefit to running it in production, and the increased memory usage can be costly in production. To disable it, add the following to /etc/hhvm/server.ini:


  • Switch to UNIX socket inside of port for fastcgi mode:

HHVM is considered for environments under heavy load so the first configuration change you can do is to make HHVM listen to a socket instead of a TCP port. Thus, the communication between Nginx and HHVM will require less CPU and memory.

Add this to: /etc/hhvm/server.ini

I also common out the port line to increase a bit of security.

Then change the Nginx config to hhvm as well:

  • Tweaking Memory:

By default the memory_limit is equal to 17179869184 bytes, which is 16 GB.
Such a high memory resource limit will certainly kill a server with a few GB of RAM, making it unresponsive.
I decrease this value to 500 MB for a 1 GB memory Server:

Add this to: /etc/hhvm/php.ini

Restart to apply the changes:


  • A much more pushed example for a bigger server:


Ubuntu Server 16.04 firewall UFW configure

Ubuntu using UFW, I found it is easy to config for most of the people.

Here is my basic example configure:

First install ufw:

Which also installed the iptables package.

Then check the status:

Shout be disabled for fresh setup.

Next all my configure and enable ufw at the END:

Final status should looks like this: