Skip to content

georf.de

Open-Source, Rostock und mehr

Menu
  • Ägypten
  • Marokko
  • Datenschutzerklärung
  • Impressum
Menu

Geburtstagserinnerungen per E-Mail

Posted on 11. Februar 2019 by georf

Dieser Artikel gehört zur Serie Linux-Router mit vielen Funktionen selber einrichten.

Es gibt viele Lösungen, sich an Geburtstage seiner Freunde und Bekannte erinnern zu lassen. Um alle meine Anforderungen an einen solchen Erinnerungsservice zu erfüllen, habe ich mir selber was geschrieben. Folgende Funktionen sollten abgedeckt werden:

  • Einfache Weboberfläche
  • Geräteunabhängige Benachrichtigung (E-Mail)
  • Hinweis auf anstehende Geburtstage
  • Resourcenschonend
  • Heiminstallation um Daten zu Hause zu behalten

Die Umsetzung erfolgte schon vor Jahren auf einem Raspberry Pi. Später lief das über Jahre auf meinem CubieTruck und nun auf dem neuen Zotac. Auf dem neuem System sollte kein MySQL mehr laufen, somit wurde das System für PostgreSQL angepasst. Den Quellcode gibt es auf Github.

Die Webseite liefert ein statisches HTML mit Javascript aus, welches eine kleine PHP-API anspricht. Man kann Einträge anlegen, bearbeiten und löschen. Durch einen nächtlichen Cronjob wird eine PHP-CLI-Datei aufgerufen, die eine E-Mail mit allen heutigen Geburtstagskindern und den Terminen in den nächsten zwei Wochen schickt. Liegt an dem aktuellen Tag kein Geburtstag vor, so wird auch keine E-Mail verschickt.

Der Crontab-Eintrag sieht wie folgt aus, wobei man diesen für den Webseiten-Benutzer anlegen kann:

# m h  dom mon dow   command
30 5 * * * php /opt/birthdays/etc/report.php

Die PHP-Dateien müssen dann noch über einen Webserver ansprechbar gemacht werden. Ich nutze dafür PHP-FPM. Dieser wird dann über Nginx ausgeliefert. Hier die Nginx-Konfiguration mit einigen Erläuterungen in den Kommentaren:

server {
  # Eintrag reagiert nur auf HTTPS
  listen 443;
  ssl on;
  server_name geburtstage.georf.de;
  ssl_certificate /etc/letsencrypt/live/zotac.georf.de/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/zotac.georf.de/privkey.pem;

  # Webseite ist mit Passwort geschützt
  auth_basic "Wohnung";
  auth_basic_user_file /etc/nginx/htpasswd_wohnung;

  root /opt/birthdays;
  index index.html index.php;
  try_files $uri $uri/ =404;

  client_max_body_size 10M;
  fastcgi_buffers 64 4K;

  # Letsencrypt kann ohne Passwort zugreifen
  location /.well-known/acme-challenge/ {
    root /tmp/certbot/;
    auth_basic off;
  }

  # API-Anfragen werden an PHP-FPM weitergeleitet
  location ~ ^/api(/.*)$ {
    include fastcgi_params;
    fastcgi_param   REQUEST_URI   $1;
    fastcgi_param   DOCUMENT_URI  $1;
    fastcgi_param   SCRIPT_NAME   $1;
    fastcgi_param   PATH_INTO     $1;
    fastcgi_param SCRIPT_FILENAME $document_root/api/index.php;
    fastcgi_pass unix:/var/run/php-fpm-www.sock;
  }
}

Nun fehlt noch der Pool-Eintrag von PHP-FPM. Dazu nutze ich folgenden Inhalt:

[www]
user = www-data
group = www-data

listen = /var/run/php-fpm-www.sock
listen.owner = www-data
listen.group = nginx

pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s;
pm.max_requests = 500

access.log = /var/log/php-fpm.www.access.log
chdir = /
env[PATH] = /usr/local/bin:/usr/bin:/bin
Anlegen eines neues Geburtstages mit Jquery-UI
Übersicht aller eingetragenen Geburtstage

1 thought on “Geburtstagserinnerungen per E-Mail”

  1. Pingback: Linux-Router mit vielen Funktionen selber einrichten – georf.de

Schreibe einen Kommentar Antworten abbrechen

Du musst angemeldet sein, um einen Kommentar abzugeben.

Neueste Beiträge

  • Kärcher-Staubsauger-Reparatur
  • Hoftor – Steuerung mit Energiesparfunktion
  • Dualstack-Webserver hinter privater IPv4-Adresse
  • Hoftor mit WLAN und MQTT aufrüsten
  • LED-Stoppuhr für Wettkämpfe

Kategorien

  • Allgemein (37)
  • Deutsch (6)
  • IT (73)
    • BKampfBot (7)
    • Datenschutz (5)
    • Elektronik (6)
    • Informatik (18)
    • Linux (26)
    • Programmierung (31)
    • Webseite (25)
  • Reparatur (1)
  • Rezepte (18)
  • Rostock (21)

Schlagwörter

anonym Arduino Backup Bash Basteln BKampfBot C++ Codierung Datenbank Debian Dokumentation Drucker E-Mail Erbsen Fahrradweg Feuerwehrsport Git Github HttpClient Javascript JSON Kirschen Kuchen LEDs Linux Löten MySQL Nginx PHP Python Quark Quellcode Regex RegHex Reis Samba Scanner Server Sinnlos Trac Transmission Ubuntu Weihnachten Zotac ß
©2023 georf.de | Built using WordPress and Responsive Blogily theme by Superb