envoy 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:        …

Weiterlesen

envoy.yaml example for http and https rewriting

This is an early example of working with envoy. I find the documentation to be difficult to get into, therefore I will try to track my progress by infrequent blog posts on the matter. The following envoy.yaml works for me for http and https rewriting to google: static_resources:   listeners:   – address:       socket_address:         address: 0.0.0.0         port_value:…

Weiterlesen

Exception: Unexpected quote at 1:2 (CSV::MalformedCSVError) Crystal

While trying to parse an Amazon pay file, I stumbled across this particular problem: Exception: Unexpected quote at 1:2 (CSV::MalformedCSVError) The reason: Amazon Pay encodes it’s files in UTF-8 with BOM. The BOM is an optional (in UTF-8 files) marker. You can see it with the tool xxd for instance xxd apolish_amazon_2018DecMonthlyTransaction.csv | less The…

Weiterlesen

Install Crystal on Docker: how to add the Crystal repository to Docker in the Dockerfile

Dockerfile (excerpt) ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn RUN apt-get update && apt-get install -y \          software-properties-common \          build-essential \         libevent-dev \         libssl-dev \         libxml2-dev \         libyaml-dev \         libgmp-dev \         libreadline-dev \         apt-transport-https \         iputils-ping \         git \         aptitude \         nano \         openssh-server \         && apt-key adv –keyserver keys.gnupg.net –recv-keys 09617FD37CC06B54 \         && add-apt-repository ‘deb https://dist.crystal-lang.org/apt crystal…

Weiterlesen

Crystal libevent-2.0.so.5: cannot open shared object file

Today I upgraded my Ubuntu to 18.04. Compiling a file with Crystal gives me the following error: stderr:     /root/.cache/crystal/usr-share-crystal-src-ecr-process.cr/macro_run: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory The library in question, libevent-2.0.so.5 has been superseded by libevent-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6 Crystal is of course aware of this…

Weiterlesen

Crystal & Alpine on the Raspberry Pi

Bringing together two interesting technologies: Alpine Linux – a small-size and security oriented Linux distribution Crystal – a compiled language with a nice syntax (similar to Ruby) on the Raspberry Pi (armhf / ARMv6, which would also support the Pi Zero W) is not possible currently, as of 21.12.2018. There is no (at least no…

Weiterlesen

Crystal: crystal language Duplicate trail found

max@morpheus:~/crystal/taxgod$ crystal run src/taxgod.cr Unhandled exception: Duplicate trail found ‘vat-correction’ (Radix::Tree::DuplicateError) from lib/radix/src/radix/tree.cr:0:11 in ‘add’ from lib/radix/src/radix/tree.cr:149:11 in ‘add’ from lib/radix/src/radix/tree.cr:149:11 in ‘add’ from lib/radix/src/radix/tree.cr:108:9 in ‘add’ from lib/kemal/src/kemal/route_handler.cr:49:7 in ‘add_to_radix_tree’ from lib/kemal/src/kemal/route_handler.cr:21:7 in ‘add_route’ from lib/kemal/src/kemal/dsl.cr:12:1 in ‘post’ from src/vatcorrection.cr:26:2 in ‘__crystal_main’ from /usr/share/crystal/src/crystal/main.cr:97:5 in ‘main_user_code’ from /usr/share/crystal/src/crystal/main.cr:86:7 in ‘main’ from /usr/share/crystal/src/crystal/main.cr:106:3 in ‘main’…

Weiterlesen

The Crystal programming language and encodings

Recently I found myself struggling with setting up file encodings correctly in the Crystal programming language, this is why I document this here. Crystal defaults to reading and writing files in UTF-8. Sometimes you will encounter files encoded in e.g. the Windows-1252 code page. (This is the western european code page, e.g. used for German…

Weiterlesen