Skip to content

Kopia - Aufbau und Funktionsweise

Kopia
  • Guten Morgen, heute möchte ich mal ein wenig aufzeigen, wie https://kopia.io/ aufgebaut ist und funktioniert. Ich hatte da am Anfang so ein wenig Probleme mit 🙂

    Client

    Software

    Was gibt es?

    09a96182-795d-4eef-9b09-c52cfaa4f54f-image.png

    kopia CLI

    Man kann bei kopia, wie bei vielen Programme, den Sourcecode runterladen und das Tool selber bauen. Wir können uns aber auch ein passendes Debian-Paket installieren.

    wget  https://github.com/kopia/kopia/releases/download/v0.6.3/kopia_0.6.3_linux_amd64.deb
    dpkg -i kopia_0.6.3_linux_amd64.deb
    

    Dazu gibt es auch noch die Möglichkeit sich die Downloadquellen in APT einzubauen. Das macht auf meinem System leider einen Fehler, habe ich den schon eingereicht?

    Heute kurz im Slack mit Jarek drüber gechattet, Problem gelöst 🙂 Das war das Problem.

     Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://packages.kopia.io/apt stable InRelease« die Architektur »i386« nicht unterstützt.
    

    Jarek hat das auf seiner Seite gefixt.

    Aktuell empfehle ich die Installation des .deb Paketes, geht einfach und problemlos.

    Kopia-UI

    desktop app for all supported platforms: Windows, macOS, and Linux

    Bildschirmfoto vom 2020-08-29 10-35-47.png

    Hier hat man auch wieder viel Auswahl. Ein .deb Paket oder ein AppImage z.B. Beide funktionieren sehr gut.

    repo connect

    Was bei mir etwas gedauert hat, war das Verständnis wie kopia die Verbindung z.B. zu einem Kopia Repository Server verarbeitet. Das ist aber, wenn man es mal verstanden hat, relativ einfach.

    Ich connecte so, zu meinem Server.

    kopia repo connect server --url=https://DOMAIN.de:51515/ --override-username=USER --override-hostname=HOSTNAME
    

    Was passiert dann?

    kopia legt folgende Dateien unter /home/USER/.config/kopia an.

    26f93b1d-0765-44f2-a0aa-f09318160379-image.png

    repository.config

    {
      "apiServer": {
        "url": "https://DOMAIN.de:51515",
        "serverCertFingerprint": ""
      },
      "hostname": "HOSTNAME",
      "username": "USER"
    }
    

    Gut, er speichert die Login-Daten hier ab.

    repository.config.kopia-password

    XXXHHHSSSBBBDBBDJDJDJJ
    

    Das Passwort zum Login auf dem Server in gehashter Form.

    repository.config.update-info.json

     {"nextCheckTimestamp":"2020-09-02T16:41:05.804210493+02:00","nextNotifyTimestamp":"2020-08-26T17:41:07.10204226+02:00","availableVersion":"v0.6.3"}
    

    Die Daten, wenn man ein automatisches Backup angelegt hätte.

    Zusammenfassung

    Nach der erfolgreichen Ausführung von kopia repo connect server werden die Daten im o.g. Verzeichnis gespeichert. Das heisst, man muss das danach nicht wieder machen! Kopia kennt jetzt den Login und könnte jederzeit ein

    kopia snapshot create $HOME
    

    ausführen. Ich habe mich beim Testen immer gefragt, wo hat denn das UI die Login-Daten her. Ok, nun weiß ich das, das UI schaut in den abgelegten Daten nach und verbindet sich automatisch mit dem Server!

    Wichtig! Bei einem

    kopia repo disconnect
    

    werden diese Dateien wieder gelöscht!

    Damit ist nun klar, wie das funktioniert. Somit kann man auch sehr einfach das UI Interface nutzen, was keine eingebaute Funktion zum Verbinden mit dem Repository Server hat. Es hat auch noch ein paar andere Unzulänglichkeiten, dazu gibt es aber einen Issue, der auch abgearbeitet ist. Sollte im nächsten Release drin sein.

    Man verbindet zur Zeit über das CLI zum Server und kann danach das UI nutzen 😉

    Server

    Auf dem Server findet man den selben Aufbau.

    drwx------ 2 kopia kopia 4.0K Aug 29 10:16 .
    drwx------ 4 kopia kopia 4.0K Aug 23 08:39 ..
    -rw------- 1 kopia kopia  392 Aug 24 18:14 repository.config
    -rw------- 1 kopia kopia   64 Aug 24 18:14 repository.config.kopia-password
    -rw------- 1 kopia kopia    0 Aug 22 10:10 repository.config.mlock
    -rw------- 1 kopia kopia  143 Aug 24 17:06 repository.config.update-info.json
    

    repository.config

    {
      "storage": {
        "type": "filesystem",
        "config": {
          "path": "/home/kopia/data",
          "dirShards": null
        }
      },
      "caching": {
        "cacheDirectory": "../../.cache/kopia/3d45987959a6d07f",
        "maxCacheSize": 5242880000,
        "maxMetadataCacheSize": 5242880000,
        "maxListCacheDuration": 600
      },
      "hostname": "HOSTNAME",
      "username": "kopia"
    }
    

    repository.config.kopia-password

    Das gehashte Passwort zum Filesystem.

    repository.config.mlock

    Leer. Bin mir nicht ganz sicher, wird vermutlich nur temporär benutzt (lock)

    repository.config.update-info.json

    {"nextCheckTimestamp":"2020-08-25T17:06:04.915833327+02:00","nextNotifyTimestamp":"2020-08-25T17:06:04.915833878+02:00","availableVersion":""}
    

    Auch hier wieder die Daten für einen automatischen Snapshot, wenn man das nutzt.

    Logfile

    Ihr sucht das Logfile des Servers?

    /home/kopia/.cache/kopia
    

    Fazit

    Sehr logisch aufgebaut, wenn man es mal verstanden und durchschaut hat. Das UI sollte sich mit dem nächsten Release auch besser nutzen lassen. Man kann aber aktuell problemlos Snapshots erstellen, was ich aktuell zur Zeit jeden Tag auch mache,

    Aufpassen! Produktiv einsetzen sollte man sich noch sehr gut überlegen, es gibt da ein Problem was dem Coder aufgefallen ist, der nicht so gut ist.

    Aktuell nutze ich weiterhin Restic, fahre aber zweigleisig, da mir Kopia sehr gut gefällt. Vor allen Dingen das UI macht es sehr einfach einen guten Überblick über seine Backups zu behalten.

  • Update 1.31.0 released

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    151 Aufrufe
    Niemand hat geantwortet
  • NodeBB - v3.7.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    101 Aufrufe
    Niemand hat geantwortet
  • Semaphore - Installation & Anwendung

    Verschoben Ansible
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF

    Ich parke das mal hier, damit ich das nicht noch mal vergesse. Hat mich eben mal wieder eine Stunde gekostet 😞

    /etc/ansible/ansible.cfg

    [defaults] host_key_checking = False

    Edit -> https://linux-nerds.org/topic/1493/ansible-host_key_checking

  • PCIe WIFI6 Karte

    Linux
    4
    0 Stimmen
    4 Beiträge
    270 Aufrufe
    K

    alles gut. wenn zeit und laune, danke

  • Nextcloud Talk

    Nextcloud
    5
    0 Stimmen
    5 Beiträge
    823 Aufrufe
    FrankMF

    All I needed to do was setting the permissions to 744 for the archive directory and the symlinks resolved correctly after a reboot of coturn

    My turnserver installation on Debian runs as the user turnserver and not as root, nor is the user turnserver in any group owning the letsencrypt directory.
    If your turnserver does run as root, it should be fine just adding execute permissions.

    I hope this helps some of you.
    Quelle: https://help.nextcloud.com/t/lets-encrypt-symlink-breaks-coturn-configuration/70166

    Was zum Testen die Tage....

  • Proxmox - Offline

    Linux
    1
    0 Stimmen
    1 Beiträge
    259 Aufrufe
    Niemand hat geantwortet
  • Wenn dir der Redis-Server flöten geht....

    Verschoben Redis
    3
    0 Stimmen
    3 Beiträge
    556 Aufrufe
    FrankMF

    So, nach einer kleinen Pause und ein wenig nachdenken ist mir doch noch was eingefallen 😉

    Backports! Man so einfach!

    nano /etc/apt/sources.list

    Das folgende eintragen.

    # backports deb http://deb.debian.org/debian stretch-backports main

    Danach ein

    apt update

    Und dann schauen wir uns mal die Version an....

    apt -t stretch-backports search redis-server Sorting... Done Full Text Search... Done golang-github-stvp-tempredis-dev/stretch-backports 0.0~git20160122.0.83f7aae-1~bpo9+1 all Go package to start and stop temporary redis-server processes libtest-redisserver-perl/oldstable,oldstable 0.20-1 all redis-server runner for tests python-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64 redis protocol reader for Python 2.X using hiredis python3-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64 redis protocol reader for Python using hiredis redis/stretch-backports 5:5.0.3-3~bpo9+2 all Persistent key-value database with network interface (metapackage) redis-server/stretch-backports 5:5.0.3-3~bpo9+2 amd64 [residual-config] Persistent key-value database with network interface

    Und die habe ich gestern Abend gebaut.

    127.0.0.1:6379> INFO # Server redis_version:5.0.5

    Ok, das schmerzt jetzt 😛

  • Let's Encrypt installieren

    Verschoben Let's Encrypt
    3
    0 Stimmen
    3 Beiträge
    1k Aufrufe
    FrankMF

    Wenn ihr alles richtig gemacht habt, dann könnt ihr Euer Zertifikat überprüfen lassen. Sollte dann so aussehen.

    0_1538314120455_index.jpeg