Hi, I'm Martijn
A passionate software developer. Started around 12 years old with a book I got for my birthday. It explains how to build a website with Microsoft FrontPage and upload it with FTP. It's the most precious book I have.
A serie of articles about creating an online guestbook was my introduction into programming.
With this website I test and explore tech. Some things this website uses: AWS, Terraform, ReportURI, Tor, CSS.
Blog posts
Is open source software veilig? NL
2024Merge existing codebases into a monorepo
2024Get notified when lock files change
2023How to import big spreadsheets
2023OpenIDConnect provider's HTTPS certificate doesn't match configured thumbprint
2023Tips to make your codebase future developer friendly
2023Domain redirects for CloudFront
2022Slack messages from GitHub workflow
2022Change cache driver for Laravel Task Scheduler onOneServer
2022How GRRR uses GitHub Actions
2022Dutch PHP Conference, takeaways from the conference
2021GitHub Actions and no AWS credentials
2021How to use OpenVPN in GitHub Action workflows?
2020How to create a WhatsApp button?
2020Add locales to Alpine Linux Docker image
2019Guidelines for Dutch governmental websites
2019Speedup Travis CI
BlogThe Dark Web niet technisch uitgelegd NL
Tor
In 2017 I wrote a blog post about Tor websites. I setup a Tor server as an example:
id7qogeeqxvuwybo6rvuwukc5b6cll3pllkforn5ta2vwkienwasioid.onion
Overview
To give you an overview and remind future me: a diagram to show the moving parts of this website.
HTTP visitor AWS CloudFront will serve the files from an S3 bucket. CSP, STS and some other headers are added by an AWS Lambda function. It modifies the origin-response when CloudFront retrieves an object from S3.
Tor visitor An AWS EC2 spot instance runs an Nginx server and tor. I use spot instances because the uptime of the website is not very important. But when a spot instance is terminated by AWS I want to boot a new one when available. AWS Auto scaling does that for me. It boots with a AMI which contains Nginx and tor, after booting a cloud-init script fetches the tor keys and hostname from AWS Secrets manager.