bookmark_borderInstalling Linux kernel 6.0 on Ubuntu 22.10


In this week’s feature highlight, we look at How to Install Linux kernel 6.0 on Ubuntu 22.10

Kernel is central component of an operating system that manages operations of computer and hardware. It basically manages operations of memory and CPU time. It is core component of an operating system. Kernel acts as a bridge between applications and data processing performed at hardware level using inter-process communication and system calls.

Step 1 – Update your system

First, Update the system packages to the latest versions using the below apt commands,

 apt update
 apt upgrade

Install some of the packages required for the Kernel upgrade,

 apt install gcc make perl wget

Step 2 – Installing Linux Kernel 6.0

By default on Ubuntu 22.10, The kernel version it ships with is version 5.19

Linux Kernel 6.0 is not available on Ubuntu 22.10 base repository. So we will manually download the required Linux Kernel packages from the official site and install.

You can check their official site for a list of available kernel versions that can be installed,

At the time of writing this article, version 6.0.9 was the only latest kernel we could install with.

If you find any newer versions that can be installed, please go ahead with it.

Some points to note, for selecting a different version of kernel.
Open the site and scroll to the bottom of the page.
Find a version whose builds are successful, under that, navigate to “amd64” folder.
You will find the required four files to download on the ubuntu system, Linux Headers, Linux Image and Linux Modules.
A successful build looks like below:

Test amd64/build succeeded (rc=0, on=amd64, time=0:12:37, log=amd64/log)

For upgrading to the latest kernel on Ubuntu, follow the given instructions:

wget https//




Now, install the downloaded files using the dpkg command as shown below,

Ensure that there are no other .deb files apart from the ones that were downloaded.
If there are any other .deb files, recommended to remove them before proceeding.

dpkg -i *.deb

After installing the Linux Kernel 6.0, reboot the system to run the new Kernel


Step 3 – Verify the Kernel version

To verify the kernel installed and running after the reboot, use the uname command as shown below,

uname -r


root@vps:~# uname -r

This concludes the topic of installing the latest version of Kernel on a Ubuntu System.

bookmark_borderHow To Install and Configure Elasticsearch on Ubuntu 22.10


In this week’s feature highlight, we look at How To Install and Configure Elasticsearch on Ubuntu 22.10

Elasticsearch is a platform for real-time, distributed data analysis. Because of its usability, potent features, and scalability, it is a well-liked option. Installing Elasticsearch, configuring it for your use case, securing your installation, and beginning to work with your Elasticsearch server.

First, check for any pending system upgrade

Let’s update software packages first. To perform updates, run the following command:

apt update
apt dist-upgrade

Install the APT HTTPS Transport package, with the following command,

apt install apt-transport-https

Install from APT Repository

Download and install the public signing key:

Wget -qo - | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

To Save the repository definition to

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Install Elasticsearch on Ubuntu 22.10

apt install elasticsearch

During the installation, you will be provided with the elastic superuser password. Kindly note it down for future usage.

Update Firewall Settings

Allow port 9200 for Elasticsearch by running the following ufw command

ufw allow from <yourserver.ip.address> to any port 9200

Enable the firewall service:

ufw enable

Next, view firewall service status:

ufw status

Configuring Elasticsearch

Let us configure Elasticsearch, we will edit its main configuration file elasticsearch.yml, which contains the majority of its configuration options. This file is located in the directory /etc/elasticsearch.

Edit the Elasticsearch configuration file with your preferred text editor. We’ll use nano in this case:

nano /etc/elasticsearch/elasticsearch.yml

Note: Elasticsearch’s configuration file is in YAML format, which means that we need to maintain the indentation format. Be sure that you do not add any extra spaces as you edit this file.


# Set the bind address to a specific IP (IPv4 or IPv6):
# localhost

Because we specified localhost, Elasticsearch will listen on all interfaces and bound IPs. If you only want it to listen on one interface, use its IP address instead of localhost. Elasticsearch.yml should be saved and closed. If you’re using nano, you can do so by pressing CTRL+X, then Y, and finally ENTER.

These are the bare minimum settings you can use to get started with Elasticsearch. You can now launch Elasticsearch for the first time.

Systemctl will start the Elasticsearch service. Allow Elasticsearch a few moments to load. Otherwise, you may receive errors indicating that you are unable to

Start the Elasticsearchservice,

systemctl start elasticsearch

Enable the Elasticsearchservice,

systemctl enable elasticsearch

Verify that the Elasticsearch has been installed and running on the server by running the following command:

curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200

You will be prompted to enter the password for the elastic user. Use the password that was provided to you during the installation from earlier.


root@vps:~# curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200
Enter host password for user 'elastic':
  "name" : "",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "HZcPm0lAQMCcsx94chOPPA",
  "version" : {
    "number" : "8.5.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "c1310c45fc534583afe2c1c03046491efba2bba2",
    "build_date" : "2022-11-09T21:02:20.169855900Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.1",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  "tagline" : "You Know, for Search"

This concludes the Installation and Configure Elasticsearch on Ubuntu 22.10.

bookmark_borderHow to Install Gogs Git on Ubuntu 22.10


In this week’s feature highlight, we look at How to Install Gogs Git on Ubuntu 22.10

This tutorial will walk you through the steps necessary to install the Gogs self-hosted Git service on an Ubuntu 22.10 server. The Gogs project, written in Go, aims to create a simple, stable, and extensible self-hosted Git service with a simple setup process.

Gogs performs admirably and is extremely light. It uses very little RAM and CPU power. 

Checkout the Gogs Project at for more information.


  • Full SSH root access or a user with sudo privileges is required.
  • Gogs supports the following databases.
    • SQLite3
    • PostgreSQL
    • MySQL
    • MariaDB

First, check for any pending system upgrade

Let’s update software packages first. To perform updates, run the following command:

apt update
apt upgrade

Install MariaDB Database Server

Use the below command to install MariaDB.

apt install mariadb-server mariadb-client

Check the status of MariaDB service.

root@crown~# systemctl status mariadb
● mariadb.service - MariaDB 10.6.9 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enab>
     Active: active (running) since Sat 2022-11-19 17:44:57 UTC; 8s ago
       Docs: man:mariadbd(8)
    Process: 1808 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var>
    Process: 1811 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_ST>
    Process: 1818 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && >
    Process: 1876 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_S>
    Process: 1878 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/>
   Main PID: 1862 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 15 (limit: 2227)
     Memory: 61.6M
        CPU: 418ms
     CGroup: /system.slice/mariadb.service
             └─1862 /usr/sbin/mariadbd

Secure the MariaDB Installation with the below command,



Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Login to MariaDB as root user,

mariadb -u root -p

Enable global variables as shown below,

SET GLOBAL innodb_file_per_table = ON;

Create a database called gogs which will be used for this project,


Create a user and grant all the privileges of the gogs database,

GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' IDENTIFIED BY "StrongPassword";

Replace “StrongPassword” with an actual password that is long and strong.


Download and Install Gogs from GitHub

Use curl to download the Gogs file from their official github repository.

curl -s | grep browser_download_url | grep '\linux_amd64.tar.gz' | cut -d '"' -f 4 | wget -i -

Un-tar the downloaded Gogs file.

tar xvf gogs_*_linux_amd64.tar.gz

Create a new user called git,

adduser git

Create a dedicated logs directory for it’s user,

mkdir /var/log/gogs

Permit created directory access to the added user,

chown -R git:git /var/log/gogs/

Add the gogs systemd service file to the system directory at /etc/systemd/system/,

cp gogs/scripts/systemd/gogs.service /etc/systemd/system

Create a configuration file for Gogs,

nano /etc/systemd/system/gogs.service

If you want to make use of a different port to host Gogs, refer below.

You can use any other port you want to, this is to keep the site a bit safer.

Edit the ExecStart=/home/git/gogs web port, you can set a custom port such as 3001

ExecStart=/home/git/gogs/gogs web -port 3001

Move the Gogs binary file to /home/git,

mv gogs /home/git/

Change the permission of the site directory.

chown -R git:git /home/git/

To start the Gogs service.

systemctl daemon-reload
systemctl start gogs

Enable Gogs service to run on boot and check the Status,

systemctl enable gogs
systemctl status gogs


root@crown:~# systemctl status gogs
● gogs.service - Gogs
     Loaded: loaded (/etc/systemd/system/gogs.service; enabled; preset: enabled)
     Active: active (running) since Sat 2022-11-19 17:51:21 UTC; 10s ago
   Main PID: 3281 (gogs)
      Tasks: 6 (limit: 2227)
     Memory: 34.5M
        CPU: 271ms
     CGroup: /system.slice/gogs.service
             └─3281 /home/git/gogs/gogs web -port 3001

Configure Gogs

Navigate to your browser and load the server’s IP address or the domain name with 3001 port.

http://server-ip-address:3001 and you will see the Gogs installation screen.

In Database Settings we’ll first enter the Database information that was created earlier.


Next, In Application General Settings

  • Application Name – enter the Project name of your choice.
  • Run User – will be the new user that was added earlier, git.
  • Domain – enter the Domain name that should be associated with the application. If you do not have any domain, use localhost.
  • Application URL – enter the IP address of the server or the Domain name with the port to be used. Do not use localhost in Application URL.
  • Log Path – enter the directory path that was created earlier, /var/log/gogs.

In Optional Settings,

  • Enable or Disable the required settings that goes with your application usage.
  • Create an Admin Account which you will be using as first user with Admin privileges.

Now click on Install Gogs button to start the installation. Once the installation is complete, you will be redirected to login screen.

Login with the Admin user that was just created in the last step.


This concludes the Installation and Gogs on Ubuntu 22.10

bookmark_borderHow To Protect SSH With Fail2Ban on Ubuntu 22.10


In this week’s feature highlight, we look at How To Protect SSH With Fail2Ban on Ubuntu 22.10

Fail2Ban is an intrusion prevention framework written in the Python programming language. It works by reading SSH, ProFTP, Apache logs, etc. And uses iptables profiles to block brute-force attempts.

Installing the Fail2Ban package

Check for system updates and install them.

apt update -y

apt upgrade -y

Command to install the Fail2Ban

apt install fail2ban -y

To enable fail2ban, run the following command.

systemctl enable fail2ban

To check the status of the service, run the following command.

systemctl status fail2ban


root@crown:~# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor pres>
     Active: active (running) since Thu 2022-10-19 13:37:13 UTC; 14s ago
       Docs: man:fail2ban(1)
   Main PID: 2557 (fail2ban-server)
      Tasks: 5 (limit: 1034)
     Memory: 13.2M
        CPU: 442ms
     CGroup: /system.slice/fail2ban.service
             └─2557 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Configuring Fail2Ban

Jail.conf contains a section in which Configuration settings can be done for the fail2ban, we are not going to edit this file because package upgrades can overwrite this file.

Jail.local contains the same sections where “jail.conf” file contains and it can override these values.

Command to create a jail.local configuration file by copying the default jail.conf file.

cp /etc/fail2ban/jail.{conf,local}

Open the file to configure.

nano /etc/fail2ban/jail.local

Whitelisting IP addresses

Find the following line in the config file /etc/fail2ban/jail.local and uncomment it to whitelist the IP address.

#ignoreip = ::1 

Once you uncomment it, add your IP address at the last of the command For ex.

ignoreip =

Multiple IP addresses can be whitelisted with the above configuration, they have to be separated with a single white space. You can also white list an IP block as shown above.

Ban settings

3 main options in these settings,

  • bantime: is the number of sec/hours/day that an IP address is banned.
  • findtime: is the window that fail2ban will pay attention to when looking for repeated failed authentication attempts.
  • maxretry: is the maximum try which will be given before blocking.

Find these lines in the config file /etc/fail2ban/jail.local and change them as you required.

Default values of the option are,

bantime  = 10m

findtime  = 10m

maxretry = 5

Note: If you want to block an IP address permanently use a negative value in the bantime option.

Get e-mail notifications

Note: To receive email alerts, you need to have an SMTP installed on your server.

To receive email alerts with relevant logs, find the following line in the config file /etc/fail2ban/jail.local and make sure that the following line is present.

# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
action_mwl = %(action_)s
             %(mta)s-whois-lines[sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]

To configure sending and receiving email addresses.

Find the following line in the config file /etc/fail2ban/jail.local and update the details.


destemail =

sender =

Fail2ban Client

To interact with the Fail2ban service there is a command-line tool called fail2ban-client.

To check its available options enter the following command.

fail2ban-client -h

Here is a few examples that can be performed by using this tool,

Check the jail status.

fail2ban-client status sshd

To unban an IP.

fail2ban-client set sshd unbanip "IP address here"

To Ban an IP.

fail2ban-client set sshd banip "IP address here"

bookmark_borderHow to Enable BBR on Ubuntu 22.10


In this week’s feature highlight, we look at How to Install BBR on Ubuntu 22.10

BBR stands for Bottleneck Bandwidth and RTT is a congestion control system. You can enable TCP BBR on your Linux desktop to improve the overall web surfing experience. By default, Linux uses the Reno and CUBIC congestion control algorithm.

Run the following command to check available congestion control algorithms,

sysctl net.ipv4.tcp_available_congestion_control


root@crown:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr

Run the below command to check the current congestion control algorithm used in your system,

sysctl net.ipv4.tcp_congestion_control


root@crown:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

Enabling TCP BBR in Ubuntu

Open the following configuration file /etc/sysctl.conf to enable TCP BBR.

 nano /etc/sysctl.conf

At the end of the config file, add the following lines.


Save the file, and refresh your configuration by using this command,

sysctl -p


root@crown:~# sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

Now, Verify if BBR is enabled in your system,

sysctl net.ipv4.tcp_congestion_control


root@crown:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

bookmark_border5 Free to use Control Panel Software to Manage your Website on a VPS

Has your website grown a large following recently, perhaps receiving a lot more web traffic and visitors than before? Well, congratulations! 

Now comes the important step of ensuring your website keeps growing and remains accessible to your new visitors, often websites hosted on shared hosting services have limits set on them by their web host, while some web hosts might be generous with their limits, most tend to restrict memory usage, IOps (Input output operations per second) and other variables like Entry processes which ultimately limit the number of people who can access your website at a given time.

Using a control panel like cPanel or DirectAdmin gives a sense of comfort and easy accessibility to various features like creating/managing databases, accessing webmail and other features like adding users, new domains and email accounts.

Moving to a VPS from Shared Hosting is the step often taken by most growing website owners to ensure that your website has more resources available for it, but this often brings along a few doubts about managing your website via the command line, while setting up a LAMP stack or LEMP stack isn’t difficult, but combined with managing things like a mail server and databases for multiple users or websites, it gets rather complex quickly.

Let’s take a look at 5 free to use control panels that make managing your website on a VPS just like it was on your shared hosting service,

HestiaCP (

HestiaCP is a fork of the popular control panel VestaCP which includes many enhancements and updates to it with a similar user interface,

Control Web Panel (also known as CentOS Web Panel) (

Originally called CentOS Web Panel, now renamed to Control Web Panel is another popular control panel used by many to manage their servers.

WebMin (

A control panel that is both popular and has been around for a long time, WebMin is a time-tested solution that still works great in 2022.

VestaCP (

VestaCP is the popular and free-to-use control panel, with a nice UI and packed with features that make it super simple to manage your websites hosted on the VPS.

myVesta (

myVesta is a fork of vestaCP with similar UI and features, but it is designed with a few additional features to improve performance and give end users more control such as limiting the maximum number of sent emails (per hour) per mail account and per hosting account.

bookmark_borderInstalling GCC on Ubuntu 22.10


In this week’s feature highlight, we look at How to Install GCC on Ubuntu 22.10

The default Ubuntu repositories contain a meta-package named “build-essential” that includes the GNU compiler collection, GNU debugger, and other development libraries and tools required for compiling software.

Update System

 apt update

Install the GCC package dependencies.

 apt install build-essential

To check GCC version

 gcc --version


root@crown:~# gcc --version
gcc (Ubuntu 12.2.0-3ubuntu1) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO

That’s it. GCC tools and libraries have been installed on your Ubuntu system.

Compiling a Hello World Example

Compiling a basic C or C++ program using GCC is pretty easy. For example let’s create a hello world C program. Save the following code as hello.c text file:

 nano hello.c
// hello.c
#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;

Save the file and compile it into an executable:

$ gcc -o hello hello.c 
$ ./hello 
 Hello, world!


bookmark_borderInstalling Planka with Docker on AlmaLinux 9


In this week’s feature highlight, we look at How to Install Planka with Docker on AlmaLinux 9

Planka is a self-hosted Trello-like kanban board built with React and Redux.

In this article, we are going to learn how to install Planka on AlmaLinux 9. So, let’s get started.

Checkout the Plaka Project Here.

Try this wiki on our VPS. Starting at just $5/month with 24×7 In-house customer support.


  • A system with AlmaLinux 9 installed and running.
  • root access to the system.
  • Docker installed and running, for this, you can refer to one of our guides on installing Docker on AlmaLinux 9.
  • Docker-Compose installed and running, for this, you can refer to one of our guides on installing Docker-Compose on AlmaLinux 9.

Once you’re all set, we’ll proceed with Planka installation and configuration.

Install Planka with Docker

The following instructions use Docker-Compose and Docker service to install Planka using the Planka Docker Image. First, download the docker-compose configuration,

curl -L -o docker-compose.yml

Next, edit the docker-compose.yml file, and change the following variables

  • BASE_URL — Change localhost in the BASE_URL variable to the actual IP address of your server
  • SECRET_KEY — Change this to a random string/password other than notsecretkey
  • user-avatars — Set this to a path within your server, where the user-avatars would be stored
  • project-background-images — Set this to a path within your server, where the project-background-images would be stored
  • attachments — Set this to a path within your server, where the attachments would be stored
  • db-data — Set this to a path within your server, where the db-data would be stored

For example,

version: '3'

    command: >
      bash -c
        "for i in `seq 1 30`; do
          ./ &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 seconds...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
      - user-avatars:/app/public/user-avatars
      - project-background-images:/app/public/project-background-images
      - attachments:/app/private/attachments
      - 3000:1337
      - BASE_URL=http://localhost:3000 <<< CHANGE THIS
      - TRUST_PROXY=0
      - DATABASE_URL=postgresql://postgres@postgres/planka
      - SECRET_KEY=notsecretkey <<< CHANGE THIS
      - postgres

    image: postgres:14-alpine
    restart: unless-stopped
      - db-data:/var/lib/postgresql/data
      - POSTGRES_DB=planka

  user-avatars:  <<< CHANGE THIS
  project-background-images:  <<< CHANGE THIS
  attachments:  <<< CHANGE THIS
  db-data:  <<< CHANGE THIS

Next, run the docker-compose command to start the container,

docker-compose up -d

Wherein you’ll see the following output,

[+] Running 23/23d                                                        32.6s
 ⠿ postgres Pulled                                                        32.6s
   ⠿ ca7dd9ec2225 Pull complete                                           10.2s
   ⠿ 126ca7716c09 Pull complete                                           11.8s
   ⠿ 72a45366ffb3 Pull complete                                           13.0s
   ⠿ a83abc0b204f Pull complete                                           25.1s
   ⠿ 75b7878d77a7 Pull complete                                           25.8s
   ⠿ 885367a2605d Pull complete                                           26.5s
   ⠿ e21e95eec5ea Pull complete                                           27.1s
   ⠿ 8314321a0c7c Pull complete                                           27.8s
 ⠿ planka Pulled                                                          48.6s
   ⠿ df9b9388f04a Pull complete                                            5.2s
   ⠿ 70c90f7de7cb Pull complete                                           19.8s
   ⠿ f83937c3ce37 Pull complete                                           21.1s
   ⠿ 98b78bba1d70 Pull complete                                           21.7s
   ⠿ f691180aac9c Pull complete                                           36.9s
   ⠿ 22ea37fc2716 Pull complete                                           37.1s
   ⠿ d6a11a777488 Pull complete                                           37.3s
   ⠿ 9805222c040e Pull complete                                           45.9s
   ⠿ 96e449f43226 Pull complete                                           46.1s
   ⠿ 2b61d5091b2c Pull complete                                           46.4s
   ⠿ 459ac8f0ea37 Pull complete                                           46.6s
   ⠿ f74ffe3c6698 Pull complete                                           47.3s
   ⠿ 6e09b209a763 Pull complete                                           47.4s
[+] Running 7/7
 ⠿ Network root_default                     Crea...                        0.6s
 ⠿ Volume "root_user-avatars"               Created                        0.0s
 ⠿ Volume "root_project-background-images"  Created                        0.0s
 ⠿ Volume "root_attachments"                Created                        0.0s
 ⠿ Volume "root_db-data"                    Cre...                         0.0s
 ⠿ Container root-postgres-1                Started                        1.5s
 ⠿ Container root-planka-1                  S...                           3.0s

The installation process will start now. It may take 5-10 mins to complete.

To verify if the Planka container is running, you can check the output of docker ps,

[root@vps ~]# docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS          PORTS                                       NAMES
e22e9f27a1e4   "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes>1337/tcp, :::3000->1337/tcp   root-planka-1
7b15642535d3   postgres:14-alpine                 "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   5432/tcp                                    root-postgres-1
[root@vps ~]#

Accessing Planka

Now open the IP address or Domain name from your browser, this will redirect you to the Appwrite.


Replace the server.ip.address with the actual IP or domain configured on the server.

The default logins are defined as,

Username: demo@demo.demo Password: demo

Follow the below steps:

Once logged in, you can change the username, password, email ID and other information of the user from under the Settings menu,


Now you have successfully installed Planka with Docker on AlmaLinux 9.

bookmark_borderInstalling WordPress with LEMP Stack on Ubuntu 22.10


In this week’s feature highlight, we look at How to Install WordPress with LEMP Stack on Ubuntu 22.10

WordPress is one of the most popular website-building tools available out there. It is a simple way to get your online presence and perfect for those who do not know how to code and want a simple and effective way to share and build your story on the internet.


Creating Database

Log into MySQL with the following command.

mysql -u root -p

First, we’ll create a new database.

CREATE DATABASE wordpress_db;

Next, create a new MySQL user account that we will use to operate on WordPress’s new database, with the username “wordpress_user”.

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

Link the user and DB together by granting our user access to the database.

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@'localhost';

Flush the privileges so that MySQL knows about the user permissions we just added.


Exit out of the MySQL command prompt by typing.



root@crown:~# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 42
Server version: 10.6.9-MariaDB-1 Ubuntu 22.10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'crown@';
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@'localhost';
Query OK, 0 rows affected (0.001 sec)

Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> exit

Download and Install WordPress

Download the latest WordPress,

wget -O /tmp/wordpress.tar.gz

Unzip the downloaded WordPress file.

tar -xzvf /tmp/wordpress.tar.gz -C /var/www/html

Change the permission of the site directory.

chown -R www-data.www-data /var/www/html/wordpress

Navigate to your browser.



Start a WordPress installation by clicking on the Run the installation button.


Provide the requested information.


Once WordPress has been installed log in with your new user credentials.


bookmark_borderNL1 Datacenter New Location Update

We are happy to announce that our NL1 datacenter is now located at the BiT datacenter in Ede, The Netherlands.

All existing customers of our NL1 setup are now located in the BiT datacenter, and any new order directed to the NL1 datacenter will be provisioned at this datacenter.

Datacenter Information:

Address: BIT datacenter Galileïlaan 19, 6716 BP Ede, Netherlands

Datacenter FeatureInformation
Fire detectionan independent, certified very early warning system with
automatic notification to fire brigade
Fire extinguishingcertified Argonite (Ar+N2) installation
Cooling installationN+1 computairs
N+1 cooling machines
Cooling power output1500 W/m²
Temperature25 ℃ (+/- 2 ℃) in cold paths
Lightning protection     certified according to NEN norms
Electrical installationtwo incoming feeds into rack
separate UPS for every feed
Emergency power supplyN+1 diesel aggregates
Diesel supply    48 hours
Power per rackup to 96 A
Information securityISO/IEC 27001 and NEN 7510 certified
Physical security             VEC certified safety class 4*
Alarmredundant connection to control centre
Surveillancetwo independent surveillance services
Camerasinside and outside the data centers
Access controltwo factor authentication
biometric iris scanners
RFID access passes

At the same time, one can find upto date and accurate information at the datacenters own website as well,

We hope this migration will ensure better stability and availability of services for our customers located at our NL1 datacenter.

For any further information or concerns, please feel free to contact us via the client area.


-Team CrownCloud