Download Apache Tomcat Linux 9.0.14

Apache Tomcat is an open source piece of software written in the Java programming language and designed to provide users with a native Java environment for running web apps. It is widely known for powering large-scale and mission-critical web applications across a wide range of organizations and industries.

Features at a glance

It is an open source implementation of the Java Servlet and JavaServer Pages technologies, which are developed under the Java Community Process. When developing web apps, you will need to add dynamic content to an existing Apache web server, which is provided by Tomcat.

Tomcat is also widely used for running Java code and applets on an Apache web server, especially be web developers who want to build dynamic websites and applications using the aforementioned Java technologies.

The software comprises of a JSP (JavaServer Pages) engine, a HTTP connector, as well as the Catalina servlet container. While the JSP engine is in charge of the dynamic content of a web app, the servlet container has been engineered to interact with the Java apps.

Under the hood, supported OSes and availability

As mentioned the project is written entirely in the Java programming language, which means that it will run well on GNU/Linux, BSD, Solaris, Microsoft Windows and Mac OS X operating systems. It is available for download as binary and source archives for the aforementioned OSes. Supported architectures include both 32-bit and 64-bit.

Bottom line

Summing up, Apache Tomcat is a reliable solution for anyone who wants to develop rich web applications using open source technologies. It is an important part of the Apache project, which develops the world’s most popular and used web server software.

Java servlet JSP container Apache server Java Servlet Apache Tomcat

Source

4 Ways to View the Partition Table in Linux

View Linux Partition Table

As Linux administrators, we need to view the partition table of our hard disk time and again. This helps us in re-organizing old drives by making space for further partitioning and also create space for new drives if necessary. You can create no more than four primary partitions on a hard disk but a number of logical or extended partitions, depending on the size of the hard disk you have installed on your system.

The partition table, that contains the information about all your logical disks or partitions, resides in the 0 sector of your hard disk. Your device is listed in the partitions table as /dev/sda, /dev/sdb and so on. The sd* device refers to SCSI or SATA disks on your system. For example, /dev/sda will be the first SATA/SCSI hard disk, /dev/sdb will be the second SATA/SCSI hard disk.

This article lists and explains the use of various Linux commands for you to view the partition table of your device. We will be using the CLI to run these commands. You can open the Ubuntu command line, the Terminal, either through the system Dash or the Ctrl+Alt+T shortcut.

We have run the commands and procedures mentioned in this article on an Ubuntu 18.04 LTS system.

View partition table through the lsblk command

The lsblk command lists all the block devices of your system along with their logical partitions. Enter the following command in your Terminal to list the partition table:

$ lsblk

View partitions with lsblk command

In the above output, you can see all the logical partitions from sda1 till sda5 for my sda device. Here is what the seven columns indicate:

Name-Name of the devices

Maj:Min-Major and Min Device numbers

RM-Whether the device is removable(1) or not (0)

Size-Size of the device

RO-Is the device read-only(1) or not (0)

Type-Type of device, i.e, if it is a disk or partitions, etc.

MountPoint-The mount point of the device(if applicable).

Get list of partitions with the fdisk command

The fdisk command that stands for Format-disk or Fixed-disk is basically used to create or delete hard disk partitions. It is also used to format the disk, however, here we will use it to list the partitions table by using a particular flag with it.

The -l flag is used with the fdisk to list the partitions table of the specified device and then exit. When you do not mention any device name, fdisk uses the devices mentioned in the /proc/partitions file.

The -l option shows the partition tables for the specified devices and then exit. If no devices are given, those mentioned in /proc/partitions (if that exists) are used. Enter the following command as sudo:

$ sudo fdisk -l

Use fdisk to list partitions

When you scroll down further, the output displays the partition table as follows:

Linux partitions of the system

This is what the various column indicate:

Device-Name of the device/logical partition

Boot-The * sign in this column indicated that the respective partition contains the bootloader information that is used to boot your system

Start-The starting sector allotted to this partition.

End-The ending sector allotted to this partition.

Sectors-The number of sectors allocated for this partitions.

Size-The size of the partition.

ID-An ID used by the system for this partitions

Type-The file type or system used by this partition.

Using sfdisk command to view partitions

Though the sfdisk command is primarily used to manipulate partition tables on Linux, it can also be used to list the partitions tables of a device by using the following syntax:

$ sudo sfdisk -l/dev/devicename

For example:

$ sudo sfdisk -l /dev/sda

Partitions shown by sfdisk command

As you can see, this command gives the same information of the partition table as the fdisk command. You can only view the results of the fdisk and sfdisk command as an authorized sudo user.

Using the parted command to get harddisk partitions

Another way to list the partition table for a device is through the parted command. The parted command has an edge on the previously mentioned fdisk and sfdisk commands as the former ones do not list partitions whose size is greater than 2 TB.

Use the following syntax in order to view the partitions table for a device:

$ sudo parted /dev/devicename

Example:

$ sudo parted /dev/sda

The command will get into the “(parted)” prompt mode. Here you can enter the following values that will help you in viewing the partition table for a device.

Unit GB: Through this input, you can choose the output to be displayed in GBs.

Unit TB: Through this input, you can choose the output to be displayed in TBs.

Enter your choice after which the system will display the corresponding partition table.

Using parted command

To quit the parted command mode, simply type quit and then hit Enter.

Alternatively, you can use the following command to list all the partition layouts on all the block devices of your system:

$ sudo parted -l

Result of using parted -l command

Since sda is my only block device, the command displays the partition for that only.

Note: The lsscsi command that is basically used to list the SCSI devices and their attributes also lists the partition tables on some systems. You can install it through this command: $ sudo apt-get install lsscsi

Through the various Linux commands we explained in this article, you are now able to view the partition table of your hard disk devices. Some of the commands have many other basic functions but since they also list the partition table, we have included them in our article. You will now be able to manage space and partitions of your storage devices even better.

Source

Best Free Linux Application Launchers

Application Launchers

We’ve recently expressed our opinion on the Linux desktop scene with Best Linux Desktop Environments: Strong and Stable, and our follow-up article Linux Desktop Environments: Pantheon, Trinity, LXDE. These desktop environments provide good application launchers. But there’s still a place for a different approach, using a standalone application launcher.

Application launchers play an integral part in making the Linux desktop a more productive environment to work and play. They represent small utilities which offers the desktop user a convenient access point for application software and can make a real boost to users’ efficiency.

An application launcher helps to reduce start up times for applications by indexing shortcuts in the menu. Furthermore, this type of software allows users to search for documents and other files quicker by indexing different file formats. This makes them useful for launching almost anything on a computer including multimedia files, games, and the internet. Application launchers often support plug-ins, adding to their versatility.

To provide an insight into the quality of software that is available, we have compiled a list of high quality Linux application launchers. Hopefully, there will be something of interest for anyone who wants to see productivity improvements in their workflow.

Here’s our recommendations:

Application Launchers

Now, let’s explore the application launchers at hand. For each title we have compiled its own portal page, providing a screenshot of the software in action, a full description with an in-depth analysis of its features, together with links to relevant resources.

Application Launchers
Ulauncher Fast application launcher written in Python
Kupfer Fast and lightweight desktop summoner/launcher
Synapse Semantic graphical launcher written in Vala
bashrun2 Launch applications from interactive bash sessions
Gnome-Pie Circular application launcher made of several pies
dmenu Fast and lightweight dynamic menu
Albert Desktop agnostic launcher, inspired by OSX’ Alfred launcher
pmenu Dynamic terminal-based menu inspired by dmenu
rofi Window switcher, application launcher and dmenu replacement
Launchy Utility designed to help users forget about the application menu
Avant Window Navigator OS X like panel for the GNOME Desktop

dmenu and pmenu are similar in function to application launchers in that they allow quick launching of programs from a graphical environment using the keyboard.

Return to our complete collection of Group Tests, identifying the finest free and open source Linux software.

There are no upcoming events at this time.

Source

How to install PHP 7.2 on Ubuntu 18.04

Install PHP on Ubuntu 18.04

PHP is one of the most popular programming language currently in the world. PHP has different versions 5.6, 7.0, 7.1 and 7.2. Currently, PHP 7.2 is the latest version of PHP which supports different frameworks like WordPress, Laravel, Code-Igniter etc. Ubuntu 18.04 ships with default PHP 7.2 support, We can easily install PHP 7.2 on Ubuntu 18.4. Ubuntu 18.04 is the current latest version of Ubuntu. This tutorial outlines how to install PHP 7.2 on Ubuntu 18.04.

Prerequisites

Before you start installing PHP 7.2 on Ubuntu 18.04. You must have a non-root user account on your server with sudo privileges

1. Install PHP With Nginx

Nginx does not support native PHP processing. You will need to Install “fastCGI process manager” which is known as php-fpm

Run the following command to install php-fpm on your server. The following command will install php-fpm7.2

sudo apt install php-fpm

You can check the status where it is correctly installed or not by following command

systemctl status php7.2-fpm

After installing php-fpm package you will need to restart Nginx server. To restart Nginx server run following command

sudo systemctl restart nginx

You can check PHP version by running following command

php -v

2. Installing PHP With Apache

If you have Apache running at backend then we need to install PHP and Apache PHP module on the server. To install PHP 7.2 and Apache module type following command and press enter.

sudo apt install php libapache2-mod-php

After installing PHP and apache-php module you will need to restart Apache server by typing following command

sudo systemctl restart apache2

3. Install PHP Extensions

You will need to install some basic PHP extensions to run WordPress , Laravel like frameworks on the server. To install any of the PHP extensions on the server following is the basic format.

sudo apt install php-[name_of_the_extension]

You can install curl extension for PHP by running following command

sudo apt install php-curl

Following are some basic PHP extensions needs to be installed on your server

sudo apt install php7.2-curl php7.2-mysql php7.2-common php7.2-cli php7.2-gd php7.2-opcache

To install more extensions you can use the above format.

4. Testing PHP processing

To test whether PHP is configured on your server properly or not you should create a file test.php inside directory var/www/html/ with following code.

<?php

phpinfo();

If you see the following output then you have installed PHP successfully.

Conclusion

In this tutorial, you have learned how to install PHP 7.2 on Ubuntu 18.04 successfully with some of its basic extensions useful for frameworks and tested successfully. If you have any of the queries regarding this then you can comment below.

Related Tutorials

  1. How to install Nginx on Ubuntu 18.04
  2. How to Secure Nginx with Let’s Encrypt SSL on Ubuntu 18.04

Source

FOSS Project Spotlight: Appaserver | Linux Journal

An introduction to an application server that allows you to build MySQL user interfaces
without
programming.

Assume you are tasked to write a browser-based, MySQL user interface for the table called CITY.
CITY has two columns. The column names are city_name and state_code—each combined are the
primary key.

Your user interface must enable users to execute the four main SQL operations: select, insert,
update and delete. The main characteristics for each operation are:

  • The select operation needs an HTML prompt form to request a query. It also needs a where
    clause generator to select from CITY. After forking MySQL and retrieving the raw rows, it needs to
    translate them into an HTML table form.
  • The HTML table form needs to be editable, and user edits need to be translated into update
    statements.
  • Each resulting row following the execution of a query is a candidate for deletion.
  • The insert operation needs a blank form. It also needs to translate Apache’s common gateway
    interface (CGI) into insert statements.

So, you might create the source file called city.c and type in all the required code. Of course,
relational databases have relations. One city has many persons residing in it. Assume the PERSON
table has the column names of full_name, street_address,
city_name and state_code. full_name and
street_address combined are the primary key (Figure 1).

""


Figure 1. Database Schema of Many Persons Residing in One City

Are you going to create the source file called person.c too? What about customer.c, inventory.c,
order.c, …?

Alternatively, you might create the source files called select.c, insert.c, update.c and
delete.c. Then each of these modules would need as input:

  • A single table name.
  • The table’s additional attributes.
  • The table’s column names and additional attributes.
  • A recursive list of related tables.
  • Apache’s CGI dictionary output.

The principle behind Appaserver is this multi-module approach. Appaserver stores table names in a
table. Each table’s column names and relations are also stored in tables. Taking the table-driven
concept to the nth degree forms a database of a database. You can glean a detailed understanding
of how the Appaserver database is modeled from https://appahost.com/appaserver_database_schema.pdf.

Create Appaserver Applications

To create Appaserver applications, you first need Appaserver. Because Appaserver communicates with
both Apache and MySQL, installation has multiple steps. The installation steps are available at
https://github.com/timhriley/appaserver/blob/master/INSTALL. You will install a database called “template”
from which all your applications are spawned. Alternatively, you can create an Appaserver
application securely at Cloudacus.

Appaserver Roles

After you create your first application from the template database, you are ready to build it.
After you log in, you are presented with three preinstalled roles (Figure 2).

""

Figure 2. Appaserver Supports Multiple Roles

Appaserver’s security centers around roles. You grant permissions to roles, and you assign users
to roles. The “System” role is used to build your database. Users interact with the database in
all the other roles.

The highest user role is “Supervisor”. The “Supervisor” role has permission to select, insert,
update and delete every column in every row in every application table. Two important
considerations are:

  1. The “Supervisor” role cannot access any of the system tables, only application tables. (Well,
    except the APPLICATION_CONSTANTS table.)
  2. The “Supervisor” role has permission to delete too much.

The lowest subordinate role is “Public”. The “Public” role has select permission only. It is used
in publicly funded research applications. Cloudacus hosts a research application called “Benthic”.
“Public” also may be used in commercial applications to display
inventories.

The next lowest subordinate role is “Dataentry”. The “Dataentry” role receives insert and lookup
permissions but not update nor delete. If someone in the “Dataentry” role comes across a mistake,
a supervisor needs to be interrupted to make the fix.

You may create many subordinate roles above these two. Assign yourself to all of them. Then you can easily test the security.

Build Your Database

Users will interact with your database using Appaserver. Likewise, you will build your database
using Appaserver. You will first use Appaserver’s insert operations. If you make a mistake,
you will use Appaserver’s update and delete operations. After your user interface vision is
complete, execute the “Create Application” process. You then can change to a user role and start
producing.

How Appaserver Works

Take a look at Figure 3. The cycle begins by first choosing a table to insert into or lookup from.
Appaserver generates and sends a “select” SQL statement to MySQL, requesting the column names of
your table. MySQL returns data containing the table’s column names and other metadata to
Appaserver.

Appaserver then generates HTML tags and sends them to your browser. The HTML tags will be blank
widgets if you are inserting and query widgets if you are selecting.

Your browser displays a dialog-box (form) that contains a CGI “Submit”
button. After you submit your form, the browser sends its contents to Appaserver. Appaserver
generates and sends the next appropriate SQL statement to MySQL. The cycle then repeats.

""


Figure 3. Appaserver Data Flow Diagram

Conclusion

The Hello World Tutorial will step you through the entire database build.

Appaserver is a MySQL user interface. The interface is consistent throughout your
application—both at the system level and the user level. Once you discover Appaserver’s look and feel, new
tables and columns can become new features simply by filling out a few forms.

Source

4 Unique Terminal Emulators for Linux | Linux.com

Let’s face it, if you’re a Linux administrator, you’re going to work with the command line. To do that, you’ll be using a terminal emulator. Most likely, your distribution of choice came pre-installed with a default terminal emulator that gets the job done. But this is Linux, so you have a wealth of choices to pick from, and that ideology holds true for terminal emulators as well. In fact, if you open up your distribution’s GUI package manager (or search from the command line), you’ll find a trove of possible options. Of those, many are pretty straightforward tools; however, some are truly unique.

In this article, I’ll highlight four such terminal emulators, that will not only get the job done, but do so while making the job a bit more interesting or fun. So, let’s take a look at these terminals.

Tilda

Tilda is designed for Gtk and is a member of the cool drop-down family of terminals. That means the terminal is always running in the background, ready to drop down from the top of your monitor (such as Guake and Yakuake). What makes Tilda rise above many of the others is the number of configuration options available for the terminal (Figure 1).

Tilda can be installed from the standard repositories. On a Ubuntu- (or Debian-) based distribution, the installation is as simple as:

sudo apt-get install tilda -y

Once installed, open Tilda from your desktop menu, which will also open the configuration window. Configure the app to suit your taste and then close the configuration window. You can then open and close Tilda by hitting the F1 hotkey. One caveat to using Tilda is that, after the first run, you won’t find any indication as to how to reach the configuration wizard. No worries. If you run the command tilda -C it will open the configuration window, while still retaining the options you’ve previously set.

Available options include:

  • Terminal size and location
  • Font and color configurations
  • Auto Hide
  • Title
  • Custom commands
  • URL Handling
  • Transparency
  • Animation
  • Scrolling
  • And more

What I like about these types of terminals is that they easily get out of the way when you don’t need them and are just a button click away when you do. For those that hop in and out of the terminal, a tool like Tilda is ideal.

Aterm

Aterm holds a special place in my heart, as it was one of the first terminals I used that made me realize how flexible Linux was. This was back when AfterStep was my window manager of choice (which dates me a bit) and I was new to the command line. What Aterm offered was a terminal emulator that was highly customizable, while helping me learn the ins and outs of using the terminal (how to add options and switches to a command). “How?” you ask. Because Aterm never had a GUI for customization. To run Aterm with any special options, it had to run as a command. For example, say you want to open Aterm with transparency enabled, green text, white highlights, and no scroll bar. To do this, issue the command:

aterm -tr -fg green -bg white +xb

The end result (with the top command running for illustration) would look like that shown in Figure 2.

Of course, you must first install Aterm. Fortunately, the application is still found in the standard repositories, so installing on the likes of Ubuntu is as simple as:

sudo apt-get install aterm -y

If you want to always open Aterm with those options, your best bet is to create an alias in your ~/.bashrc file like so:

alias=”aterm -tr -fg green -bg white +sb”

Save that file and, when you issue the command aterm, it will always open with those options. For more about creating aliases, check out this tutorial.

Eterm

Eterm is the second terminal that really showed me how much fun the Linux command line could be. Eterm is the default terminal emulator for the Enlightenment desktop. When I eventually migrated from AfterStep to Enlightenment (back in the early 2000s), I was afraid I’d lose out on all those cool aesthetic options. That turned out to not be the case. In fact, Eterm offered plenty of unique options, while making the task easier with a terminal toolbar. With Eterm, you can easily select from a large number of background images (should you want one – Figure 3) by selecting from the Background > Pixmap menu entry.

There are a number of other options to configure (such as font size, map alerts, toggle scrollbar, brightness, contrast, and gamma of background images, and more). The one thing you want to make sure is, after you’ve configured Eterm to suit your tastes, to click Eterm > Save User Settings (otherwise, all settings will be lost when you close the app).

Eterm can be installed from the standard repositories, with a command such as:

sudo apt-get install eterm

Extraterm

Extraterm should probably win a few awards for coolest feature set of any terminal window project available today. The most unique feature of Extraterm is the ability to wrap commands in color-coded frames (blue for successful commands and red for failed commands – Figure 4).

When you run a command, Extraterm will wrap the command in an isolated frame. If the command succeeds, the frame will be outlined in blue. Should the command fail, the frame will be outlined in red.

Extraterm cannot be installed via the standard repositories. In fact, the only way to run Extraterm on Linux (at the moment) is to download the precompiled binary from the project’s GitHub page, extract the file, change into the newly created directory, and issue the command ./extraterm.

Once the app is running, to enable frames you must first enable bash integration. To do that, open Extraterm and then right-click anywhere in the window to reveal the popup menu. Scroll until you see the entry for Inject Bash shell Integration (Figure 5). Select that entry and you can then begin using the frames option.

If you run a command, and don’t see a frame appear, you probably have to create a new frame for the command (as Extraterm only ships with a few default frames). To do that, click on the Extraterm menu button (three horizontal lines in the top right corner of the window), select Settings, and then click the Frames tab. In this window, scroll down and click the New Rule button. You can then add a command you want to work with the frames option (Figure 6).

If, after this, you still don’t see frames appearing, download the extraterm-commands file from the Download page, extract the file, change into the newly created directory, and issue the command sh setup_extraterm_bash.sh. That should enable frames for Extraterm.
There’s plenty more options available for Extraterm. I’m convinced, once you start playing around with this new take on the terminal window, you won’t want to go back to the standard terminal. Hopefully the developer will make this app available to the standard repositories soon (as it could easily become one of the most popular terminal windows in use).

And Many More

As you probably expected, there are quite a lot of terminals available for Linux. These four represent (at least for me) four unique takes on the task, each of which do a great job of helping you run the commands every Linux admin needs to run. If you aren’t satisfied with one of these, give your package manager a look to see what’s available. You are sure to find something that works perfectly for you.

Source

How To Install and Configure Redmine on Ubuntu 18.04

Redmine is one of the most popular open source project management and issue tracking software tools. It is cross-platform and cross-database and built on top of the Ruby on Rails framework.

Redmine includes support for multiple projects, wikis, issue tracking system, forums, calendars, email notifications, and much more.

This tutorial describes how to install and configure the latest version of Redmine on an Ubuntu 18.04 server using MySQL as a database back-end and Passenger + Nginx as a Ruby application server.

Prerequisites

Make sure that you have met the following prerequisites before continuing with this tutorial:

  • You have a domain name pointing to your server public IP. In this tutorial we will use example.com.
  • You are logged in as a user with sudo privileges.
  • You have Nginx installed by following these instructions.
  • You have a SSL certificate installed for your domain. You can install a free Let’s Encrypt SSL certificate by following these instructions .

Creating MySQL database

Redmine supports MySQL/MariaDB, Microsoft SQL Server, SQLite 3 and PostgreSQL. In this tutorial we’ll use MySQL as a database back-end.

If you already don’t have MySQL installed on your Ubuntu server you can install by following this instructions.

Login to the MySQL shell by typing the following command:

From inside the mysql console, run the following SQL statement to create a new database:

CREATE DATABASE redmine CHARACTER SET utf8mb4;

Next, create a MySQL user account and grant access to the database:

GRANT ALL ON redmine.* TO ‘redmine’@’localhost’ IDENTIFIED BY ‘change-with-strong-password’;

Make sure you change change-with-strong-password with a strong password.

Once done, exit the mysql console by typing:

Installing Ruby

The easiest way to install Ruby on your Ubuntu system is through the apt package manager. At the time of writing, the version in the Ubuntu repositories is 2.5.1 which is the the latest stable version of Ruby.

Install Ruby by typing:

sudo apt install ruby-full

If you want to install Ruby via Rbenv or RVM check this guide.

Installing Passenger and Nginx

Passenger is a fast and lightweight web application server for Ruby, Node.js and Python that can be integrated with Apache and Nginx. We will install Passenger as an Nginx module.

Make sure you followed the prerequisites and installed Nginx before continuing with the following steps.

Start by installing the necessary packages:

sudo apt install dirmngr gnupg apt-transport-https ca-certificates

Import the repository GPG key and enable the Phusionpassenger repository:

sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
sudo add-apt-repository ‘deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main’

Once the repository is enabled, update the packages list and install the Passenger Nginx module with:

sudo apt update
sudo apt install libnginx-mod-http-passenger

Installing Redmine on Ubuntu

We’ll start by installing the dependencies necessary to build Redmine:

sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev

At the time of writing this article, the latest stable version of Redmine is version 3.4.6.

Before continuing with the next step you should check the Redmine download page to see if a newer version is available.

1. Downloading Redmine

Download the Redmine archive with the following curl command:

sudo curl -L http://www.redmine.org/releases/redmine-3.4.6.tar.gz -o /tmp/redmine.tar.gz

Once the download is completed extract the archive and move it to the /opt directory:

sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-3.4.6 /opt/redmine

2. Configuring Redmine Database

Start by copying the Redmine example configuration file:

sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml

Open the file with your text editor:

sudo nano /opt/redmine/config/database.yml

Search for the production section and enter the MySQL database and user information we created previously:

/opt/redmine/config/database.yml

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: “change-with-strong-password”
encoding: utf8

Once done, save the file and exit the editor.

3. Installing Ruby dependencies

Navigate to the redmine directory and install bundler and other Ruby dependencies:

cd /opt/redmine/
sudo gem install bundler –no-rdoc –no-ri
sudo bundle install –without development test postgresql sqlite

4. Generate Keys and Migrate the Database

Run the following command to generate keys and migrate the database:

cd /opt/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate

5. Set the correct Permissions

Nginx runs as www-data user and group. Set the correct permissions by issuing following chown command:

sudo chown -R www-data: /opt/redmine/

Configure Nginx

By now, you should already have Nginx with SSL certificate installed on your system, if not check the prerequisites for this tutorial.

Open your text editor and create the following Nginx server block file:

sudo nano /etc/nginx/sites-available/example.com

/etc/nginx/sites-available/example.com

# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;

include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;

return 301 https://example.com$request_uri;
}

server {
listen 443 ssl http2;
server_name example.com;

root /opt/redmine/public;

# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;

# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;

passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}

Don’t forget to replace example.com with your Redmine domain and set the correct path to the SSL certificate files. The snippets used in this configuration are created in this guide .

Enable the server block by creating a symbolic link to the sites-enabled directory:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Before restarting the Nginx service make a test to be sure that there are no syntax errors:

If there are no errors the output should look like this:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finally, restart the Nginx service by typing:

sudo systemctl restart nginx

Accessing Redmine

Open your browser, type your domain and assuming the installation is successful, a screen similar to the following will appear:

The default login credentials for Redmine are:

  • Username: admin
  • Password: admin

When you login for the first time, you will be prompted to change the password as shown below:

Once you change the password you will be redirected to the user account page.

Conclusion

You have successfully installed Redmine on your Ubuntu system. You should now check the Redmine Documentation and learn more about how to configure and use Redmine.

If you hit a problem or have a feedback, leave a comment below.

Source

Mindustry, an open source sandbox Tower Defense game that’s a little like Factorio

Mindustry is a free and open source Tower Defense game that pulls in elements rather similar to Factorio and it seems like it could be quite good.

Available under the GPL, the developer originally made it for the GDL Metal Monstrosity Jam which happened back in 2017 and it ended up winning! Seems the developer didn’t stop development after this, as they’re currently going through a new major release with regular alpha builds.

You can find the game in various places. It’s on GitHub, itch.io (where the developer takes donations) and more info on the official site.

Much like Factorio, you build various drills and conveyor belts to move resources around and power various devices. It’s quite different though, since the main aim here is to protect your Core building as it’s a Tower Defense title. It’s a little rough in places, but the idea is a good one if not totally original. The newer UI in the latest alpha builds looks a lot nicer too!

Rather liked what I saw from it, so I will be following development along now. I’ve got it nicely installed with the excellent and open source itch.io app along with following it on GitHub so I will keep checking it out.

Hat tip to g000h.

Source

Download Common UNIX Printing System Linux 2.2.10

Common UNIX Printing System (CUPS) is an open source and cross-platform project designed from the ground up to offer a printing layer for UNIX-like operating systems, including GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows.

The Common UNIX Printing System project has been developed by Apple, the company behind the Macintosh systems, in order to promote a standards-compliant printing solution for all UNIX/Linux vendors and users.

Supports both local and network printers

It has been engineered to support both local and network printers, thanks to the IP-based protocol called IPP (Internet Printing Protocol), which will also allow the management of print jobs and supports encryption, authentication and access control.

The software will allow users to add printers and classes, change media size and resolution, as well to manage operation policies. In addition, users can learn how to print directly from the command-line.

Offers a modern, tabbed web-based interface

CUPS offers a modern, tabbed interface that can be accessed with any web browser, as long as it is properly configured. This printing administration interface allows users to find and add new printers, manage existing printers, add and manage printing classes, as well as to add printing jobs.

In addition, it lets users to add RSS subscriptions, edit the configuration file, as well as to view the access, error and page logs. It is also possible to enable or disable sharing of printers connected to the system, printing from the Internet, remote administration, Kerberos authentication, and much more.

It comes with a comprehensive documentation that will help developers the ways of CUPS programming (CUPS API, filter and backend programming, HTTP and IPP APIs, PPD API, Raster API, etc.).

It’s supported on all GNU/Linux operating systems

The program can be easily installed from the default software channels of any GNU/Linux operating system. It is comprised of a daemon that will start automatically after the installation, as well as a web-based interface.

Source

Top Tips for Aspiring Web Developers – NoobsLab

If you have the ambition to become a successful web developer, then, congratulations. Web app development is one of the most rewarding tech roles today with the chance to create new and exciting experiences for users that can enrich everyday life for people worldwide. One thing is for certain, it is not an easy road to learn how to code but, once you have learnt the ropes, you will feel hugely fulfilled in a role that allows you to let those creative juices flow.

If you are looking for some advice and guidance to help you on your way to becoming a successful web developer, you’ve come to the right place. These proven tips will help you on your way to development delight:

Focus on open-source projects

As we’re a portal geared towards open-source development, we’re naturally going to bang the drum about the benefits of getting involved in open-source projects. There are so many fantastic open-source projects that are still going strong today – WordPress, Android and even Ubuntu/Linux to name but a few. Open source projects will give you direct hands-on experience, allowing you to build your own portfolio of work and network with other like-minded developers too.

Master one programming language at a time

A cardinal sin that many beginner web developers make is to try to dabble in multiple programming languages at once. This is a one-way ticket to confusedville, as you’ll feel like you’re getting nowhere with any of them. Learn one language or framework at a time to give yourself a real confidence boost; it can be hugely beneficial to feel that you’re picking new skills up fast. Having expertise in a few niche languages will be far more beneficial to being viewed as a jack of all trades in many throughout your career.

Don’t underestimate the importance of web security

In an age where external and internal threats to online applications are greater and more sophisticated than ever before, any aspiring web developer should be conscious about application security when building new online services. Admittedly, the management of these threats is effectively a full-time job. That’s why beginner web developers should familiarize themselves with the concept of a web application firewall (WAF) that guards against application layer attacks 24/7. A WAF is normally offered as a managed service by a third-party and can be deployed quickly without the need for hardware or software changes to your web app.

Accept that debugging is part and parcel of web development

Unfortunately, programming a web application can be frustrating at times. It very rarely goes 100% to plan. There will be occasions when your code simply won’t work, and you are left scratching your head with the deadline to launch ticking ever closer. If you want to be a successful web developer, you must accept that some of your time will have to be spent debugging. Knowing how to debug properly and efficiently is a key skill. It can save you time and money. The simplest way to tackle debugging sessions is to begin from the line that appears to be faulty and rollback from there. You could also consider time tracebacks to monitor your most recent code changes.

Being a web application developer gives you the chance to design and build solutions to real-world problems. As an aspiring web developer, you should always ask questions, build, study and then ask some more questions. Dedication is the key.

Source

WP2Social Auto Publish Powered By : XYZScripts.com