Skip to content

Restic UI - Webinterface for backup tool restic [MongoDB]

Verschoben Restic UI (MongoDB)
2 1 508
  • Ich hatte ja im Jahr 2024 Euch mein Tool vorgestellt.

    Re: Vorstellung Restic UI Flask

    Seitdem hat sich eine Menge getan. Die Welt bleibt ja auch nicht stehen, so muss man halt auch Entscheidungen treffen. Eine dieser Entscheidungen betraf das Backend, Redis ist raus geflogen und nun nutze ich MongoDB. Auch nicht mein absoluter Traum von Open Source, aber man kann halt nicht alles haben. Es sollte schon eine NoSQL Datenbank sein.

    Außerdem hat MongoDB ein schönes UI für den Desktop, hört auf den Namen MongoDB Compass. Sehr gut zum Programmieren geeignet, da ich ja doch ständig irgendwo was ändere 🙂

    So sieht das UI zu Weihnachten 2024 aus.

    7d384c16-8358-4348-b907-bb9278052d7d-grafik.png

    Was gibt es Neues?

    Als Erstes habe ich eine kleine Übersicht eingeführt. Diese ist jetzt um zwei Elemente erweitert.

    • S3
    • Last Update

    Und die Felder Source und Repository haben die Positionen getauscht. ( Logik, Quelle -> Ziel gefiel mir besser) Außerdem ist Repository jetzt so aufgebaut, das es auch für REST und S3 Backups den Zielpfad anzeigt.

    Und dann sind wir schon bei der wichtigsten Neuerung, den S3 Backups. Da Hetzner, das jetzt endlich für alle verfügbar gemacht hat, habe ich das natürlich direkt ausprobiert. Aber womit fülle ich das? Meine ersten Test hatte ich auf der Konsole gemacht, da fiel mir doch ein, das Restic das nativ unterstützt 🙂

    Somit musste ich das nur in mein kleines Tool einfügen. Ein paar Tage später funktionierte das dann so wie es sollte und ich konnte mein erstes Backup erfolgreich anlegen. Juhu.

    Damit hat das Tool jetzt drei Backup Möglichkeiten

    • Lokales Backup
    • REST Backup (REST Server von Restic)
    • S3

    Außerdem hatte ich , als ersten Versuch, ein Login / Logout hinzugefügt. Man muss sich also erst einloggen, bevor man auf die Daten der Backups zugreifen kann. Das funktioniert, ist aber noch nicht final. z.B. fehlt noch das erste Anlegen eines Nutzers komplett.

    Add Backup

    Viel Arbeit habe ich hier reingesteckt.

    23370c88-df37-4b5e-97ff-a836c1d92f42-grafik.png

    Man bekommt auch nur die Felder angezeigt, die zu dem entsprechenden Backup auch Sinn machen.

    Edit Backup

    Ebenso beim Editieren eines Backups.

    66071882-6713-402c-b57b-95df6f01418b-grafik.png

    Login / Logout

    79cbc903-e18a-413d-8384-23310f311651-grafik.png

    Hier kann man den User und das Passwort ändern. Das gefällt mir aber noch nicht, habe ich da eigentlich nur schnell rein gecodet zum Testen. Mal sehen, man muss ja auch 2025 noch Aufgaben haben 😉

    ca93d891-40a4-4147-aa14-4964e473d8da-grafik.png

    S3 Praktisches Beispiel

    Init

    Das angelegte S3 Test Projekt muss initialisiert werden. Im Menü kann auch nur diese Funktion ausgewählt werden. In der Übersicht kann man auch erkennen, das Init nicht gesetzt ist.

    63a89be4-127c-4e9e-9ce0-2de59e9966e8-grafik.png

    Wenn ich nun auf Init klicke, taucht nach kurzer Zeit folgendes Fenster auf. Es enthält die Original Ausgabe des Restic Tools.

    15e0e755-2ff8-4e38-8584-80365bcfd5ea-grafik.png

    Backup

    Nach dem Klick auf Backup und kurzer oder längerer Wartezeit, erscheint folgendes Fenster.

    9c06976e-4887-4a5d-b33d-d1484884fe00-grafik.png

    Alle anderen Funktionen arbeiten auf ähnliche Art und Weise. Ich will ja heir nicht langweilen.

    Zum Schluss noch, wie es auf Hetzner aussieht.

    Hetzner

    Den Inhalt des Ordners kann man sich bei Hetzner ansehen.

    6cbf7a9a-b703-4e58-b86a-802014fc8df7-grafik.png

    Und das Tolle an Restic ist, alle Daten sind AES256 verschlüsselt. Ein ordentliches Passwort vorausgesetzt, sollte verhindern, das andere Menschen die versehentlich in den Besitz der Dateien kommen irgendwas damit anfangen können 🙂

    So sieht das dann in der Praxis aus.

    2c85a3ab-6ed1-44df-97a0-3df9334a0f93-grafik.png

    Video

    Ausblick

    Aktuell ist das gitlab Repository auf Privat gestellt. Ob sich das ändert, weiß ich aktuell noch nicht. Bin immer noch an meiner Code Qualität am Arbeiten usw.

    Sollte aber jemand echtes Interesse an dem Projekt haben, werden wir dafür auch eine Lösung finden.

    Da ich das Projekt auch produktiv nutze, werde ich jetzt wohl alles auf S3 verlagern.

  • FrankMF FrankM verschob dieses Thema von Restic UI am
  • Ich habe den Sonntag mal genutzt um ein wenig was einzubauen. Einmal habe ich mit datatables.net die Tabelle etwas funktionaler gestaltet.

    00a95363-1f41-4bbf-884a-34f21aea81e4-grafik.png

    Man kann nun suchen, sortieren und wenn man mehr als 10 Datenpunkte hat, hat die Tabelle auch Pagination. Ein nettes Projekt, macht einiges einfacher 👍

    Das nächste, ich hatte es im Video ja kurz erwähnt, mir fehlte ja noch die Restore Funktion von Restic. Ok, ist jetzt auch drin.

    Da die Benutzerverwaltung mittlerweile komplett eingebaut ist, werde ich demnächst meine Test Datenbanken und alles was damit zu tuen hat, aus dem Code entfernen. Brauch ich jetzt nicht mehr. Habe jetzt zwei Benutzer, einen Produktiven und einen zum Testen.

    Langfristig steht auch noch eine zweite Sprache auf dem Zettel. Aber, dafür muss ich Lust haben, das Thema juckt nicht so richtig 😉

  • Manjaro Btrfs Snapshot auswählen

    Linux manjaro linux
    1
    2
    0 Stimmen
    1 Beiträge
    409 Aufrufe
    Niemand hat geantwortet
  • Redis ConnectionPool

    Redis redis linux ki-generiert
    2
    0 Stimmen
    2 Beiträge
    320 Aufrufe
    FrankMF
    Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch. https://chat.openai.com/share/b10fdadc-2c9b-404a-bc99-c883d110d6af
  • Portfolio - mein kleines Flask Projekt

    Python3 python flask bootstrap ki-generiert
    5
    0 Stimmen
    5 Beiträge
    363 Aufrufe
    FrankMF
    Hab ChatGPT nochmal nach der Installation auf einem Production Server befragt. ChatGPT Certainly! Here's a short example of the steps you can follow to deploy a Flask application on a production server using Nginx and Gunicorn: Prepare your server: Set up a server (e.g., using a cloud provider like AWS, DigitalOcean, or a dedicated server) and ensure it has a clean, up-to-date installation of a Linux distribution (e.g., Ubuntu or CentOS). Install required software: Install necessary software packages on your server. You'll need Python, pip (Python package manager), Nginx, and Gunicorn. You can use your distribution's package manager (e.g., apt for Ubuntu or yum for CentOS) to install these dependencies. Deploy your Flask application: Copy your Flask application code and any required dependencies to your server. Set up a virtual environment (optional but recommended): Create a virtual environment for your Flask application to isolate its dependencies. You can use venv or virtualenv for this purpose. Install Flask and any required Python packages within your virtual environment: pip install flask Test your Flask application: Ensure your Flask application runs correctly within your server's virtual environment. Configure Gunicorn: Create a Gunicorn configuration file (e.g., gunicorn_config.py) to specify the settings for running your Flask application. Here's a simple example: workers = 4 # Number of Gunicorn worker processes bind = '0.0.0.0:8000' # The address and port Gunicorn should listen on Start Gunicorn: Start Gunicorn with your Flask application: gunicorn -c gunicorn_config.py your_app:app Configure Nginx: Create an Nginx server block (often located in /etc/nginx/sites-available) to define how Nginx should handle incoming requests. Here's a simplified example: server { listen 80; server_name your_domain.com www.your_domain.com; location / { proxy_pass http://127.0.0.1:8000; # Pass requests to Gunicorn proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } Enable the Nginx server block and restart Nginx: sudo ln -s /etc/nginx/sites-available/your_config /etc/nginx/sites-enabled/ sudo nginx -t # Test Nginx configuration sudo systemctl restart nginx Configure your DNS: Point your domain name to your server's IP address. Secure your server (optional but recommended): Set up SSL/TLS certificates for your domain to enable HTTPS. You can use Let's Encrypt for free SSL certificates. Monitor your application: Set up monitoring tools and logs to keep track of your application's performance and troubleshoot any issues. These are the basic steps to deploy a Flask application on a production server with Nginx and Gunicorn. Please note that this is a simplified example, and there are many additional considerations, such as database configuration, security, and optimization, depending on your specific application and requirements. It's also important to keep your server and software up to date and follow security best practices to ensure the stability and security of your production environment. Das werde ich doch mal ausprobieren
  • Nextcloud - Collabora Installation Debian Bookworm 12

    Nextcloud nextcloud collabora linux
    2
    3
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF
    Ok, ich war leider nicht in der Lage den CODE-Server hinter einem Proxy zu installieren. Das CODE-Team scheint Docker zu lieben und das andere nur am Rande zu machen. Ohne Liebe Da ich extrem lange Ladezeiten hatte und die Software insgesamt nicht den Eindruck machte, das man das gerne produktiv auf einem Server nutzen möchte, habe ich den Server eben wieder gelöscht. Jetzt fehlt mir leider, die deepl.com Anbindung, aber das kann man ja auch über die Webseite nutzen. Ich nutze jetzt wieder den eingebauten CODE-Server, der eigentlich ein App-Image ist. [image: 1694677466020-28c41010-5ce1-4f7c-89d5-1c9b253011d0-grafik.png] Der klare Vorteil, es läuft incl. Dokumenten Freigabe Nicht vergessen, unter Allow list for WOPI requests kommen die Server Adressen des Nextcloud-Webservers rein! [image: 1694677621827-c1a06c2c-86b5-4750-a062-7ba9d8dd8253-grafik.png]
  • Debian 13 - Trixie

    Linux linux debian
    1
    0 Stimmen
    1 Beiträge
    187 Aufrufe
    Niemand hat geantwortet
  • Python - Dict -> JSON und umgekehrt

    Python3 python
    1
    0 Stimmen
    1 Beiträge
    344 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Client installieren

    Wireguard linux wireguard
    3
    0 Stimmen
    3 Beiträge
    771 Aufrufe
    FrankMF
    Ich kann dir nicht ganz folgen. Mein Wireguard Server ist eine VM im Netz. Mein Smartphone baut zu diesem eine Verbindung auf und ich habe mal eben nachgeschaut, was da so geht. Mein Smartphone ist aktuell im meinem WLan angemeldet. [image: 1586458461693-6e0016dc-7e11-41e1-bba2-e52a3f1348df-image-resized.png] iperf3 -s -B 10.10.1.1 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44246 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44248 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.98 MBytes 41.7 Mbits/sec [ 5] 1.00-2.00 sec 5.52 MBytes 46.3 Mbits/sec [ 5] 2.00-3.00 sec 4.80 MBytes 40.3 Mbits/sec [ 5] 3.00-4.00 sec 4.17 MBytes 35.0 Mbits/sec [ 5] 4.00-5.00 sec 5.04 MBytes 42.3 Mbits/sec [ 5] 5.00-6.00 sec 5.43 MBytes 45.6 Mbits/sec [ 5] 6.00-7.00 sec 5.75 MBytes 48.3 Mbits/sec [ 5] 7.00-8.00 sec 5.70 MBytes 47.8 Mbits/sec [ 5] 8.00-9.00 sec 5.73 MBytes 48.1 Mbits/sec [ 5] 9.00-10.00 sec 5.65 MBytes 47.4 Mbits/sec [ 5] 10.00-10.04 sec 206 KBytes 46.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.04 sec 53.0 MBytes 44.3 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44250 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44252 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.80 MBytes 40.2 Mbits/sec 0 253 KBytes [ 5] 1.00-2.00 sec 14.7 MBytes 123 Mbits/sec 181 379 KBytes [ 5] 2.00-3.00 sec 9.68 MBytes 81.2 Mbits/sec 58 294 KBytes [ 5] 3.00-4.00 sec 8.88 MBytes 74.5 Mbits/sec 1 227 KBytes [ 5] 4.00-5.00 sec 7.76 MBytes 65.1 Mbits/sec 0 245 KBytes [ 5] 5.00-6.00 sec 8.88 MBytes 74.5 Mbits/sec 0 266 KBytes [ 5] 6.00-7.00 sec 9.81 MBytes 82.3 Mbits/sec 0 289 KBytes [ 5] 7.00-8.00 sec 7.82 MBytes 65.6 Mbits/sec 35 235 KBytes [ 5] 8.00-9.00 sec 5.59 MBytes 46.9 Mbits/sec 4 186 KBytes [ 5] 9.00-10.00 sec 6.64 MBytes 55.7 Mbits/sec 0 207 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 84.6 MBytes 70.6 Mbits/sec 279 sender ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ^Ciperf3: interrupt - the server has terminated Im zweiten Teil ist der Wireguard Server der Sender. Bis jetzt hatte ich eigentlich nie Probleme, auch nicht unterwegs. Aber, ich gehe davon aus, das ich dich nicht 100% verstanden habe
  • Restic - Ein Backupkonzept - Automatisieren!

    Verschoben Restic linux restic
    1
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet