Install MediaWiki a self hosted wikipedia like app on your server

Install php-apcu:

sudo apt-get install php5-apcu

Now download the latest package and install it:

wget https://releases.wikimedia.org/mediawiki/1.28/mediawiki-1.28.2.tar.gz
tar xvf mediawiki-1.28.2.tar.gz
mv mediawiki-1.28.2 wiki
chown -R www.www *

Now visit yoursite.com/wiki and complete installation there.
In your shell, create a mysql database, user and grant access:

mysql -u root -p
MariaDB [(none)]> create database if not exists mydbname;
use mydbname;
create user 'dbusr'@'localhost' identified by 'password';
grant all on mydbname.* to 'dbusr'@'localhost';
FLUSH PRIVILEGES;
quit;

Now use these auth details on the site.

After installation is done, to change password:
Find user by email id:

mysql -u root -p
show databases;
use oscewiki;
show tables;
SELECT user_name FROM wikiuser WHERE user_email = [email protected]';
quit;
cd maintenance
sudo php changePassword.php --user=myusername --password=newpassword

You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Doing a security audit of linux system

I just discovered lynis which can be done on the local system-it’s a simple script which can be run on the shell without any installation.

Get it from https://cisofy.com/lynis/

wget https://cisofy.com/files/lynis-2.4.8.tar.gz
tar xvf lynis-2.4.8.tar.gz
cd lynis
./lynis audit system

The final log is saved to /var/log/lynis.log


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Fixing a kernel that wont boot in Debian on OVH

During an upgrade my kernel got corrupted and the server went down. Thankfully OVH offers a Netboot and Network mode. I used the network option and chose one of the available kernels, which dropped me in one of my own installation and executed the following:

To reinstall the current linux kernel:

List available kernels

apt-cache search linux-image

Reinstall the kernel:

apt-get install --reintall linux-image-3.16.0-4-amd64

Update grub configuration:

update-grub

And hard reboot server


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Reset a forgotten Windows 7 administrator password

This post describes how to reset a forgotten Windows 7 administrator password:

First create a Windows 7 installation disc or pen drive. For pen drive, you can use Rufus.

Once you have an installation medium, boot off it. You may need to tweak the bios settings at boot to enable booting from this.

Once installation starts, choose “Repair your computer” option. Get to the command prompt, and execute the following command:

copy c:\windows\system32\sethc.exe c:\
copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe

Reboot PC. Start windows, get to the login screen, and press Shift key 5 times to get an admin (elevated permissions) command prompt. Execute the following:

net user myuser newpwd

to change the password for the user “myuser”.

If you dont have an admin user installed, create one now:

net user /add [username] [password]

This creates the user account.

Add the new user to Admin group:

net localgroup administrators [username] /add

As a security precaution (even though Windows is inherently a security risk), always set a bios password to prevent novices from accessing your system internals. Of course, they could always open the chassis, reinsert the battery to disable the bios password. 😉


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Show line numbers in gedit

The Preferences menu was missing under “Edit” in my installation of gedit in Ubuntu 15.10. To enable it, run:

sudo apt-get install indicator-appmenu
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides [email protected]{sv} {"Gtk/ShellShowsAppMenu": <int32 0>}'

Reopen Gedit. Now Edit>Preferences


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Installing mailcow mail server suite

So, Mailcow seems to be a new kid on the block of mail servers. In this post, I’ll attempt to perform an installation of a freshly installed DigitalOcean droplet. (Digitalocean provides resizable VPSes that are useful to perform development and hobbyist work like this. )

Step 1:
Create a Dogital Ocean droplet. I’ll try the minimum size of droplet.

Step 2:
Login to the VPS as root. I’ll assume that you’ve installed your favorite text editor. I’ll be using emacs.

wget -O – https://github.com/andryyy/mailcow/archive/v0.11.tar.gz | tar xfz –
Substitute 0.11 with the latest release number from https://github.com/andryyy/mailcow/releases/latest

emacs mailcow.config

Edit it with your own values. It’s a piece of cake.

After running the install, I got an error:

+ DEBIAN_FRONTEND=noninteractive
+ apt-get --force-yes -y install zip jq dnsutils python-setuptools libmail-spf-perl libmail-dkim-pertp php-net-socket php-net-url php-pear php-soap php5 php5-cli php5-common php5-curl php5-fpm php5-gdent mysql-server nginx-extras mailutils pyzor razor postfix-mysql postfix-pcre spamassassin spamc surl libmime-base64-urlsafe-perl libtest-tempdir-perl liblogger-syslog-perl bsd-mailx
E: Unable to correct problems, you have held broken packages.
+ '[' 100 -ne 0 ']'
++ redb '[ERR]'
+++ tput bold
+++ tput setaf 1
+++ tput sgr0
++ echo '[ERR]'
+ echo '[ERR] - Package installation failed'
[ERR] - Package installation failed
+ exit 1

I tried running the command manually:

apt-get --force-yes -y install zip jq dnsutils python-setp-mail-mimedecode php-net-dime php-net-smtp php-net-socket php-net-url php-pear php-soap php5 php5-c5-sqlite libawl-php php5-xmlrpc mysql-client mysql-server nginx-extras mailutils pyzor razor postfixtchmail liblockfile-simple-perl libdbi-perl libmime-base64-urlsafe-perl libtest-tempdir-perl liblogg
Reading package lists... Done
Building dependency tree
Reading state information... Done
bzip2 is already the newest version.
curl is already the newest version.
curl set to manually installed.
libdbi-perl is already the newest version.
libdbi-perl set to manually installed.
mysql-client is already the newest version.
openssl is already the newest version.
openssl set to manually installed.
python-setuptools is already the newest version.
python-setuptools set to manually installed.
unzip is already the newest version.
unzip set to manually installed.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 postfix-mysql : Depends: postfix (= 2.11.3-1) but it is not going to be installed
 postfix-pcre : Depends: postfix (= 2.11.3-1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

So I determined the problematic line:

$grep -inr 'install zip jq dnsutils' *
includes/functions.sh:245:DEBIAN_FRONTEND=noninteractive apt-get --force-yes -y install zip jq dnsut

Edited the line to add postfix to the installation list, and reran installation:

[[email protected]] ~/build/mailcow-0.11 $emacs includes/functions.sh
[[email protected]] ~/build/mailcow-0.11 $./install.sh

You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Setting up OpenVZ and the OpenVZ Web panel on Debian

First, you’d need to install Debian on your server. For DelimiterVPS, go to https://clients.delimitervps.com/clientarea.php, and login to your account.
Choose the Reinstall server option.
Under ‘Installation Profile’, choose ‘Debian Wheezy’.
Choose a good enough root password. From personal experience, I’d avoid special characters in my root password. I had setup a very complex password once, and found that it was not accepted by the ssh login shell. It’s likely that WHMCS does not escape special characters very well.
Choose ‘Provision Server (Warning)’.

At this point, go back to the email you received from DelimiterVPS, and read the part about KVM/ILO Configuration. You can login to ILO and watch the installation progress. Once installation is done, Proxmox is supposed to be up and running at https://yourip::8006. However we need a couple of steps and a reboot before we can use it.

Run the following:

cat << EOF > /etc/apt/sources.list.d/openvz-rhel6.list
deb http://download.openvz.org/debian wheezy main
EOF
wget http://ftp.openvz.org/debian/archive.key
apt-key add archive.key
apt-get update

Install OpenVZ kernel:

apt-get install linux-image-openvz-amd64

First, you have to remove the default Linux kernel, and set the OpenVZ kernel to start at boot.
Run the following from the shell:

apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64 linux-base
update-grub

You’ll notice that openvz based kernels have now been added to grub (the bootloader).

Enable IP forwarding and other rules are setup:
Edit the file /etc/sysctl.conf, and uncomment/add (Remove the # at the beginning) the following lines:

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

run the following:

sysctl -p
apt-get install vzctl vzquota ploop vzstats

Now, restart the server.

reboot

Run the following:

wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

After some time the installation may stop with the following message:
Fatal error: Panel requires Ruby 1.8 (Ruby 1.9 is not supported).

Run:

update-alternatives --config ruby
# update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby1.9.1   51        auto mode
  1            /usr/bin/ruby1.8     50        manual mode
  2            /usr/bin/ruby1.9.1   51        manual mode

Press enter to keep the current choice[*], or type selection number: 1

Now rerun the installation:

wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

At the end, you will get the message:

Panel should be available at:
http://x.droidzone.in:3000
Default credentials: admin/admin

Now login, and change the default password.

You can now install OpenVZ templates(Physical servers>Localhost>OS Templates>Install new OS Template).
Assign ips to the pool (Ip Addresses>Create new IP pool). Add the IPs assigned to you. You may need to buy more from your provider.

To create a VPS:
Localhost>Virtual servers list>Create virtual server

Creating a custom template.
Provision a VPS using a default template.
Login to the VPS, setup everything including resolvconf, tzdata, locales, dialog, .bashrc etc.

vzctl stop 1
vzctl set 1 --ipdel all --save
cd /var/lib/vz/private/1
tar --numeric-owner -czf /var/lib/vz/template/cache/debian-7.0-x86_64-minimal-custom.tar.gz .

Change default port and enable SSL on Openvz web panel:
Change the following in /etc/owp.conf:

# web server port
PORT=3000

to

PORT=2096

and

# SSL support, on - enable, off - disable
SSL=off

to

SSL=on

Restart the service. Now it is accessible at https://yourdomain.com:2096

I chose 2096 because it is one of the ports that Cloudflare supports and thus you get a free SSL support with Cloudflare.

Create a symlink to /vz because most of the vz tools expects the OpenVZ folders to reside there. This step is not necessary, but can eliminate further problems when other vz related components are installed.

ln -s /var/lib/vz /vz

You also probably need to change:

#NEIGHBOUR_DEVS="detect"

to

NEIGHBOUR_DEVS="all"

at /etc/vz/vz.conf

and do a

service vz restart

For Reference, my network config on node is as below:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address 157.266.186.60
        netmask 255.255.255.192
        network 157.266.186.0
        broadcast 157.266.186.63
        gateway 157.266.186.62
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8
        dns-search droidzone.in

And my two addon ips are:

157.266.187.162/32
157.266.187.163/32

Obviously the ips have been scrambled.


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

Setting up Virtual private servers via Proxmox on a ‘DelimiterVPS’ dedicated server

DelimiterVPS had a nice offer for a value-for-money Dedicated server, the other day. I pounced on my chance to add another dedicated server to my collection. The other one is an Online.net Euro 5.99 server that I have been using for the past year. The server provisioning was quick (within two hours of payment). I paid via Paypal.

Now about setting up the server for creating VPSes..

First, go to https://clients.delimitervps.com/clientarea.php, and login to your account.
Choose the Reinstall server option.
Under ‘Installation Profile’, choose ‘Proxmox VE 3.0’.
Choose a good enough root password. From personal experience, I’d avoid special characters in my root password. I had setup a very complex password once, and found that it was not accepted by the ssh login shell. It’s likely that WHMCS does not escape special characters very well.
Choose ‘Provision Server (Warning)’.

At this point, go back to the email you received from DelimiterVPS, and read the part about KVM/ILO Configuration. You can login to ILO and watch the installation progress. Once installation is done, Proxmox is supposed to be up and running at https://yourip::8006. However we need a couple of steps and a reboot before we can use it.

First, you have to remove the default Linux kernel, and set the OpenVZ kernel to start at boot.
Run the following from the shell:

apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64 linux-base
update-grub

You’ll notice that openvz based kernels have now been added to grub (the bootloader).

If you’d prefer a login screen with Cloudflare SSL, you’d want to change the default Proxmox web panel port from 8006 to 2053, 2083, 2087, 2096, or 8443. (See https://support.cloudflare.com/hc/en-us/articles/200169156-Which-ports-will-CloudFlare-work-with-)

Do this:

sed -i 's/port => 8006/port => 2096/' /usr/bin/pveproxy
service pveproxy restart

Enable IP forwarding is setup:
Edit the file /etc/sysctl.conf, and uncomment (Remove the # at the beginning) the following line:

#net.ipv4.ip_forward=1

You can just run the following:

sed -i "s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g" /etc/sysctl.conf
sysctl -p

Now, restart the server.

You can now login to Proxmox at:

https://yourdomainname.com:2096 (If you changed the IP for Cloudflare DNS),

or

https://yourip:8006 (Default Proxmox login URL).

Choose your server’s root password with Linux PAM authentication.

Before creating VPSes, you need to download OpenVZ templates to the server.
Click on server, and ‘local(server)’ under ‘server’.
Click on the tab ‘Content’
Click on Templates,
Under Section:system, choose to download templates you require.

Now to create a new VPS, Click on ‘Create CT’, enter the following:
Node and VM ID should be automatically populated.
Enter hostname for your VPS: test1.mydomain.com
Password: Choose a complex password
Confirm Password.

Click on Next.
Choose a template from the dropdown.
Click on Next.
Now, choose values for Memory, Swap, Disk size, CPU.
Click on Next.
Choose routed mode, enter one of the ‘additional ip addresses’ you purchased from DelimiterVPS.
Click on Next.
Click on Next again.
Click on Finish.

Your virtual server is now ready. Try logging to it via ssh.

To remove the Proxmox ‘You do not have a valid subscription nag popup’, run the following:

cp /usr/share/pve-manager/ext4/pvemanagerlib.js /usr/share/pve-manager/ext4/pvemanagerlib.bak.js
sed -i "s/data.status !== 'Active'/false/" /usr/share/pve-manager/ext4/pvemanagerlib.js

Credits:
MarkTurner at Lowendtalk for help with server settings


You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

How to setup Owncloud for your own server

Install owncloud on own server.
First add an apache virtualhost.

Edit

/etc/apache2/sites-available/default

Create the following:

<VirtualHost *:80>
ServerName cloud.relsoft.in
ServerAlias cloud.relsoft.in
DocumentRoot /var/www/virtual/relsoft.in/cloud/htdocs
</VirtualHost>

Create a “A” record in the DNS panel for relsoft.in:

A cloud.relsoft.in [myipaddress]

Create the virtual directory:

mkdir -p /var/www/virtual/relsoft.in/cloud/htdocs
chown -R www-data.www-data /var/www/virtual/relsoft.in

Download and uncompress the latest owncloud installation package [Available at

https://owncloud.org/install/#instructions-server ]
wget https://download.owncloud.org/community/owncloud-8.0.3.tar.bz2
tar xf owncloud-8.0.3.tar.bz2
mv owncloud/* ./
rm owncloud-8.0.3.tar.bz2
rm -rf owncloud/

Install php gd module, php5-curl and php5-mysql:

sudo apt-get install php5-gd php5-curl php5-mysql

Set always_populate_raw_post_data to -1 in your php.ini
Now to set the appropriate value in php.ini, first I have to locate the correct php.ini to edit.

find /etc -iname 'php.ini'

Now locate the location of the setting:

grep -in 'always_populate_raw_post_data' /etc/php5/apache2/php.ini
704:;always_populate_raw_post_data = -1

Edit the correct line with emacs:

emacs /etc/php5/apache2/php.ini
Alt-G G 704

takes me to the correct line to edit. Remove the two leading semicolons.

Restart apache2 server:

service apache2 restart

Now reload cloud.relsoft.in in your browser.

Now I got a security warning:
Your data directory and files are probably accessible from the internet because the .htaccess file does not work.
For information how to properly configure your server, please see the documentation.

This means that htaccess is not enabled for the server. So to setup .htaccess for apache:

Edit /etc/apache2/sites-available/default
emacs /etc/apache2/sites-available/default

Add the “AllowOverride All” directive.
So the block now looks like:

ServerName cloud.relsoft.in
ServerAlias cloud.relsoft.in
DocumentRoot /var/www/virtual/relsoft.in/cloud/htdocs

AllowOverride All


If while editing apache directive files, you face issues, run: systemctl status apache2.service Or journalctl -xn for details

Create database with mysql:
mysql -u root -p
mysql> CREATE DATABASE ‘owncloudie’;
mysql> USE owncloudie;
mysql> CREATE USER ‘cloudsrvrusr’@’localhost’ IDENTIFIED BY ‘mypassword’;
mysql> GRANT ALL PRIVILEGES ON owncloudie.* TO ‘cloudsrvrusr’@’localhost’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Restart apache2, and reload the install page.

Now, add an admin username and password, and add the database details that we created with mysql.
When you click on ‘Finish setup’, mysql installation will be over, and you can login as administrator.
Create users.

Download the Desktop client at https://owncloud.org/install/#install-clients, and the Android client from https://play.google.com/store/apps/details?id=com.owncloud.android

To create ssl:

mkdir -p /etc/apache2/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
emacs /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName cloud.relsoft.in
        ServerAlias www.loud.relsoft.in
        DocumentRoot /var/www/virtual/relsoft.in/cloud/htdocs
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                        SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
</IfModule>
a2ensite default-ssl.conf
service apache2 reload

You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.

How to migrate or transfer a gitlab installation from one server to another

On the new server running Debian 8, we’re proceed to create a fresh copy of Gitlab Community edition. For demonstration, I have created a Digitalocean droplet. (Aside: Digitalocean is a cloud based on-the-fly VPS service. To try this tutorial, you may Signup to DO using my referral code and get a free $10 credit to try it out. Click here).

Create a Debian 8 jessie VPS with 512 MB RAM (512 MB is enough for running Gitlab. If you wish to try with more RAM, you’re free to).

https://downloads-packages.s3.amazonaws.com/debian-8.0/gitlab-ce_7.10.1~omnibus.2-1_amd64.deb

For latest package, refer: https://about.gitlab.com/downloads/archives/

Now install essential packages:

apt-get update && apt-get install openssh-server postfix emacs -y
wget https://downloads-packages.s3.amazonaws.com/debian-8.0/gitlab-ce_7.10.1~omnibus.2-1_amd64.deb

For Debian 7 64bit, the package is at https://downloads-packages.s3.amazonaws.com/debian-7.8/gitlab-ce_7.10.1~omnibus.2-1_amd64.deb

I install emacs because it is my preferred editor. You may use your favorite editor-vim, nano etc.

Before backing up, you need to upgrade the version of gitlab on the old server to the same version as the one you will be installing to the new server.
So on the old server, I will upgrade 7.9.2 to 7.10.1 by following instructions given here: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/update.md#updating-from-gitlab-6-6-x-and-higher-to-the-latest-version
For choosing update instructions, see here: https://about.gitlab.com/update/

Login via ssh to the old server where gitlab is already running, and issue the following command from shell:

sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq && sudo gitlab-ctl stop nginx
wget https://downloads-packages.s3.amazonaws.com/debian-7.8/gitlab-ce_7.10.1~omnibus.2-1_amd64.deb
sudo dpkg -i gitlab-ce_7.10.1~omnibus.2-1_amd64.deb

Once you receive a message of “Upgrade complete!”, issue the following:

sudo gitlab-ctl restart

Confirm that you can login, to confirm that everything went smoothly.

Now, backup gitlab.

sudo gitlab-rake gitlab:backup:create

On the new server, download and install gitlab CE:

wget https://downloads-packages.s3.amazonaws.com/debian-8.0/gitlab-ce_7.10.1~omnibus.2-1_amd64.deb
dpkg -i gitlab-ce_7.10.1~omnibus.2-1_amd64.deb
gitlab-ctl reconfigure

Once it’s completed, navigate to http://yourip.com/ and login with username root and password 5iveL!fe. Choose a new password when prompted. Gitlab install is now over. Now we’ll transfer data from the old server.

The following instructions document setting up key authentication between two servers. This is optional. Debian jessie by default removes password based ssh by default. If you still have password based ssh authentication (which was default on previous debian versions), you can just do scp of files and provide passwords. If the latter is true in your case, skip ahead to the scp command below.

In your ssh terminal in the new server, send the public key for your ssh key to the new server.
Since I usually change the ssh port for security reasons, and also disable password login for root ssh user, I have to setup keybased login.

In your old server, make changes to ~/.ssh/config

emacs ~/.ssh/config
Host git.yourserver.com
     Hostname 42.54.136.211
     User root
     Identityfile /root/.ssh/id_rsa
     Port 65678

This sets up ssh so that you can connect to your server with just ssh git.yourserver.com, and ssh will take care of choosing the proper key and port. Otherwise, specifying the port and key each time is tedious. Here, 42.54.136.211 should be replaced by your server’s ip.

In your new server, make similiar changes corresponding to the old server.

On your old server, transfer the latest backup from /var/opt/gitlab/backups/ to the new server:

scp /var/opt/gitlab/backups/1430619604_gitlab_backup.tar [email protected]:/var/opt/gitlab/backups/

Now on the new server, execute the following to restore from the transferred backup.

sudo gitlab-rake gitlab:backup:restore BACKUP=1430619604

If you receive an error about unable to unpack due to a permission problem, just run a chmod go+r on the backup file.

When everything is over, run the following for good measure:

sudo gitlab-ctl restart

You are reading this post on Joel G Mathew’s tech blog. Joel's personal blog is the Eyrie, hosted here.