Archive for January 2019
Using nuitka compiler for python3 on Alpine Linux ARMHF (musl)
Motivation pidoctor is written in Python (as there was no easy way to get Crystal to work on ARMHF / musl). This means a dependency on Python – which adds overhead. I suspect that this overhead is the reason that pidoctor will not run on 256 MB Raspberry Pi’s – because the RAM is exhausted…
WeiterlesenDebugging the Alpine boot process
As discussed in my previous post, Alpine Linux goes through several stages when it boots. Just after mounting the boot media, and scanning it for apkovl’s (with nlplug-findfs), there is an option for you to get a console, by setting $SINGLEMODE to yes. Setting SINGLEMODE to yes is easy, you simply add the word “single”…
Weiterlesenkemal-session does not persist data
https://github.com/kemalcr/kemal-session Analyse what is happening with your session cookie. In my case, the session cookie was reset everytime I went to login. I realized, that my idea of cleaning up the old session as a first statement after successful login, before setting up the new session is not a good idea. I suspect, that the…
WeiterlesenUsing modules in crystal
As your application grows, you would like to move from one big .cr file to separating your code into smaller files. You can use require from your main .cr file to add code from other files: require “./tools/*” This statement will add code from the tools directory, relative to your main .cr file. This will…
WeiterlesenThe scope of ecr within crystal: or how do I pass in variables and Objects into ECR templates?
As a beginner in the Crystal language I still struggle to get my head around some of the concepts in it, and develop a feel for coding in Crystal. When I come across difficult problems, which I solve or start to understand, I blog about them, so others can benefit – as lack of documentation…
WeiterlesenRoute & Redirect with envoy
An example envoy.yaml showing how to route & redirect. There are different options, see here https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction This envoy.yaml routes /taxgod and /taxgod/ (the second could probably be omitted because the first one should also match it, I think) to a new port and a different protocol. /picockpit is simply redirected to / and then finally…
WeiterlesenEnvoy routing and rewriting snippet
It is possible to rewrite URLs with Envoy for the backend. Please note that the HTML output needs to have the proper routes! (That is why I am not going to investigate further in this direction). REF: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route Also note that the string is going to be rendered literally for direct_response –> body –> inline_string,…
Weiterlesenenvoy as http 2 front proxy – enabling http 2 for envoy (aka h2)
Out of the box envoy is not configured to set up connections with clients connecting to it with the new HTTP/2. HTTP/2 is optimized for the modern web, with binary headers, etc. – higher speed. Since envoy is capable of speaking HTTP/2 to clients, it is a no-brainer to set it up. And the setup…
Weiterlesenenvoy force SSL example envoy.yaml
static_resources: listeners: – address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains: – filters: – name: envoy.http_connection_manager config: codec_type: auto stat_prefix: ingress_http route_config: virtual_hosts: – name: backend domains: [“*”] routes: – match: { prefix: “/” } redirect: path_redirect: “/” https_redirect: true http_filters: – name: envoy.router config: {} – address: socket_address: address: 0.0.0.0 port_value: 443 filter_chains: – tls_context: …
WeiterlesenSetting up envoy as a front proxy on Docker with communication to other Docker containers
I have already existing containers which I want to use envoy as a proxy & https manager in front of. I am learning to use envoy, and am sharing some of my learnings here, as documentation is a bit confusing to start with. My already existing container is called “taxgod” – it runs a Crystal…
Weiterlesen