bookmark_borderEnabling BBR on Ubuntu 23.04

Hello,

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

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.

Enabling BBR in Linux can help improve network performance by optimizing bandwidth utilization, reducing latency, and mitigating packet loss. We’ll show you how this is enabled:

Run the following command to check available congestion control algorithms,

sysctl net.ipv4.tcp_available_congestion_control

Output:

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

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

sysctl net.ipv4.tcp_congestion_control

Output:

root@ubuntu:~# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic

Enabling TCP BBR in Ubuntu

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

nano /etc/sysctl.conf

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

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

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

sysctl -p

Output:

root@ubuntu:~# 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

Output:

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

bookmark_borderInstalling WordPress with LEMP Stack on Ubuntu 23.04

Hello,

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

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.

Prerequisites:

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';

Note: Replace “password” with a safe and secure password when creating the wordpress_user

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.

FLUSH PRIVILEGES;

Exit out of the MySQL command prompt by typing.

exit

Output:

root@crown:~# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 81
Server version: 10.6.7-MariaDB-2ubuntu1 Ubuntu 23.04

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.003 sec)

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

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

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> exit
Bye

Download and Install WordPress

Download the latest WordPress,

wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.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

Create a Server Block or vHost

We will create a server block (also called vHost) for the WordPress site and have it’s own configuration.

Create a new configuration file using your favourite editor,

vi /etc/nginx/sites-available/wp.domainhere.info

Replace wp.domainhere.info with actual domain name.

And insert the following content into the file.

server {
  listen 80;
  listen [::]:80;
  #server_name _;
  server_name wp.domainhere.info
  root /var/www/html/wordpress/;
  index index.php index.html index.htm index.nginx-debian.html;

  error_log /var/log/nginx/wp.domainhere.info_error.log;
  access_log /var/log/nginx/wp.domainhere.info_access.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Save and exit the file.

Next create a symbolic link of the configuration in the sites-enabled directory with the following command:

ln -s /etc/nginx/sites-available/wp.domainhere.info /etc/nginx/sites-enabled/

Remove default Nginx server blocks to prevent Nginx automatic requests routing.

rm /etc/nginx/sites-available/default

Set up SSL Certificate

Run the command to install certbot specific to Nginx

snap install --classic certbot

Run this command to get a certificate and have Certbot edit your Nginx configuration automatically to serve it, turning on HTTPS access in a single step.

certbot --nginx -d wp.domainhere.info -d wp.domainhere.info

You will have to accept the terms of service.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wp.domainhere.info/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wp.domainhere.info/privkey.pem
   Your cert will expire on 2020-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

You will receive this acknowledgement that the SSL certificate for wp.domainhere.info and www.wp.domainhere.info are successfull.

You can now verify your website using https:// that the connection is secure with the lock icon in the usrl bar.

To check that you have top-of-the-line installation, navigate to https://www.ssllabs.com/ssltest/.

Confirm that the configuration is all OK and there are no errors.

nginx -t

you would see an output like below:

root@vps:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Now that the configuration has no errors, restart the web server:

systemctl restart nginx

Navigate to your browser.

http://wp.domainhere.info OR http://IP_ADDRESS/wordpress

Note: Replace wp.domainhere.info or IP_ADDRESS with the actual domain name or IP address of your website/server.

images

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

images

Provide the requested information.

images

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

images
images
images

Done!

bookmark_borderAMD Ryzen 9 7950X powered VPSes now available in Frankfurt, Germany

Greetings,

We are thrilled to announce that our latest offering, the SSD KVM product line powered by AMD Ryzen 9 7950X server, is now available! Designed to revolutionize your computing experience, this cutting-edge server boasts incredible performance, advanced features, and exceptional reliability.

We understand the importance of a reliable and high-performance server infrastructure to support your business operations. The AMD Ryzen 9 7950X server has been meticulously designed to exceed your expectations and deliver unmatched performance, stability, and flexibility.

The AMD Ryzen 9 7950X server is equipped with the latest Zen 4 architecture and 16 cores/32 threads, providing an unprecedented level of processing power. With a boost clock of up to 5.7 GHz, this server ensures lightning-fast speeds and efficient multitasking capabilities.

Here are the benchmarks results of the AMD Ryzen 9 7950X processer and other previous versions,

AMD Ryzen 9 7950XAMD Ryzen 9 3950XAMD Ryzen 9 5950X
Turbo SpeedUp to 5.7 GHzUp to 4.7 GHzUp to 4.9 GHz
CacheL1: 1,024KB
L2: 16.0MB
L3: 64MB
L1: 1,024KB
L2: 8.0MB
L3: 64MB
L1: 1,024KB
L2: 8.0MB
L3: 64MB
Socket TypeAM5AM4AM4
CPU Mark
(% diff. to max in the group)
63638
(0.0%)
38982
(-38.7%)
45916
(-27.8%)
Single Thread Rating
(% diff. to max in the group)
4327
(0.0%)
2710
(-37.4%)
3470
(-19.8%)
Max TDP170W105W105W
# of Physical Cores16 (Threads: 32)16 (Threads: 32)16 (Threads: 32)
Clockspeed4.5 GHz3.5 GHz3.4 GHz

To start off with, our new AMD Ryzen 9 7950X series powered plans start with an introductory price of $10/month in Frankfurt, Germany

To learn more about the plans and pricing of the AMD Ryzen 9 7950X server visit our website at – Click here

Or please feel free to contact our dedicated sales team by opening a support ticket Click here. Our experts will be delighted to guide you through the available options and assist you in making an informed decision that aligns with your business requirements.

Embrace the power of performance with the AMD Ryzen 9 7950X server! Stay ahead of the competition and unlock new possibilities for your organization. Don’t miss out on this incredible opportunity to elevate your computing infrastructure to the next level.

Thank you for your continued trust in our services. We look forward to serving you with the latest technologies and providing exceptional support to fuel your success.

Stay tuned for further updates!

bookmark_borderInstalling Docker On Ubuntu 23.04

Hello,
In this week’s feature highlight, we look at How to Install Docker On Ubuntu 23.04

What is docker?

Docker is basically a container engine which uses the Linux Kernel in order to create the containers on top of an operating system. Which is used to create, deploy and run the applications.

Install Docker

Install the docker using the apt package manager.

apt install docker.io

Start and enable docker

systemctl enable --now docker

Check Docker service status

systemctl status docker

Output:

root@ubuntu:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabl>
     Active: active (running) since Fri 2023-04-21 20:31:43 UTC; 23s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3809 (dockerd)
      Tasks: 9
     Memory: 22.8M
        CPU: 1.359s
     CGroup: /system.slice/docker.service
             └─3809 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>

Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.322853594Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.323411858Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.323809254Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.392873225Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.741850321Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.960585254Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.996881239Z" lev>
Apr 21 20:31:42 ubuntu dockerd[3809]: time="2023-04-21T20:31:42.997602672Z" lev>
Apr 21 20:31:43 ubuntu systemd[1]: Started docker.service - Docker Application >
Apr 21 20:31:43 ubuntu dockerd[3809]: time="2023-04-21T20:31:43.091542255Z" lev>

Create a group called docker,

groupadd docker

To add an user into the docker user group

usermod -aG docker $USER

If you want to add a different user, replace $USER with existing username.

Check docker version,

docker --version

Ouput:

root@ubuntu:~# docker --version
Docker version 20.10.21, build 20.10.21-0ubuntu3

Test docker using the hello-world container.

docker run hello-world

Output:

root@ubuntu:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:4e83453afed1b4fa1a3500525091dbfca6ce1e66903fd4c01ff015dbcb1ba33e
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/