Tip: Make your server appear as Xserve in Finder

Open /etc/avahi/services/afpd.service for editing

sudo vi /etc/avahi/services/afpd.service

Copy and paste the following XML

<?xml version=”1.0″ standalone=”no”?>
<!DOCTYPE service-group SYSTEM “avahi-service.dtd”>
<name replace-wildcards=”yes”>%h</name>

Restart avahi daemon

sudo service avahi-daemon restart

Use Free Let’Encrypt SSL certificate in Webmin

For the purpose of demonstrating this tutorial I will be using Ubuntu 18.04 LTS.

Step1. Check Webmin version

Webmin can now request SSL certificates from Let’s Encrypt from within the UI. However to use this you will have to be at least on v 1.78

Step 2. Install Let’s Encrypt Client

Ubuntu 18.04

sudo apt-get install letsencrypt

Step3 – Configure Webmin

Goto Webmin –> Webmin Configuration

Click on the gear icon on the top left corner called the “Module Config”

Fill in the Full path to Let’s Encrypt client command field with the absolute path of letsencrypt


Goto Webmin –> Webmin Configuration and client on the box “SSL Encryption”

Click on the “Let’s Encrypt” Tab.

Click on the “Request Certificate” button

Step 4 – Completed

Refresh the Webmin interface and the site would now appear properly secured via HTTPS.

HOWTO: Setup a Time Machine Server on Ubuntu Server 14.04, 16.04, 18.04 & Debian

In this post lets look at the steps to quickly reconfigure a Ubuntu / Debian server to function as a Time Machine server. TM backup tested with OSX Mountain Lion , Mavericks, Yosemite and El Capitan.

  • Install following packages

sudo apt-get install netatalk avahi-daemon

  • Create a new folder which will contain the TM backup.

mkdir -R /data/TimeMachineBackup

  • Create a new user and grant access to the folder created in previous step

sudo adduser tux-networks

sudo chown -R tux-networks:tux-networks /data/TimeMachinebacku

  • Backup the default configuration file installed by apt-get

sudo mv /etc/netatalk/AppleVolumes.default /etc/netatalk/AppleVolumes.default.back

  • Create a new configuration file and edit using vi or other text editors

sudo vi /etc/netatalk/AppleVolumes.default

the following lines exist by default on my machine (this is default setting for all shares)

:DEFAULT: options:upriv,usedots

  • Add the new folder that was created earlier

/data/TimeMachineBackup “Tux Networks’s TM Backup” options:tm volsizelimit:500000 allow:tux-networks
options:tm –> timemachine
volsizelimit –> 500GB of space available for Time Machine
allow –> user id having access to this folder

  • Restart netatalk

sudo service netatalk restart

  • Connect to ubuntu server using Finder on your Mac in the “Go” menu, click “Connect to server…”. In the server address field type afp://192.168.x.x/ then click “Connect”, you will be asked to input a login and password which is the user created in step 3.
  • After connected, type Time Machine in search to open Time Machine app and click “Select Disk…” and select the new Ubuntu Time Machine server under “Available Disks”.
  • Provide login credentials if asked again.

Buffalo Linkstation ACP Commander GUI

ACP Commander GUI is a Graphical User Interface using acp_commander developed by Georg from NAS-Central. ACP Commander GUI is based on the code of acp_commander with some modifications for better integration into the GUI.

Original link: http://www.gry.ch/Java/styled/

Thanks to Georg for his nice work!

ACP Commander GUI can be used to remotely control your arm9-based LS Pro/LS Live/Tera Pro v2/Tera Live devices. I only tested it with an LS Live, but the others should work to.

I am keeping a copy of the files for my future reference, as I noticed NAS-Central is down since Aug’18.


  • Automatically detects LinkStations™ available in your network, just select the desired one from the pulldown box.
  • Execute Linux commands directly on the LinkStation™ and get the output in the log window.
  • Set the door password of the LinkStation™.
  • Enable SSH (sshd). It will also add a startup entry so that SSH is also available after each reboot.
  • Tested on Firmware versions 1.560 and 1.570.

Simply enter the admin password in the “Admin password” field and you are done. That is the one you do also use to login to the Web Interface of the LinkStation™. After that, simply click on one of the buttons to execute the desired action.

For more LinkStation™ information visit Buffalo Technology.

Note: The data that can be returned from the LinkStation™ is limited by the protocol. That means if you manually execute a command (like “ls”) on the device it could be possible that you don’t get the full result back. Just keep that in mind.

Warning: This is experimental software that might damage your LinkStation™.

Version History:

  • 1.5.6 (08.04.2012)
    Initial release.

Archive include the following:


  • acp_commander.jar
  • acp_commander_gui_156.jar
  • acp_commander_gui_156.zip

How to remove password from PDF files with Google Chrome

Typically statements from Banks or Securities Brokers are password protected PDF files as these contain personal information.

In this article we can see how to remove password and archive the PDF files.

PDF file password can be removed using Google Chrome by following the steps outlined here:

1. Open the PDF file in chrome by drag and drop the PDF file on chrome browser.

2. Provide password and open the PDF file.

3. From file menu choose Print ( or press Ctl P on Windows or command + p on MAC). Choose the destination printer as “Safe as PDF” and click on save button.

4. Google Chrome will save the PDF file to your desktop without any password protection.

HOWTO: Harden your WordPress wp-admin using password protection

Though wp-admin is already secured through login/password authentication, this post will examine to add an additional layer of security.

For the purpose of second layer security htpasswds file will be used.

Create htpasswds file

Use htpasswd command in Linux or OSX to create a htpasswd file. The command to execute  is as below

$ htpasswd -c .htpasswd mydemouser 
New password: 
Re-type new password: 
Adding password for user mydemouser

A file .htpasswd is created in the local directory

$ cat .htpasswd

Changes on server hosting WordPress site

1. Copy the .htpasswd file to a directory that’s outside the wp-admin directory

Suggested Directory: /home10/mydemouser/.htpasswds/public_html/wp-admin/passwd/

Change the directory as per your site deployment.

2. Create a .htaccess file in ~/public_html/wp-admin directory and include following


AuthName "Restricted Access"
AuthUserFile /home10/mydemouser/.htpasswds/public_html/wp-admin/passwd/.htpasswd
AuthGroupFile /dev/null
AuthType basic
require user mydemouser

3. Access wp-admin page and confirm an authentication popup window appear. If the page fails with too many redirects error then proceed with the next step.

Stop too many redirects error

4. Edit the .htaccess under ~/public_html and add the following line before WordPress rules start

ErrorDocument 401 default

That’s it – double layer authentication should now be active.

How to fix Admin Ajax issue

If the wp-admin is password protected then it will break the ajax functionality in the front-end ( if it is been used). To fix this issue follow the steps below

1. Edit the .htaccess file in ~/public_html/wp_admin folder and add the following code on the file.

<Files admin-ajax.php>
     Order allow,deny
     Allow from all
     Satisfy any

HOWTO: Add Google Adsense to your WordPress site – Part 1

If you have reached this place, you probably know what Google Adsense does – monetize your website in-short.

Follow the steps below to link-up your adsense account to a wordpress page.

Create an Adsense Account

1. First step is to sign up for an Adsense account. You can either use your existing Gmail account or create a new account.

2. Within 24 hours you should receive an email which would state if first step of the review process is completed.  When this is done, you should be able to login Adsense website and retrieve your Ad Code.

3. Logon to Adsense webpage and click on My ads and then click on Ad units

4. Click on New ad unit, this will bring you to a new screen as below

Choose “Text & display ads”

5. You will be asked to provide Name for the Ad unit and the size, style, and colors.  Provide a name and go with default size for Ad size, and click on “Save and get code” to get your new Ad code

6. Your Ad code snippet would most likely look like this

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- tuxNetworks-Demo -->
<ins class="adsbygoogle"
(adsbygoogle = window.adsbygoogle || []).push({});

7. This will be accessible from Ad units page.



My first post

After many years of thinking on what I should really be doing, I have finally decided to divert my time to blogging.  With a job that require me to work 14 hours a day – there is hardly any time left to do any other activity. End of the day it’s all about passion …. what you want to do.