Skip to content

Redis - Zweite Instanz

Redis
  • Mein Plan stand ja fest, die Redis Datenbank auf einen anderen Server zu legen um beim Updaten von NodeBB nicht mehr so ein großes Risiko einzugehen, die DB mal aus versehen mit einem alten Stand, so wie letztens, zu überschreiben

    Ich nutze zwei NodeBB-Foren, das andere Forum dient mir eigentlich nur zum Testen, da hatte ich die DB schon ausgelagert. Heute war dieses Forum hier an der Reihe.

    Es hat etwas gedauert, bis ich eine funktionierende Konfiguration für den SystemD-Dienst gefunden hatte. Da gab es so einiges im Netz, was nicht funktionierte 😞 Interessanterweise braucht man sich die Arbeit gar nicht machen, das Redis Team hat das schon erledigt. Wenn man das Paket runterlädt und entpackt, findet man im Verzeichnis utils/ Vorlagen 🙂

    Die Vorlage heißt systemd-redis_multiple_servers@.service Ich habe den Namen angepasst.

    /etc/systemd/system/forum.service

    # example systemd template service unit file for multiple redis-servers
    #
    # You can use this file as a blueprint for your actual template service unit
    # file, if you intend to run multiple independent redis-server instances in
    # parallel using systemd's "template unit files" feature. If you do, you will
    # want to choose a better basename for your service unit by renaming this file
    # when copying it.
    #
    # Please take a look at the provided "systemd-redis_server.service" example
    # service unit file, too, if you choose to use this approach at managing
    # multiple redis-server instances via systemd.
    
    [Unit]
    Description=Redis data structure server - instance %i
    Documentation=https://redis.io/documentation
    # This template unit assumes your redis-server configuration file(s)
    # to live at /etc/redis/redis_server_<INSTANCE_NAME>.conf
    AssertPathExists=/etc/redis/redis_server_6380.conf
    #Before=your_application.service another_example_application.service
    #AssertPathExists=/var/lib/redis_forum
    PIDFile=/run/redis/redis-forum.pid
    ReadWritePaths=-/var/lib/redis_forum
    
    [Service]
    ExecStart=/usr/bin/redis-server /etc/redis/redis_server_6380.conf --supervised systemd --daemonize no
    Restart=always
    LimitNOFILE=10032
    NoNewPrivileges=yes
    #OOMScoreAdjust=-900
    #PrivateTmp=yes
    Type=notify
    TimeoutStartSec=infinity
    TimeoutStopSec=infinity
    UMask=0077
    User=redis
    Group=redis
      
    [Install]
    WantedBy=multi-user.target
    

    Damit ließ sich eine zweite Redis Datenbank starten. In der entsprechenden Konfigurationsdatei von Redis stand dann folgendes.

    /redis_server_6380.conf

    bind 10.10.1.100
    port 6380
    

    Die erste Redisdatenbank läuft auf

    bind 10.10.1.100
    port 6379
    

    Denkt bitte immer daran, die Redis Datenbank möglichst nicht ins Internet zu stellen! Passwort nicht vergessen! Möglichst private Adressen nutzen oder entsprechende Tunnel!

    Damit war der Teil erledigt. Noch die Firewall einstellen und gut. Das könnt ihr hier nachlesen.

    Im NodeBB-Forum dann die entsprechende Konfiguration anpassen.

    {
        "url": "https://DOMAIN",
        "port": "4567",
        "secret": "SECRET",
        "database": "redis",
        "redis": {
            "host": "10.10.1.100",
            "port": "6380",
            "password": "Passwort",
            "database": "0"
        }
    }
    

    Das NodeBB-Forum neustarten und fertig! Yeah! 🙂

    Meine beiden Foren laufen jetzt mit externen Redis-Datenbanken und zwar unabhängig. Jedes Forum hat seine eigen Datenbank! Nun kann ich auch mal ohne Datenverlust mal einen Snapshot zurück installieren, oder auch ein etwas älteres Backup, wenn es mal wieder klemmt.

  • FrankMF FrankM hat am auf dieses Thema verwiesen

  • Update 1.32.6

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    76 Aufrufe
    Niemand hat geantwortet
  • Fedora 40 - Updates

    Linux
    1
    0 Stimmen
    1 Beiträge
    159 Aufrufe
    Niemand hat geantwortet
  • Rest-Server v0.13.0 released

    Restic
    2
    0 Stimmen
    2 Beiträge
    294 Aufrufe
    FrankMF
    Download Rest-Server und installieren

    Im Github Repository den aktuellen Release suchen. Hier am Beispiel der aktuellen Version 0.13.0 (27.07.2024) Datei herunterladen

    wget https://github.com/restic/rest-server/releases/download/v0.13.0/rest-server_0.13.0_linux_amd64.tar.gz

    Die Datei entpacken

    tar -xf rest-server_0.13.0_linux_amd64.tar.gz

    Ins Verzeichnis wechseln

    cd rest-server_0.13.0_linux_amd64

    Wenn der Rest-Server läuft, dann muss man diesen erst mal stoppen.

    systemctl stop rest-server

    Danach kopiert man das File nach bin. Wer mag sichert vorher das alte File.

    cp rest-server /usr/local/bin

    Danach kann man den Rest-Server wieder starten.

    systemctl start rest-server

    Versionskontrolle

    root@rest-server:~# rest-server -v rest-server version rest-server 0.13.0 compiled with go1.22.5 on linux/amd64

    Die Hilfe vom Rest-Server

    root@rest-server:~# rest-server -h Run a REST server for use with restic Usage: rest-server [flags] Flags: --append-only enable append only mode --cpu-profile string write CPU profile to file --debug output debug messages -h, --help help for rest-server --htpasswd-file string location of .htpasswd file (default: "<data directory>/.htpasswd)" --listen string listen address (default ":8000") --log filename write HTTP requests in the combined log format to the specified filename (use "-" for logging to stdout) --max-size int the maximum size of the repository in bytes --no-auth disable .htpasswd authentication --no-verify-upload do not verify the integrity of uploaded data. DO NOT enable unless the rest-server runs on a very low-power device --path string data directory (default "/tmp/restic") --private-repos users can only access their private repo --prometheus enable Prometheus metrics --prometheus-no-auth disable auth for Prometheus /metrics endpoint --tls turn on TLS support --tls-cert string TLS certificate path --tls-key string TLS key path -v, --version version for rest-server Systemd

    Wer noch ein passendes systemd File benötigt.

    [Unit] Description=Rest Server After=syslog.target After=network.target [Service] Type=simple User=rest-server Group=rest-server ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /mnt/rest-server/<DOMAIN>/fullchain.pem --tls-key /mnt/rest-server/<DOMAIN>/key.pem --path /mnt/rest-server Restart=always RestartSec=5 # Optional security enhancements NoNewPrivileges=yes PrivateTmp=yes ProtectSystem=strict ProtectHome=yes ReadWritePaths=/mnt/rest-server [Install] WantedBy=multi-user.target
  • FrOSCon 18 - Bericht

    Linux
    2
    0 Stimmen
    2 Beiträge
    546 Aufrufe
    FrankMF

    Und man soll ja auch was mitnehmen....

    Screenshot_20230809_194620.png

    Das ist Semaphore, installiert in einer VM auf meinem Proxmox.

  • FreeOTP+

    Linux
    1
    0 Stimmen
    1 Beiträge
    412 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Debian Bullseye Teil 1

    ROCKPro64
    17
    0 Stimmen
    17 Beiträge
    2k Aufrufe
    FrankMF

    Durch diesen Beitrag ist mir mal wieder eingefallen, das wir das erneut testen könnten 😉

    Also die aktuellen Daten von Debian gezogen. Das Image gebaut, könnt ihr alles hier im ersten Beitrag nachlesen. Da die eingebaute Netzwerkschnittstelle nicht erkannt wurde, habe ich mal wieder den USB-to-LAN Adapter eingesetzt.

    Bus 005 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet

    Die Installation wollte ich auf einem NVMe Riegel installieren.

    Die Debian Installation durchgezogen und nach erfolgreicher Installation neugestartet. Und siehe da, ohne das man alles möglich ändern musste, bootete die NVMe SSD 🤓

    Eingesetzter uboot -> 2020.01-ayufan-2013......

    Die nicht erkannte LAN-Schnittstelle müsste an nicht freien Treibern liegen, hatte ich da irgendwo kurz gelesen. Beim Schreiben dieses Satzes kam die Nacht und ich konnte noch mal drüber schlafen. Heute Morgen, beim ersten Kaffee, dann noch mal logischer an die Sache ran gegangen.

    Wir schauen uns mal die wichtigsten Dinge an.

    root@debian:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: enx000acd26e2c8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff inet 192.168.3.208/24 brd 192.168.3.255 scope global dynamic enx000acd26e2c8 valid_lft 42567sec preferred_lft 42567sec inet6 fd8a:6ff:2880:0:20a:cdff:fe26:e2c8/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:20a:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5426sec preferred_lft 1826sec inet6 fe80::20a:cdff:fe26:e2c8/64 scope link valid_lft forever preferred_lft forever

    Ok, er zeigt mir die Schnittstelle eth0 ja an, dann kann es an fehlenden Treibern ja nicht liegen. Lässt dann auf eine fehlerhafte Konfiguration schließen. Nächster Halt wäre dann /etc/network/interfaces

    Das trägt Debian ein

    # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enx000acd26e2c8 iface enx000acd26e2c8 inet dhcp # This is an autoconfigured IPv6 interface iface enx000acd26e2c8 inet6 auto

    Gut, bei der Installation hat Debian ja nur die zusätzliche Netzwerkschnittstelle erkannt, folgerichtig ist die auch als primäre Schnittstelle eingetragen. Dann ändern wir das mal...

    # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug enx000acd26e2c8 allow-hotplug eth0 #iface enx000acd26e2c8 inet dhcp iface eth0 inet dhcp # This is an autoconfigured IPv6 interface #iface enx000acd26e2c8 inet6 auto iface eth0 inet6 auto

    Danach einmal alles neu starten bitte 😉

    systemctl status networking

    Da fehlte mir aber jetzt die IPv4 Adresse, so das ich einmal komplett neugestartet habe. Der Ordnung halber, so hätte man die IPv4 Adresse bekommen.

    dhclient eth0

    Nachdem Neustart kam dann das

    root@debian:/etc/network# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff inet 192.168.3.172/24 brd 192.168.3.255 scope global dynamic eth0 valid_lft 42452sec preferred_lft 42452sec inet6 fd8a:6ff:2880:0:6003:b0ff:fed6:dcb3/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 2a02:908:1260:13bc:6003:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr valid_lft 5667sec preferred_lft 2067sec inet6 fe80::6003:b0ff:fed6:dcb3/64 scope link valid_lft forever preferred_lft forever 3: enx000acd26e2c8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:0a:cd:26:e2:c8 brd ff:ff:ff:ff:ff:ff

    Fertig, eth0 läuft. Nun kann man den zusätzlichen Adapter entfernen oder halt konfigurieren, wenn man ihn braucht.

    Warum der Debian Installer die eth0 nicht erkennt verstehe ich nicht, aber vielleicht wird das irgendwann auch noch gefixt. Jetzt habe ich erst mal einen Workaround um eine Installation auf den ROCKPro64 zu bekommen.

  • Ubuntu Bionic - IP Adresse ändern

    Angeheftet Verschoben Linux
    1
    0 Stimmen
    1 Beiträge
    2k Aufrufe
    Niemand hat geantwortet
  • Node.js auf dem Raspberry3 B+ installieren

    RaspberryPi
    1
    0 Stimmen
    1 Beiträge
    790 Aufrufe
    Niemand hat geantwortet