Gibt es günstigere Alternativen zu Hetzner?

Persönlich würde ich keine Dual-Container-Konfiguration auf etwas weniger als 8 GB RAM, 4 CPU-Kernen und 80 GB Festplatte betreiben, aber deine Erfahrungen und deine Situation können abweichen. Ich betreibe ein relativ aktives Forum auf dieser Hetzner-Infrastruktur mit etwa 300 aktiven Nutzern und irgendwo zwischen 70 und 100 DEU.

Bash-Skript zur Suche nach Hetzner-Servern

Ok, das könnte dir und anderen, die dies lesen, helfen. Es ist spezifisch für Hetzner, kann aber wahrscheinlich für andere VPS-Anbieter angepasst werden (frag mich nicht, das für dich zu tun).

Dies ist ein einfaches Bash-Skript, das alle 5 Minuten nach einem Hetzner-Server vom Typ CAX21 oder CX33 sucht und diesen als Thema in einer Kategorie deiner aktuellen Discourse-Instanz postet (du kannst das Skript jedoch für deine gewünschte Konfiguration ändern). Es funktioniert ähnlich wie eine RSS-Feed-Kategorie.

Du brauchst einen Hetzner-Token und einen Discourse-API-Schlüssel sowie die Kategorie-ID der Discourse-Kategorie, in der die Themen gepostet werden sollen. Das Skript kann so geändert werden, dass es einen Filter enthält, um auch den Standort anzugeben (dieser sucht nach allen Standorten).

Schritt 1: API-Tokens besorgen

  • Hetzner-API-Token: Gehe zu deiner Hetzner-Cloud-Konsole → wähle dein Projekt → klicke links auf Sicherheit → API-Tokens → Token generieren (Nur-Lesen ist ausreichend). Kopiere und speichere diesen Schlüssel.
  • Discourse-API-Schlüssel: Gehe zu deinem Discourse-Adminbereich → API → erstelle einen neuen Schlüssel (Systembenutzer, alle Endpunkte ist in Ordnung). Kopiere und speichere auch diesen.

Schritt 2: jq installieren

Melde dich per SSH auf deinem aktuellen Hetzner-Server an und installiere den jq-JSON-Parser (das dauert nur wenige Sekunden):

apt-get update
apt-get install jq -y

Schritt 3: Das Tracker-Skript einrichten

Erstelle auf deinem aktuellen Hetzner-Server das folgende Bash-Skript:

nano /root/hetzner_tracker.sh

Füge diesen Code ein (du musst deine tatsächlichen API-Schlüssel, deine Forum-URL und die Kategorie-ID, in der gepostet werden soll, einfügen).

#!/bin/bash

HETZNER_TOKEN="put_your_new_hetzner_token_here" 
DISCOURSE_URL="https://your-forum.com"
DISCOURSE_USER="system"
DISCOURSE_API_KEY="put_your_new_discourse_api_key_here"
CATEGORY_ID=XX # deine Discourse-Forum-Kategorie-ID

# 1. Frage Hetzner nach den Servermodellen und hole NUR die IDs für die günstigen 8-GB-Modelle (CAX21 oder CX33)
TYPES_JSON=$(curl -s -H "Authorization: Bearer $HETZNER_TOKEN" "https://api.hetzner.cloud/v1/server_types")
TARGET_IDS=$(echo "$TYPES_JSON" | jq -c '[.server_types[] | select(.name == "cax21" or .name == "cx33") | .id]')

# 2. Frage Hetzner nach den Echtzeit-Beständen aller Rechenzentren.
DC_JSON=$(curl -s -H "Authorization: Bearer $HETZNER_TOKEN" "https://api.hetzner.cloud/v1/datacenters")

# 3. Prüfe ALLE Standorte, um zu sehen, ob unsere spezifischen Modelle in der Liste „verfügbar“ stehen.
MATCHES=$(echo "$DC_JSON" | jq -r --argjson targets "$TARGET_IDS" '
  .datacenters[] | 
  .location.name as $loc |
  .name as $dc |
  .server_types.available[] | 
  select(. as $avail | $targets | index($avail)) | 
  "- Standort: \($loc | ascii_upcase) (\($dc)) - Servermodell-ID: \(.)"
')

# 4. Wenn wir eine Übereinstimmung gefunden haben, erstelle den Discourse-Beitrag und sende ihn!
if [ -n "$MATCHES" ]; then
  
  RAW_TEXT="Ein günstiger 8-GB-Server (CAX21 oder CX33) ist jetzt verfügbar!

**Gefundene Übereinstimmungen:**
$MATCHES

[Gehe jetzt zur Hetzner-Konsole!](https://console.hetzner.cloud/)"

  PAYLOAD=$(jq -n --arg title "🚨 HETZNER-ALARM: 8-GB-Server auf Lager!" \
                   --arg raw "$RAW_TEXT" \
                   --argjson cat "$CATEGORY_ID" \
                   '{title: $title, raw: $raw, category: $cat}')

  curl -s -X POST "$DISCOURSE_URL/posts.json" \
    -H "Api-Key: $DISCOURSE_API_KEY" \
    -H "Api-Username: $DISCOURSE_USER" \
    -H "Content-Type: application/json" \
    -d "$PAYLOAD"

  # Deaktiviere das Skript nach dem Absenden, damit es dein Forum nicht spamt
  chmod -x "$0"
fi

Speichere die Datei (Strg+O, Enter, Strg+X) und mache sie dann ausführbar:

chmod +x /root/hetzner_tracker.sh

Schritt 4: Das Skript automatisieren

Öffne eine Crontab-Konfigurationsdatei:

crontab -e

Füge diese Zeile ganz am Ende des vorhandenen Codes hinzu:

*/5 * * * * /root/hetzner_tracker.sh

Wie es funktioniert:

Alle 5 Minuten fragt dein Server Hetzner leise: „Haben Sie heute verfügbare Server?“

Wenn Hetzner ja sagt, verwendet das Skript sofort deine Discourse-API, um ein brandneues Thema in deiner angegebenen Kategorie zu erstellen, und wenn du Discourse so eingerichtet hast, dass du über neue Themen benachrichtigt wirst, sollten deine E-Mail und/oder dein Telefon vibrieren.

Hier ist ein Beispielthema aus der Zeit, als ich nach einem bestimmten 8-GB-CPX31-Server in den USA suchte.

Sobald es erfolgreich gepostet wurde, deaktiviert das Skript seine eigenen Ausführungsberechtigungen (chmod -x), damit es dein Forum nicht mit Hunderten von Beiträgen spamt, während der Server auf Lager ist.

Keine Sorge, ich habe das viele Male verwendet, und du wirst nicht ratelimited.