<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/vendor/feed/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
                        <id>http://christlieb.eu/rss</id>
                                <link href="http://christlieb.eu/rss" rel="self"></link>
                                <title><![CDATA[Blog RSS Feed]]></title>
                    
                                <subtitle></subtitle>
                                                    <updated>2026-03-29T16:32:51+00:00</updated>
                        <entry>
            <title><![CDATA[How I Host christlieb.eu with Docker, Coolify, and GitHub]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/hosting-laravel-with-coolify-and-github" />
            <id>https://christlieb.eu/hosting-laravel-with-coolify-and-github</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[A walkthrough of how I deploy christlieb.eu — a Laravel app running on FrankenPHP, managed by Coolify on a Hetzner VPS. Multi-stage Dockerfile, three Docker Compose services, and a deployment workflow that stays out of the way.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Reviving My Blog: A Fresh Start with Modern Tech]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/reviving-my-blog-a-fresh-start-with-modern-tech" />
            <id>https://christlieb.eu/reviving-my-blog-a-fresh-start-with-modern-tech</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[Reviving this blog wasn’t just about dusting off old posts—it meant embracing modern tools like Filament, ditching Laravel Nova, and moving to a sleek Hetzner + Coolify hosting setup. With a fresh start and a streamlined backend, I’m back to share insights, tips, and the occasional rant with consistency.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Connect Laravel to Lokalise the right way]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/connect-laravel-to-lokalise-the-right-way" />
            <id>https://christlieb.eu/connect-laravel-to-lokalise-the-right-way</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[Learn how to manage your Laravel translations the right way if you are using lokalise.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Automate build and push to ECR via GitHub Actions]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/automate-build-and-push-to-ecr-via-github-actions" />
            <id>https://christlieb.eu/automate-build-and-push-to-ecr-via-github-actions</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[In this article we will build a minimal PHP application consisting of two containers which are declared in a single multi stage Dockerfile. Then we will leverage a GitHub Actions workflow to automate building the Docker images and pushing them to ECR]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Build Docker images for production]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/build-docker-images-for-production" />
            <id>https://christlieb.eu/build-docker-images-for-production</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[a brief introduction how we handle Docker images for production and how this fundamentally differs to our development images. Our example will be a simple Laravel application.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[How to use traefik as a reverse proxy in development]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/how-to-use-traefik-as-a-reverse-proxy-in-development" />
            <id>https://christlieb.eu/how-to-use-traefik-as-a-reverse-proxy-in-development</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[In this article we will configure dnsmasq and traefik to act as a reverse proxy on our development machine. This way we are able to use custom .test domains in all of our docker projects.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[b5 example project with Laravel]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/b5-example-project-with-laravel" />
            <id>https://christlieb.eu/b5-example-project-with-laravel</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[In this article we will setup a Laravel example project with b5. We will leverage services like Apache, PHP, Node.js, Redis, MySQL, phpMyAdmin and MailHog.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[b5 - a modular task runner]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/b5-a-modular-task-runner" />
            <id>https://christlieb.eu/b5-a-modular-task-runner</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[In this article we will take a look into b5 - a modular task runner written in Python by TEAM23.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Local Development Environment with b5, Docker, and Traefik]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/local-development-environment-with-b5-docker-and-traefik" />
            <id>https://christlieb.eu/local-development-environment-with-b5-docker-and-traefik</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[Learn how we use Docker, Docker Compose and traefik with our self developed task runner b5.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[How to install PHP 7.3 and Nginx on Ubuntu 19.04]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/how-to-install-php-7-3-and-nginx-on-ubuntu-19-04" />
            <id>https://christlieb.eu/how-to-install-php-7-3-and-nginx-on-ubuntu-19-04</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[In this article I will show you how to install Nginx and PHP 7.3 on a blank Ubuntu server.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[How I Revived My Blog]]></title>
            <link rel="alternate" href="https://christlieb.eu/blog/how-i-revived-my-blog" />
            <id>https://christlieb.eu/how-i-revived-my-blog</id>
            <author>
                <name><![CDATA[]]></name>
            </author>
            <summary type="html">
                <![CDATA[Hi, I am Manu a software developer from Augsburg, Germany and this is the story of my next attempt to blog regularly.]]>
            </summary>
                                    <updated>2026-03-29T16:32:51+00:00</updated>
        </entry>
    </feed>
