Geoinformatics

Personal website on stuff I like. Enjoy!

 

Software selections

Jitsi Meet: free video conferencing - https://jitsi.org/

Linux-based Datastore

External disk mountable on startup: /etc/fstab

Install Samba on Debian 11

In Terminal:

sudo apt install samba smbclient cifs-utils

Next, edit configuration:

sudo nano /etc/samba/smb.conf

After every configuration, the service has to be restarted:

sudo service smbd restart

Flask app on Debian

This guide lists the steps in order to setup the environment for the hosting of a Flask-based app. I'm assuming the IT professional is starting from scratch and a fresh, clean install of Debian is in place.

1) Install sudo

Debian does not come with the sudo program so it has to be installed with apt install sudo.

2) Allow remote ssh:

In order to allow root account login via ssh, edit the sshd_config file. As root, type:

nano /etc/ssh/sshd_config

Add the following line to the file (at the end of the file, for example):

PermitRootLogin yes

…and restart the service:

service ssh restart

Add newuser (or whatever plain user) to sudoers:

as root, run: usermod -aG sudo newuser

The -aG option tells the system to append the user to the specified group. (The -a option is only used with G.)

Install PostgreSQL

PostgreSQL can be installed with:

apt install postgresql postgresql-contrib

PostgreSQL version: PostgreSQL 13.5

Change to user postgres:

su - postgres
psql    
postgres=# create user soto with encrypted password 'password';     create database flask_db;    grant all privileges on database flaskdb to soto;    createdb postgres    GRANT ALL PRIVILEGES ON DATABASE postgres TO postgres;  

Allow remote access to PostgreSQL

Exit and run as root:

nano /etc/postgresql/13/main/postgresql.conf

add:

listen_addresses = '*' # what IP address(es) to listen on;

Next, you also have to edit the pg_hba.conf file to control access at a finer grained level. The file path is, in my case: /etc/postgresql/13/main/pg_hba.conf

PostGIS

sudo apt install postgis postgresql-13-postgis-3    
sudo -i -u postgres

Troubleshooting

https://www.postgresql.r2schools.com/how-to-check-postgresql-is-running-or-not/

Sources

https://help.clouding.io/hc/en-us/articles/360021332399-How-to-Deploy-a-Python-App-on-Debian-10

“Externalize” PostgreSQL:

https://www.postgresql.org/docs/current/auth-pg-hba-conf.html

https://stackoverflow.com/questions/3278379/how-to-configure-postgresql-to-accept-all-incoming-connections

https://stackoverflow.com/questions/59101635/even-with-listen-addresses-in-postgres-remote-login-is-not-working

Install GeoServer on Ubuntu Server

1) Install Java 11 runtime:

sudo apt update

sudo apt install default-jdk

Verify Java has been installed by checking its version:

java -version

Java is now installed!

2) Install Apache Tomcat

sudo apt install tomcat9 tomcat9-admin

Enable Tomcat to start at system boot:

sudo systemctl enable tomcat9

Start the service with:

sudo service tomcat9 start

Confirm the service is running with:

sudo service tomcat9 status

If the service is running ok, a line saying active will be displayed.

3) Install GeoServer

wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.20.3/geoserver-2.20.3-war.zip

Stop Tomcat before unzipping the files:

sudo service tomcat9 stop

Move the downloaded file to the webapps directory:

sudo mv geoserver-2.20.3-war.zip /var/lib/tomcat9/webapps

Navigate to the webapps directory:

cd /var/lib/tomcat9/webapps

Unzip the file:

sudo unzip geoserver-2.20.3-war.zip

If unzip has not been installed, use:

sudo apt install unzip

After installing Tomcat, type:

sudo nano /etc/tomcat9/tomcat-users.xml

Add the following three lines to the xml file:

<role rolename=“admin-gui”/>

<role rolename=“manager-gui”/>

<user username=“tomcat” password=“pass” roles=“admin-gui,manager-gui”/>

Reboot (or simply restart tomcat service):

sudo reboot

Geoserver is accessible at: http://192.168.92.20:8080/geoserver (or whatever is your IP/domain)

 

Linux & misc. POSIX

Get info on the distro:

System information: uname

Network hostname: uname -n, Kernel release: -r Machine hardware name: -m, All info: -a

CPU info: lscpu (adaptable to show PCI info, etc.)

Storage devices (aka “block devices”): lsblk, all: -a.

What is my OS?: lsb_release -a

32-bit or 64-bit of operating system? getconf LONG_BIT

Disk Free: df -T shows available filesystem types, df -BG shows available space

32-bit or 64-bit of ext4?

tune2fs -l /dev/mapper/data-data | grep 'Filesystem features' Example output of 64-bit:

Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Windows

Best practices when creating a USB install drive

Download using Windows Media Creation Tool

Use rufus

Add ei.cfg

Create a folder inside with extras