';

Eclipse Che on Arch

Eclipse Che is a Cloud IDE that you can install on your server.  I will try to use it from my iPad Pro.

Make sure you have docker installed and the service started:

My home server IP is <IP_HOST>

On my home server I created a folder ~/Che

Now start:

Now I can start CHE from a browser (also from iPad). Data is stored in ~/Che

Use: http://<IP_HOST>:8080 from a client to start the che cloud workspace.


Docker service not starting on Arch Linux

I had some problems starting the docker service on Arch after installing docker.

This resulted in an error and the message told me to look at journalctl -xe

The output wasn’t very helpful.

gave much more info, such as:

What to do? Well, did you do a linux upgrade before installing and starting docker?
Just reboot ūüėČ In my case I did a linux upgrade and didn’t reboot before installing docker.

R E B √ď √í T


Docker remove containers

So you want to remove containers. The tutorials use the command:

This doesn’t work if your user is not part of the ‘docker’ group. You will get a nasty Permission Denied message. So hey, let’s sudo.

ouch! this doesn’t work either. Same message. What is happening? The line contains two commands:

AND

So let’s try this:

That works.


Installing Arch Linux

A colleague told me about Arch Linux. Since I am really a DIY kind of guy, I decided to give it a try.¬† It is different from something like Ubuntu. It’s small and comes without a pre-installed desktop. It has no version since it is a rolling-release. Installing is a bit more more complicated than something like Ubuntu or CentOS but not that complicated. I will be assuming a UEFI installation.

Prerequisites

  • Computer, x86_64 with a minimum of 512mb RAM.
  • 2gb usb drive
  • Working internet connection.

Tools needed

Continue Reading…


Fixed IP Ubuntu 16.04

Suppose you want your freshly installed Ubuntu to have a fixed IP.

First check ifconfig to see which interface should get a fixed IP adress.

Now for Ubuntu 16.04 the naming of the interfaces has been changed. Lan eth0 is now called enp3s0. wlp2s0 is the wireless network. The numbers may vary.

Continue Reading…


SSH on Ubuntu 16.04.3

Installing OpenSSH

Install openssh-server on ubuntu 16.04

This installs open-ssh and will start the ssh server on startup

You can now start a session from another machine

Password login isn’t the safest way to use ssh. Intead we prepare to use keypairs.

Continue Reading…


Create a two-router DMZ (rough steps)

Building a DMZ

Situation
modem + router (Router 1) connected to internet
extra router (Router 2)

Router1  has internet access and gets IP from ISP.
Router 1 Lan 192.168.1.1
Router 1 DHCP from 192.168.1.11 to 192.168.1.254 (mask 255.255.255.00)
Router 1 Lan 1 attached to Wan on Router 2
Router 1 Lan 2 attached to Linux box (Ubuntu 192.168.1.3)

Router 2 Wan IP 192.168.1.2 gateway 192.168.1.1 (=LAN Router 1)
Router 2 Lan 192.168.2.1
Router 2 DHCP from 192.168.2.11 to 192.168.2.254 (mask 255.255.255.0)

Now the Linux box is the DMZ and cannot reach router2. Devices connected to Router2 are your normal network but can also see Router 1 DMZ traffic (Because of the LAN->WAN connection) So this only works if DMZ is on Router1 and trusted network on Router 2.

Don’t forget to:
– stop services that you don’t need on the Linux box.
– disable wifi and bluetooth radio in the bios of the linux box or remove the module from the mobo
– ssh only with keypair
– backup in case someone does get hold on your DMZ
– disable WPS on Router2 in case wifi get’s activated on DMZ

Tricky
– Cannot disable webinterface Router1 so DMZ can reach it and mess with your network. Yet they still can’t get into to Router2 so all you risk there is a factory reset of your Router1. Ideas?

Next Steps:
Set fixed IP for your DMZ server: http://solvista.nl/2017/10/31/fixed-ip-ubuntu-16-04/
Enable SSH on your DMZ server: http://solvista.nl/2017/10/25/ssh/


Shared folders in VirtualBox

It might be handy to share files between your host and guest system in VirtualBox. In this example the host is Windows and the guest OS is ‘Xubuntu 16.04.2’.

First we need to create a ‘Shared Folder’ in virtualbox. We could use the userinterface or commandline to accomplish this.

Create shared folder method 1: User Interface

Within the machine named “XubuntuVM”, go to the menu ‘Devices’ and start the ‘Shared Folders’ option. ¬†Give the folder a meaningfull name, eg ‘Share’. ¬†Tell VirtualBox which folder on the hostsystem to use. This might by ‘C:\VboxSharedFolder’. Check ‘Make permanent’. Press ‘OK’. This creates the shared folder.

Create shared folder method 2: Commandline

Start a new terminal on the host.  We need the following:
– VM name: “XubuntuVM”
– Sharename inside VBox: ¬†“Share”
– HostPath: “C:\VBoxSharedFolder”

Mounting the drive

The shared folder is created within VirtualBox, but the guest OS still needs to mount the shared folder. First we need to create a folder, the mount point. Next we need to actually mount the VirtualBox share to the mountpoint. Start a terminal inside the guest (choose Menu -> Terminal Emulator). Now enter the following lines.

Your host drive is now accessible thru ‘/mnt/hostshare’. Any data placed inside this folder will be visible on the host inside ‘C:\VboxSharedFolder’ and vice versa.

 


Gradle (002): Getting started

Let’s create a very simple Gradle java project. Make sure Gradle is installed. See this link. Also java must be installed.

Create the Project folder:
devbox$ cd ~/Development/projects
devbox$ mkdir FirstGradle
devbox$ cd FirstGradle
devbox$ mkdir -p src/main/java/demo

Create the class and add some code
devbox$ vi src/main/java/demo/HelloGradle.java
:i (insert text)
1 package demo;
2
3 public class HelloGradle{
4 public static void main(String[] args) {
5 System.out.println("Hi Gradle!");
6 }
7 }
:x (save and close)

Now create a basic build file
devbox$ vi build.gradle
:i (insert text)
1 apply plugin: 'java'
:x (save and close)

Next we comple the code. Note that we are still in ~/Development/projects/FirstGradle.
devbox$ gradle build

We can list the folders created by Gradle on the mac using this command:
devbox$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

The jar is stored in ./build/libs/ The file isn’t usable yet. If you run it you get a error because no Main method is found.
devbox$ java -jar build/libs/FirstGradle.jar

We need to add something to the gradle.build file to make sure the manifest is created.
apply plugin: 'java'

jar {
manifest {
attributes ‘Main-Class’: ‘demo.HelloGradle’
}
}

Now rebuild and run the example.
devbox$ gradle build
devbox$ java -jar build/libs/FirstGradle.jar


Gradle (001): Download Gradle and install

We will download and install gradle on Mac OSX Sierra. Replace commands below with more recent version numbers.

Download the software:
devbox$ cd ~/Development/software
devbox$ curl -O https://services.gradle.org/distributions/gradle-3.5-all.zip
devbox$ ls -la

Whoops. The downloaded file is empty. What happened? Let’s see what the HTTP response tells us (-I option).
devbox$ curl -I https://services.gradle.org/distributions/gradle-3.5-all.zip

The response is of type 301 (Moved permantly). Now let’s add the -L flag to follow redirects.
devbox$ curl -LI https://services.gradle.org/distributions/gradle-3.5-all.zip

That looks better. It does still get the 301, but then follows until the 200 (OK). So try again without -I and output the file to disk (-O).
devbox$ curl -LO https://services.gradle.org/distributions/gradle-3.5-all.zip

Unzip the file and install in path like we did for Maven:
devbox$ unzip gradle-3.5-all.zip
devbox$ echo 'PATH=$PATH:~/Development/software/gradle-3.5/bin' >> ~/.bash_profile
devbox$ source ~/.bash_profile

Test our installation:
devbox$ gradle -version


12