Analyzing twitter: Import tweets with NodeJS and the twitter API

A tweet in the database is worth two in the API Working with tweets from the twitter API probably means importing data into your own database - the standard API does not provide historical data (only the last seven days) and has various rate limits. So regardless of the final goal in this blog we’ll explore importing tweets from the API into a database for future use. All done with NodeJS, written in Typescript and utilizing MongoDB as data store....

October 25, 2019 · 4 min · 847 words · Philip Heltweg

Deploy an app into your personal cloud

As the final step in this long series of blogposts we are going to deploy a simple webapp in a docker container to my personal cloud. For context here is the personal cloud setup with Traefik/Let’s Encrypt (Run a personal cloud with Traefik, Let’s encrypt and Zookeeper). In previous blogposts I also described how I built the app (Build a PWA in docker). App deployment The deployment runs the docker container....

September 4, 2019 · 2 min · 294 words · Philip Heltweg

Build a docker image on gitlab ci and publish it to google container registry

In previous blogposts I explained my concept of a personal cloud for my own projects (Kubernetes for Sideprojects) and how I set it up (Run a personal cloud with Traefik, Let’s encrypt and Zookeeper). I also showed how I packaged a PWA project with docker (Build a PWA in docker). With all those ingredients ready to go the last hurdle to solve is building the docker image automatically as well as publishing it to a private container registry so I can deploy it to my cloud from there....

September 3, 2019 · 3 min · 455 words · Philip Heltweg

Deploy to google kubernetes engine using gitlab ci

In a previous blogpost I showed how I build and publish docker images on gitlab ci (Build a docker image on gitlab ci) Make sure to read that post first for an overview and permission setup. Update the kubernetes service with the new docker image You can easily set up a deploy step using google’s own cloud SDK docker images. Note the service account with the permissions to change the kubernetes setup is saved as “GCLOUD_K8S_KEY” variable here....

September 3, 2019 · 1 min · 173 words · Philip Heltweg

Build a progressive web app in docker with nginx to deploy to kubernetes or docker swarm

This post was updated on 2024-02-10 to work with up-to-date nginx and node versions. With my personal cloud setup based on kubernetes done (you can read about it here: https://heltweg.org/posts/run-a-personal-cloud-with-traefik-lets-encrypt-and-zookeeper/) it is time to actually deploy the first project into it. The easiest application to deploy is a pure client side single page application, packaged in a docker container with a webserver like nginx to deliver the files. Packaging the application into it’s own container allows us to build a standardized container that can be run locally for testing or deployed to docker swarm and kubernetes....

August 24, 2019 · 3 min · 481 words · Philip Heltweg

Run a personal Cloud with Traefik, Lets encrypt and Zookeeper

Kubernetes ingress with Traefik As mentioned in my last blog post I want to focus on a provider neutral setup for my own cloud, using technology that is not bound to any cloud offering whenever possible. While google cloud offers load balanced HTTP ingress by default it is apparently very expensive in comparison to running small nodes and I have heard only good things about using Traefik for kubernetes ingress....

August 16, 2019 · 5 min · 1017 words · Philip Heltweg

Kubernetes for sideprojects: Hardware is dead

Why invest in a personal cloud It has never been easier to host your personal side projects. Tools like surge.sh or Heroku make it painless to run your code. And if all else fails the old reliable “drag and drop files to a ftp” is always there - so why invest time into setting up your own personal cloud with kubernetes? My goal for technology is typically to find a setup that gets boring to work with because I know it well and can focus on delivering new functionality....

August 15, 2019 · 4 min · 719 words · Philip Heltweg

Entity-Systems for typescript based games

Entity-Systems for typescript based games For my latest game project Frozzen I want to explore how an external UI, build with Angular, would work for a browser based game. Since Angular is written in Typescript that means ideally the game should also use the same. I have used Artemis ODB as framework for a Java based game in the past and liked it a lot. Entity-Systems are much better introduced by any of the huge amount of articles out there (for example the classic on T=Machine but I feel they are especially well suited to Javascript/Typescript development....

June 6, 2019 · 2 min · 266 words · Philip Heltweg

Deploy a personal blog with Hugo, Firebase and Gitlab

Blog requirements I recently evaluated what how writing content and carving out a little personal space on the internet would look like for me and came up with a list of requirements: Own my content (No third party platforms as only distribution method. There was a time before medium and there will be a time after medium.) Easy to set up and maintain (I don’t want to set up and host databases or complicated CMS systems and when I come back to this in a month it should be easy to update....

May 3, 2019 · 2 min · 426 words · Philip Heltweg

mealpreplist.com - Your weekly mealprep, made easy

Meal prepping is the practice of preparing multiple meals at once and either freezing them or keeping them in the fridge to eat over the upcoming days. There is an active community on reddit (r/MealPrepSunday/) and various blogs online. Often mealprep containers are separated in three sections for a carb source, a protein source and vegetables. With mealpreplist I wanted to save my own, simple meal components for each of these sections and allow myself an easy way of combining them to a meal to prepare....

September 27, 2017 · 3 min · 530 words · Philip Heltweg