PHP-CRUD-API now on Docker Hub

PHP-CRUD-API is an “automatic” API: software that turns your database into a REST API. This is possible thanks to database reflection (asking the database which tables and fields it has). Support for Docker and Docker Compose has been added and the Docker image is registered on Docker Hub. Test using Docker To do proper testing you may have to test the full matrix of all dependencies (PHP, MySQL, MariaDB, PostgreSQL, SQLite and SQL Server) and there corresponding versions. For PHP there are already 5 supported versions (7.0, 7.1, 7.2, 7.3 and 7.4), for MySQL there are 3 supported versions (5.6 5.7 and 8.0) and for PostgreSQL there are 9 supported versions (9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 10, 11 and 12). Only these combinations of these major versions would lead to 5 x 3 + 5 x 9 = 50 test runs. ...

August 1, 2020 · Maurits van der Schee

OSX clean install error messages

When you buy a second hand Mac you should do a clean install of OSX from a USB drive for security reasons. This sounds easy, but there are some problems you may run into. In this post we discuss 2 common, but cryptic, error messages and explain how to avoid them. Note that a clean installation requires you to have a USB drive with a bootable OSX installer. Note that on newer Macs you don’t need an USB drive as these support macOS Recovery over the Internet by pressing Option-Command-R after boot. ...

July 26, 2020 · Maurits van der Schee

uBlock Origin on Android

On Xubuntu I protect my privacy by using an ad-blocker (uBlock Origin) in my browser (Firefox). On my phone (Android) I also use Firefox, but I was not able to install uBlock Origin in Firefox on Android, until now! I tried it again today and on my Android 10 (Android One) Xiaomi A3 with Firefox 68.9.0 and it just works. For me this is huge, as this makes surfing the web on my phone a viable option. Until now is was minimizing browser usage on my phone, due to privacy concerns. ...

July 17, 2020 · Maurits van der Schee

Beelink T4 modding and overclocking

I bought a “Beelink T4” mini PC for 100 EUR with 4GB RAM, 64 GB eMMC and a Z8500 quad core 2.24 Ghz CPU with an Scenario Design Power (SDP) of only 2W. It is the successor of my “Z83II” mini PC with 2GB RAM, 32 GB eMMC and a Z8350 quad core CPU. I run Xubuntu 20.04 on these boxes and you can run them as a low power (headless) server or as a HTPC (Home Theater PC) for Full-HD video. In this post we will unlock the full potential of the T4, making it run a little faster and much cooler. ...

June 21, 2020 · Maurits van der Schee

PHP-CRUD-API v2 now supports SQLite

After 1 year of slowly growing PHP-CRUD-API v2 another milestone is reached. Today SQLite support, the fourth supported database engine, is (re)added to the project. It was removed with the introduction of v2. This feature is added in order to facilitate fast prototyping as SQLite is easy to install and configure. I want to thank Raymond Verbruggen for his feature request and his contribution to deliver this feature. SQLite support on steroids A few weeks ago I redid the research on the performance of a SQLite implementation. I found that since version 3.16 of SQLite there are new reflection methods available that allow better performance of my reflective REST API. Other DBMS systems provide reflection using the “information schema”, which is a SQL standard. SQLite now has similar functionality, but non-standard with “pragma table functions”. These functions differ from the “pragma statements” used to implement SQLite support in v1, as the new pragma table functions can be combined with “select” or “where” clauses, while the old pragma statements could not. This flexibility means we no longer need to create a “pseudo” information schema for SQLite. It also means we don’t support older versions of SQLite, such as the version 3.11 that is used in Ubuntu 16.04. ...

April 13, 2020 · Maurits van der Schee

Ultimate NUC killer under 500

I’ve built another PC. This time I wanted to replace my Intel NUC i5 with something more powerful. I’ve chosen an ASRock DeskMini A300 case (with a STX-sized motherboard) and a Ryzen 3 3200G processor. This little machine costs less than 500 euro, is super fast and not too noisy. I run Xubuntu 20.04 LTS and it works great, I’m very pleased with the results! List of materials The materials used in this build: ...

February 14, 2020 · Maurits van der Schee

Install OpenConnect VPN server on KVM

In a previous post I have shown how to add an IPsec IKEv2 VPN to your (Ubuntu 18.04) KVM setup. In this post I will show you how to add and configure OpenConnect VPN. I will show how to install the VPN endpoint on a virtual machine, as a replacement for the VPN installation that we did in the previous post. OpenConnect may be easier to setup and maintain, but it is not clientless on Windows 10 and does require a (user-friendly and free) VPN client. ...

February 7, 2020 · Maurits van der Schee

Install an IPsec IKEv2 VPN server on KVM

In a previous post I have shown how to set up port forwarding to KVM virtual machines. In this post I will show you how to add an IPsec IKEv2 VPN to your (Ubuntu 18.04) KVM setup. I will show how to install the VPN endpoint on a virtual machine and make it available using port forwards. This allows for a simple networking setup and easy replacement of VPN technology. Install Strongswan You need to setup a new Ubuntu virtual machine using “virt-install” (as described here). On this newly created machine you need to install the strongswan IPsec software: ...

February 3, 2020 · Maurits van der Schee

KVM port forwarding with UFW

In a previous post I have shown how to set up static IP addresses for virtual machines in KVM (on Ubuntu 18.04). I have also shown how to reconfigure the IP range of the KVM network. In this post I will show how to do port forwarding of specific traffic to your virtual machines without turning off UFW. This requires to reconfigure the KVM network to a “routed” network with explicit forwarding rules in iptables. ...

January 27, 2020 · Maurits van der Schee

Static IP addresses in a KVM network

In a previous post I have shown how to use the serial console in KVM (on Ubuntu 18.04) and how to access it on the KVM CLI. In this post I will show how to set up static IP addresses for your KVM virtual machines. Static IP addresses are a requirement for doing port forwarding, a topic we will touch in another post in this blog series. In this post we will also explore how to reconfigure the IP range for your KVM virtual machines. ...

January 23, 2020 · Maurits van der Schee