Ihr Partner in Web-Entwicklung

Innovative Ideen für Ihr Unternehmen


Egal ob neue Firmen-Webseite, CRM-System oder Spezial-Software. Wir sind ihr Ansprechpartner in Sachen Web-Entwicklung!

Wir erstellen Webseiten und Web-Applikationen nach ihren Wünschen und Anforderungen. Dabei setzen wir stehts auf die neusten Technologie- und Sicherheits-Standards.

Netzwerk Administration

Planung, Aufbau und Administration ihres kleinen bis mittelständigen Firmen-Netzwerkes.

Wir kümmern uns daraum dass es in ihrer Firma läuft. Wir planen, bauen und administrieren ihr Unternehmens-Netzwerk.

Linux Server Management

Aufbau, Instandhaltung und Wartung ihres Linux-Servers.

Wir bieten ihnen einen umfassenden Service für ihren Linux-Server. Wir sorgen dafür, dass alles auf dem neusten Stand ist und ihre Services verlässlich laufen. Dabei achten wir stehts auf die Sicherheit ihres Netzwerkes und ihrer Kunden.

Wer Sind Wir?

Software ist Analyse und Instrospektion. Um einen Prozess zu verstehen, betrachten wir ihn so lange bis wir ihn verstehen. Gute Software erklärt einen Prozess in einfachen Schritten.

Wir bauen Software aus Micro-Services, kleine Komponenten die eine kleine Aufgabe erledigen. Ein Service alleine ist nahezu nutzlos, aber wenn mehrere zusammenfließen - dann können sie komplexe Prozesse abbilden und verwalten.

Viele unserer Services sind Open-Source, so das sie von der Community geprüft und verbessert werden können. Das erlaubt uns transparente und effiziente Arbeit.

Wir ergänzen diese Services dann mit anderen Services die proprietär sind, und das geistige Eigentum ihrer Firma schützen. [Mehr erfahren?]

Wir möchten das unsere Kunden das Gefühl haben das dass was wir tun ganz einfach ist. Dann wissen wir das wir es richtig machen.



Inhaber & Entwickler





Wir nutzen unseren Blog um uns mit anderen Entwicklern auszutauschen. Die Softwareentwickler Community ist global, und selten Deutsch sprechend. Unsere Artikel sind deshalb alle auf Englisch verfasst. Wir laden sie trotzdem ein sich umzuschauen.

SSH Forward agent. Why it’s awesome


This is a realy quick but awesome one.

By just adding the line ForwardAgent yes to our server’s sshd_config file we can let it forward our SSH credentials to other servers it connects to.

This is specially awesome if you use the account to pull a repository or connect to a server that’s behind a NAT. Remember to use the -A flag to connect to your server to allow agent forwarding.

: 0 : ssh, sysops

PWA Manifest.json


The first step to create your own Progressive-Web-App is to create a file named “manifest.json”.

In this file you save all the relevant information about your PWA like the name, language, URL, icons and more.

{ "name": "My fancy PWA", "short_name": "My PWA", "lang": "en", "start_url": "/", "display": "standalone", "theme_color": "black", "icons": [ { "src": "icons/logo-192.png", "sizes": "192x192"` }, { "src": "icons/logo-512.png", "sizes": "512x512" }, { "src": "icons/logo-1024.png",` "sizes": "1024x1024"` } ] }

This file then just needs to be placed in your web-project and included into your application via a <link> tag in the “ section of your e.g. "index.php” file like: <link rel="manifest" href="manifest.json">

You can check if the manifest was loaded successfully by right-clicking on the website, select “Inspect-Element” and head over to the “Applications” tab.

Unfortunately not all browsers support all features of this standard, like Safari. If you run into issues you can check out “PWACompat”-library to improve the compatibility of your PWA.


: 0 : ssh, sysopsprogramming, pwa, php

PHPStan - Static analyzer for PHP


If you haven’t tried PHPStan yet, I can wholeheartedly recommend you do.

It extends your ability to find bugs in your code by a lot, pointing out potentially dangerous operations that may lead to issues on other places.

You may think that returning an int when you should return a bool is a minor issue. But it will most definitely cause issues in the future.

Using a static analyzer like this, vastly reduces the need for you to write unit tests for obvious things. You can focus on the issues that really matter and let a tool like PHPStan point out the obvious stuff to you.

: 0 : ssh, sysopsprogramming, pwa, phpphp, web development

Apache RewriteRules, what the dollar and the percent signs mean.


Earlier today I’ve been looking into migrating Spitfire’s folder structure from hiding the code inside a private /bin folder, to having a public folder. This is an approach that works very well for frameworks like Laravel and CakePHP.

I saw a bit of code inside of Laravel’s repository that I thought was really nice and I wanted to use it to make consistent URLs. It looks like this:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^ %1 [L,R=301]

(I actually closed the tab on github, so I wrote that from memory)

Basically, it removes the trailing slashes from URLs and makes them all consistent. When I started Spitfire I always thought that trailing slashes were kind of a requirement when you have no extension. But seeing this big framework moving away from it made me want to do it to - since I personally like how URLs look without the slash.

But when I was writing it, I wrote it like this:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule (.*)/$ $1 [L,R=301]

And this cause Apache to constantly crash on me. Which was rather disappointing. Googling around I learned that it actually makes a considerable difference if you have a $1 or a %1 in your code.

The $1 will match the result of the rewrite rule. Rewrite rules, to the best of my knowledge always act on the request_file and not the request_uri. This causes the browser to redirect like this:

> GET /Spitfire/hello/ HTTP/1.1
> Host: localhost
> User-Agent: insomnia/2020.5.2
> Accept: */*

< HTTP/1.1 301 Moved Permanently
< Date: Mon, 28 Dec 2020 16:46:56 GMT
< Server: Apache/2.4.41 (Debian)
< Location: http://localhost/var/www/Spitfire/public/

You can see that the web sever is now appending the complete path (including /var/www) to the URL. This obviously goes nowhere and will prevent the application from loading anything.

But, if we go back to the script that looks like this:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^ %1 [L,R=301]

The server is now replacing the match it found inside REQUEST_URI, which is indeed what we wanted. I hope you find this useful!

: 0 : ssh, sysopsprogramming, pwa, phpphp, web developmentapache, web development

Remove an item from your git repository when it’s .gitignored


We all have done this. We added a file to the repository, committed it and noticed it afterwards. Then we added it to .gitignore but git just won’t remove the file from the repository any more.

Here’s a quick and easy trick to remove a file from your git repo even though it’s gitignored:

git rm path/to/file --cached

If it’s a directory you wil have to add -r at the end of the command. The file will then be listed as deleted, and with a commit it will be gone.

Note: It seems that git has recently changed the behavior for handling files that have been added to .gitignore but are still in the repository. The previous version of git seemed to pretend the file did not exist, the newer versions will simply ignore .gitignore until the file is gone.

: 0 : ssh, sysopsprogramming, pwa, phpphp, web developmentapache, web developmentweb development, git


Wir haben Ihr Interesse geweckt oder Sie möchten uns einfach eine Frage stellen?
Gerne können Sie uns eine E-Mail verfassen oder sich telefonisch bei uns melden.

Wir freuen uns auf Ihre Anfrage!

Pelkovenstr. 148
80992 München