How to deploy your static website easily with gitlab

For some very simple projects we wanted ensure, that we can use git as we do it in nearly every project.

Prerequisites:

  • Project managed with Git
  • Gitlab CE / EE

Requirements:

  • Branch based deployment
  • Master branch should be published for production
  • Other branches should be deployed as well, but in other folder like builds/{branch}
  • Website users should not see the subfolders if they visit the website

Basicly we manage our projects like in git flow, but any branch based way of using git should be sufficient.

  1. Create a new Projekt in Gitlab
  2. Add your files to Git-Repository
  3. Add pscss to your project or install it centrally on your server git server, alternatively you can also use npm with gulp to compile the scss files to css files
  4. Define the Build Variable CREDENTIALS in the Settings of the Projekt
    2016-02-11_06-44-33
  5. Add the following .gitlab-ci.yml file
    stages:
      - deploy
    publishToMaster:
      stage: deploy
      script:
        - Resources/Private/tools/bin/pscss Resources/Private/codeon/scss/style.scss > Resources/Public/css/style.css
        - lftp -e "mirror --exclude ^\.git.* --exclude ^Resources/Private/ --exclude \.gitlab-ci.yaml -eRv  $CI_PROJECT_DIR builds/$CI_BUILD_REF_NAME; quit;" sftp://$CREDENTIALS
      tags:
        - local

    To get the full functionality you should change the pathes in the .gitlab-ci.yml file or follow the file structure suggested by TYPO3.Flow.

Additionally we use npm with gulp to compile the files locally. On the Server we often use pscss to compile the files.

The result of this recipe is the following folder structure on the on the webserver:

ftp-root
  builds
    master
    development
    otherBranch
    ...

Now we need to add two more files

  1. .htaccess to redirect the requests to the ftp-root / document root folder into the builds/master folder
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.*?)/?$ /builds/master/$1 [L]
    RewriteRule ^$ /index.html [R=301,L]
  2. robots.txt which includes directives to avoid indexing the folders, which are not master
    User-agent: *
    Disallow: /builds/

 

EXT:Webdav for TYPO3 CMS

Webdav example in OSXI’ve started to migrate my webdav extension to the CMS 6.x branch and i’d like to get some feedback.

What it does:
provide webdav access to your TYPO3 CMS installation also piping FAL storages (local and remote as API is used)

If you never heard about FAL it the short form of „file abstraction layFAL Webdav pluginer“ this is used to provide access to files stored in any type of storage, can be locally, ftp, dropbod, webdav, whatever.

Using this webdav extension you can unify the access to all these types of storages through the webdav protocol which uses FAL as a backend.

FAL drivers:

Current Status:

  • What i need:
    testers providing valuable feedback, if the extension is working, and if there are problems.
  • Known problems:
    moving files between storages is not supported.
  • Where to get it:
    https://github.com/kaystrobach/TYPO3.webdav

Please post problems / issues / features in the issue section on github.

Thank you for participating

 

Usefull PHPStorm Plugins for TYPO3 FLOW and TYPO3 CMS

Today i just publish a short Post.

Have a look into these PHPStorm Plugins – they are great 😀

Warum 1und1 das Potential hat glückliche DSL Kunden zu haben

Sicher werdet ihr jetzt denken, „wow noch ein Werbetext von 1und1“, leider muss ich da enttäuschen. Ich will in den folgenden Zeilen, nach einem DSL Ausfall bei mir, analysieren, was besser laufen könnte, und das ganze bei minimalem Mitteleinsatz.

Hardware

Im Gegensatz zu den meisten großen Providern liefert 1und1 AVM Produkte als Router aus, diese werden unter dem Namen „1und1 Homeserver“ (7390) oder „1und1 Homeserver+“ (7490) versendent.

Zu diesen Geräten gibt es je nach Anschluss mit der Sofortstart Option noch einen UMTS Stick (XS Stick P14v) dazu. Damit kann man als Kunde direkt nach dem Auspacken online gehen, aus Erfahrung kann ich sagen, super Idee.

Vertrag

1und1 versucht während des Vertragsabschlusses, unter einer Kundennummer bei Abschluss eines VDSL50 Vertrages, 3 Verträge / Vertragsoptionen zu platzieren:

  1. VDSL 50
  2. Sofortstart (kostenfrei)
  3. eine Simkarte mit 100MB Datenvolumen und freier Telefonie zu 1und1

Mit genau diesem Ansatz verschafft sich 1und1 meines Erachtens die Möglichkeit die glücklichsten Kunden zu erhalten, da mehrere unabhängige Verbindungen zur Verfügung stehen. (Der Sofortstart verfällt mit Aktivierung des DSL Anschlusses).

???

Das Warum ist einfach zu erklären.

  1. Der Nutzer hat 2 Unabhängige Verbindungswege ins Internet (VDSL und UMTS)
  2. Die Fritzbox kann beide Verbindungen nutzen
  3. Die Fritzbox kann im DSL Fehlerfall automatisch auf den UMTS Stick umschalten und diesen als Fallbak verwenden
  4. Die Fritzbox kann die VoIP-Verbindung via UMTS vermeiden (siehe 5.)
  5. Im 1und1 Kundencenter kann man die VoIP Nummern auf die Handynummer des Sticks weiterleiten, wenn diese nicht registriert (online / erreichbar) sind

Mit diesem Ausfall Szenario sind folgende Fälle möglich:

DSL Funktioniert

  • Internetsurfen ist normal möglich
  • Nutzer ist via VoIP erreichbar
  • Nutzer ist via 1und1 Handynummer erreichbar
  • Nutzer kann kostenlos zu 1und1 und ins Festnetz telefonieren
  • Die abgehende Nummer kann jede VoIP und die Handynummer des Sticks sein

DSL ist nicht verfügbar, nur UMTS

  • Internetsurfen ist möglich (Achtung, derzeit nur 100MB …)
  • Nutzer ist nicht, via VoIP erreichbar, aufgrund der Weiterleitung klingeln die Telefone trotzdem
  • Nutzer ist via 1und1 Handynummer erreichbar
  • Nutzer kann, via UMTS / GSM,  kostenlos zu 1und1 und ins Festnetz telefonieren
  • Die abgehende Nummer ist die Handynummer des Sticks
  • Router ist nicht von außen erreichbar (auch kein VoIP, Portfreigaben), da Vodafone eine Firewall vor allen Geräten platziert

Fazit

Technisch ist alles vorbereitet, damit Kunden im Fehlerfall nahezu unterbrechungsfrei das Internet nutzen können, derzeit ist das Hauptproblem das winzige Volumen, dass zu dem Stick dazugehört.

Durch die zusätzliche Internetverbindung sollte auch die Diagnose für 1und1 einfacher sein, da selbst mit gestörtem DSL immernoch ein Zugriff auf die Fritzbox und Prüfung der Konfiguration möglich ist.

An dieser Stelle möchte ich den Support Mitarbeitern von 1und1 und dem Techniker der Telekom danken, dass mein VDSL Anschluss wieder funktioniert. Leider hat es von Samstag Abend bis Mittwoch Abend gedauert :(

Setup Jabber notifications for Jenkins (Continuous Integration Server)

If you ever wondered how to tell Jenkins to send you Jabber messages to Google Talk here is how:

  1. create a google profile for you jenkins server
  2. login as this user, make a g+ profile (do not fill to much information)
  3. login into Jenkins and install the Jabber Plugin (Manage Jenkins -> Plugins), do not forget the dependencies
  4. go to Manage -> General and setup the Jabber connection (as in the image below
  5. go to the job configuration and set the recipient
  6. you’re done