Kubernetes vs. Docker Swarm: A Comparison

Reading Time: 5 minutes

In this tutorial, we will be reviewing what the fundamental similarities and distinctions are between Kubernetes and Docker Swarm. Kubernetes and Docker are two of the major players in container orchestration. Both Kubernetes and Docker Swarm continue to grow in popularity as they are increasingly used by those working with container deployment, orchestration, and management. Across all vertical markets, businesses continue to find new methods of utilization and practice with more uses constantly being discovered.

docker.kubernetes
Continue reading “Kubernetes vs. Docker Swarm: A Comparison”

How to Install Taiga on Ubuntu 16.04

Reading Time: 5 minutes
taiga logo

Taiga is a free, open-source project management system. The back end consists of an API written in Python3 and Django, and the front end is written in AngularJS and CoffeeScript. Taiga can manage simple and complex projects, and also monitors the progress of a project. Taiga maintains logs that are displayed in the form of a worklist with all the functions and user stories added to the project. 

Taigas main advantage is it integrates easily with many services and templates, including Kanban, Scrum, Talky.io, and Appear.in. It also supports both group and private chats using HipChat as well as integration with GitHub and Bitbucket. In this tutorial, we will learn how to install the development version of Taiga on Ubuntu 16.04.

The Taiga program consists of two main elements:

  • The taiga backend (API)
  • The taiga frontend
  • (A third option is available called taiga events which we will not be addressing in this tutorial.)

Each of the main components has dependencies that are needed during compile and runtime.

Prerequisites

OS

  • A clean, recently updated server running Ubuntu 16.04

Software

  • Python >= 3.4
  • PostgreSQL >= 9.4
  • RabbitMQ (This software is optional assuming async notifications are not needed)

Compiler

  • GCC & Development Headers
  • Ruby >= 2.1 (only used for compiling sass)
  • NodeJS >= 7.0 (used with npm and gulp to download dependencies and compile CoffeeScript)

Hardware

  • At least 0.75 GB of RAM. (When installing Python, the lxml package uses gcc to build itself and may fail if there is a memory shortage.)
  • Minimal disc space: The database/media directory will need additional space with time.
Note:
The Taiga installation must be set up using a “non-root” user, never using root.
taiga.logo

Update Server

We begin the installation by updating the server software and then, we will run an upgrade to ensure all of our systems are up to date. 

ellen@ellen-VirtualBox:~$ sudo apt update
ellen@ellen-VirtualBox:~$ sudo apt upgrade -y

Install Taiga Backend

Install Dependencies

We begin by install the dependencies needed for the backend of taiga.

sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev
sudo apt-get install -y libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev
sudo apt-get install -y automake libtool libffi-dev libssl-dev curl git tmux gettext

Installation

Set Up the PostgreSQL Database

Install PostgreSQL

We will use the following commands to install PostgreSQL.

sudo apt-get install -y postgresql postgresql-contrib
sudo apt-get install -y postgresql-doc postgresql-server-dev-all

Set Up User, Database and Permissions

Next, we will set up the database user, the taiga database and the permission levels.

sudo -u postgres psql -c "CREATE ROLE taiga LOGIN PASSWORD 'changeme';"
sudo -u postgres createdb taiga -O taiga --encoding='utf-8' --locale=en_US.utf8 --template=template0
echo 'local all taiga peer' | sudo -u postgres tee -a $(sudo -u postgres psql -t -P format=unaligned -c 'show hba_file') > /dev/null
sudo service postgresql reload

Set Up a Python Virtual Environment

Currently, taiga-back uses pip and pip-tools to manage dependencies and venv to create its virtualenv.

sudo apt-get install -y python3 python3-pip python3-virtualenv python-dev python3-dev python-pip python-virtualenv
sudo apt-get install libxml2-dev libxslt-dev

Download Taiga Code Dependencies 

Now, we will download the taiga code from GitHub and install the required dependencies.

cd ~
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout master

Set Up Virtualenv

Next, we will create a new virtualenv for taiga, activate it, and then install the taiga-back base requirements.

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade pip-tools

Install Taiga Dependencies

python -m pip install -r requirements.txt -r requirements-devel.txt

Modify Django Configuration

We begin by editing the /settings/local.py config file to overwrite the settings in the /settings/common.py file. To set up a simple config file which functions using these directions, we will copy the /settings/local.py.example file to the /settings/local.py file.

Note:
Edit the PostgreSQL password to duplicate the password chosen during the ‘CREATE ROLE taiga LOGIN PASSWORD’ command used in the “Set Up User, Database and Permissions” step above.

You can also choose to add the following information in the ~/taiga-back/settings/local.py file.

from .common import *

# YOUR CONFIGURATION HERE

Populate the Database

Next, we will add some basic data to the database.

python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py compilemessages
python manage.py collectstatic --noinput
python manage.py sample_data

Start Taiga

To start the development environment, run the following command.

python manage.py runserver

Now, browse to http://localhost:8000/api/v1/ to view a list of endpoints in a JSON format.

Install Taiga Frontend

Install Dependencies

The taiga frontend utilizes Javascript, CSS, and HTML and runs in a browser window. Since the taiga front end uses these languages, we need to install additional dependencies which runs the code the browser understands.

Install Ruby and Ruby Gems

Taiga uses Ruby to compile sass and sass linting for the development environments.

Install Ruby

We will use apt-get to install Ruby and the Ruby development environment. 

sudo apt-get install -y ruby
sudo apt-get install -y ruby-all-dev

Install Ruby Gems

Next, we will use gem to install sass and the sass linter.

gem install --user-install sass scss_lint

Make gems’ scripts available from your path by putting this in your ~/.bashrc

if which ruby >/dev/null && which gem >/dev/null; then
    PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

Finally, we will restart the shell using the following command…

source ~/.bashrc 

or restart bash to make our changes available.

Install NodeJS, Gulp, and Dependencies

We need to install NodeJS as it is used to run gulp. Gulp is a tool which lets developers automate many compilation and deployment tasks. 

Install NodeJS

First, we will use apt-get to install NodeJS and NPM.

sudo apt-get install -y nodejs npm

Ensure bash responds to the following node command to have a smooth installation of gulp

node

If you get a “Command not found” error, then run the following command.

sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

Now, we can install gulp using NPM. 

sudo npm install -g gulp

Download the Taiga Frontend Code

cd ~
git clone https://github.com/taigaio/taiga-front.git taiga-front
cd taiga-front
git checkout stable

Next, we can install all the dependencies needed to run gulp and compile the taiga front end.

npm install

Run Taiga

Now that we have installed the dependencies, we will run the taiga code itself.

Run Gulp

cd ~/taiga-front
gulp

Modify the Configuration File

Lastly, we should configure the /dist/conf.example.json file by copying it to the /dist/conf.json file, and then edit the ~/taiga-front/dist/conf.json file with the initial configurations settings seen below.

{
    "api": "http://localhost:8000/api/v1/",
    "eventsUrl": null,
    "eventsMaxMissedHeartbeats": 5,
    "eventsHeartbeatIntervalTime": 60000,
    "debug": true,
    "debugInfo": false,
    "defaultLanguage": "en",
    "themes": ["taiga"],
    "defaultTheme": "taiga",
    "publicRegisterEnabled": true,
    "feedbackEnabled": true,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": []
}

Now we can point our browser to http://localhost:9001, which will access the taiga front end. If any npm errors are seen when executing the gulp command, delete the tmp files using the following rm command and reinstall the dependencies.

rm -rf ~/.npm; rm -rf node_modules
npm install
gulp

We pride ourselves on being The Most Helpful Humans In Hosting™!

Our support staff is always available to assist with any issues related to this article, 24 hours a day, 7 days a week 365 days a year.

We are available, via our ticketing systems at support@liquidweb.com, by phone (at 800-580-4986) or via a LiveChat or whatever method you prefer. We work hard for you so you can relax.

What is REST API? An Overview

Reading Time: 5 minutes

What is REST?

The REST acronym is defined as a “REpresentational State Transfer” and is designed to take advantage of existing HTTP protocols when used for Web APIs. It is very flexible in that it is not tied to resources or methods and has the ability to handle different calls and data formats. Because REST API is not constrained to an XML format like SOAP, it can return multiple other formats depending on what is needed. If a service adheres to this style, it is considered a “RESTful” application. REST allows components to access and manage functions within another application.

Continue reading “What is REST API? An Overview”

How to Install Chocolatey on Windows

Reading Time: 4 minutes


Continue reading “How to Install Chocolatey on Windows”

Docker For Beginners

Reading Time: 16 minutes

What is Docker?

31920.docker

Docker is a containerization software that is used for automating the deployment and management of applications within an isolated environment. This software allows us to “pack” and ship an application, along with all of its needed files, libraries, and dependencies, into a “docker container“. That container can then be easily ported to any Linux system that contain cgroups support within the kernel, and provides a container management environment. Docker is one of several containerization implementations (not to be confused with virtualization) based on this cgroups mechanisms built into the Linux kernel.

Continue reading “Docker For Beginners”

How to Install Yarn on Windows

Reading Time: 5 minutes

What is Yarn?

Yarn is an alternative npm-client used for working with JavaScript as a package manager that was developed by the Facebook team. It also allows us to share code with other developers around the world and use solutions from other developers. The code itself is distributed via packages, sometimes referred to as modules. The package contains a .package.json file which describes the contents, as well as all the associated distributed code. In comparison with npm, Yarn is considered to be a better alternative and surpasses NPM in the following parameters:

Continue reading “How to Install Yarn on Windows”

How to Install OBS on Linux, Windows and MacOS

Reading Time: 5 minutes

What is OBS?

obs_icon_small

OBS (Open Broadcaster Software) is a free and open-source video recording and livestreaming software program that is written in C, C ++, and Qt and developed by the OBS project and a community of independent developers. It is mainly used for streaming and recording videos. It supports a wide range of plugins to extend the functionality of the program.

Continue reading “How to Install OBS on Linux, Windows and MacOS”

JS frameworks: React, Angular, or Vue?

Reading Time: 5 minutes

Introduction

In this tutorial, we will discuss three of the most popular javascript frameworks: React, Angular, and Vue. We will look at the pros and cons of each, their usage statistics, discussions about which one to choose, and which one should be studied for future use. Because programming languages and frameworks are all tools in a developers tool belt, and each has its place. It is worth learning tools you find meaningful, useful to accomplish a task that’s not only convenient, but is suitable for specific tasks. Again, we should remind ourselves that because these changes occur rapidly, after a year and a half a year, the situation can radically change.

Continue reading “JS frameworks: React, Angular, or Vue?”

How to Install Jitsi Meet on Ubuntu 18

Reading Time: 9 minutes

What is Jitsi?

Jitsi is a set of open-source projects that allow you to create a secure video conferencing system for your team. It has features such as superior sound quality, excellent encryption and privacy, multi-platform and much more. The Jitsi client can work both in the application and in the web browser. You can broadcast your desktop as well as individual windows, and invite users using URL-link. We will be installing Jitsi on Ubuntu 18.04 server. We will install additional components such as Java’s OpenJdk, Nginx to correctly install, configure and use it. Let’s talk a bit about the components.

Continue reading “How to Install Jitsi Meet on Ubuntu 18”

How to Set Up and Manage Sudo Permissions

Reading Time: 7 minutes

What Is Sudo?

sudo-sudoers

credit to: XKCD

Sudo is a Linux program meant to allow a user to use root privileges for a limited timeframe to users and log root activity.  The basic thought is to give as few privileges as possible to a user while allowing  the user to accomplish a task. The term “Sudo” means substitute user, and do. It is a program used for managing of user permission based on a system configuration file. It allows users to run programs with the privileges of another user, by default, the superuser. The program is supplied for most UNIX and Linux-based operating systems.

Continue reading “How to Set Up and Manage Sudo Permissions”