Do you have configuration files in you project using JSON or YAML? Do you know you can enable Intellisense for those configuration files for validating and auto compete when you edit them?
You only need to create a JSON Schema. Then, you can have validation and auto compete in Visual Studio Code. Not only it is very useful for others to modify your configuration, you can reuse the JSON Schema file when you parse your configuration.Continue reading “Intellisense for JSON and YAML in VS Code”
If you do not know how to run Docker, you should start from Part 1.
Last time, you learn how to run a Docker container with different arguments and convert the command to a Continue reading “Docker: Learn and Practice, Part 2”
docker-compose.yml for easier maintenance. This time I will show configurations with user Docker image and talk more about different options on Docker Compose.
Many of you may have heard about Docker but do not know how to get started. This series will guide you step by step to get it running.
This tutorial focus more about how to use Docker instead of how it works. If you just want to use Docker in your homelab, this is for you.Continue reading “Docker: Learn and Practice, Part 1”
With the raise of popularity of single-page application (SPA), we can separate front-end and back-end completely. Front-end only rely on API to communicate back-end, so that we can always change the implementation of front-end (e.g. web application, mobile application, etc) without changing the back-end.
For simple applications that do not have a complicate logic (e.g. blog), we can use a headless content management system (CMS) as a back-end.
Most headless CMS provide basic features to create content and schema, this allows developer to focus on implementation on the Front-end.
To find a suitable headless CMS, I have tried many different solutions and I want to share my views on them.Continue reading “Headless CMS comparison for 2019”
I received a call from client this morning. They accidentally put the UAT version Android APK in production. This caused multiple devices stop functioning with the not updated server.
Even though it is client’s fault, the application should not crash. I decided to investigate the cause.Continue reading “Migrate from GSON to Moshi in Android”
Traefik is a open source reverse proxy / load balancer which is raising in popularity because of its ease to setup, integration with Docker and Let’s encrypt and much more features.
This guide will help you to go through how to setup Traefik step by step.Continue reading “Setup Traefik step by step”
When I previously show you how to get a valid certificate with Certbot, I have talked about Cloudflare. Today, I am going to show you what useful features you can get with Cloudflare free plan.Continue reading “Reasons to use Cloudflare”
When we setup applications in our homelab, there are always some applications do not support authentication or authentication integration.
The solution I was using was Organizr. While it protects your endpoint, it is not the best solution. If you read the source code, it is just matching IP addresses which leads to a lot of problems. Also, it does not redirect you to login page or allow you to setup for remote authentication. It only has limited (admin and user) roles to control access and do not play well with other identity providers, like LDAP.Continue reading “Protect your endpoints with Keycloak Security Proxy”
Chrome and Firefox has planned to mark ALL the HTTP connection to be not secure. “How insecure it can be?” you may asked. Without HTTPS, HTTP is transferring the package in plain text, which is vulnerable to all kind of attack, especially Man-in-the-middle (MITM) attack. For example, free Wi-Fi providers can modify any HTTP pages and inject their advertisements. This can also happen when you send out data. The middle can steal and modify any data you send including user name and password.
This tutorial is going to teach you how to get HTTPS certificates from Let’s Encrypt using Certbot and Cloudflare.Continue reading “HTTPS with Let’s Encrypt and Cloudflare”