Skip to content

Kopia - HTTP/S Server aufsetzen

Angeheftet Kopia
  • Ich möchte diesen Beitrag ein wenig optimieren und verbessern.

    Server

    Ich nehme mal einen Debian Buster 10 Server zum Spielen 😉 Ganz einfach geht das mit der Hetzner Cloud (Ja, ist ein Werbeblock 🙂 )

    Nach dem der Server innerhalb von einer Minute am Start ist, fangen wir mal an. Was brauchen wir?

    iptables

    Wir passen das entsprechend an, wir nutzen den Standard Port von Kopia auf 51515. Könnt Ihr auch gerne ändern! Nicht vergessen, das dauerhaft zu speichern.
    https://forum.frank-mankel.org/topic/661/iptables-dauerhaft-speichern?_=1598077570202

    Ich setze hier voraus, das man weiß wie das geht.

    fail2ban

    Auch hier setze ich voraus, das man weiß was man tut 🙂

    User anlegen

    Wir sind als Root angemeldet!

     adduser user
    

    Für user könnt ihr euch was aussuchen. Passwort festlegen und fertig. Dieser User verfügt jetzt über ein Homeverzeichnis unter

    /home/user
    

    Kopia installieren

    Anwendung runterladen

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

    Quelle: https://github.com/kopia/kopia/releases

    Anwendung installieren

    dpkg -i *.deb
    Selecting previously unselected package kopia.
    (Reading database ... 34241 files and directories currently installed.)
    Preparing to unpack kopia_0.6.3_linux_amd64.deb ...
    Unpacking kopia (0.6.3) ...
    Setting up kopia (0.6.3) ...
    

    Filesystem initialisieren

    Wir suchen uns einen Speicherort aus und sind als Kopia User eingeloggt.

    su user
    mkdir kopia
    

    Danach initialisieren

    kopia repository create filesystem --path kopia
        Enter password to create new repository: 
        Re-enter password for verification: 
        Initializing repository with:
          block hash:          BLAKE2B-256-128
          encryption:          AES256-GCM-HMAC-SHA256
          splitter:            DYNAMIC-4M-BUZHASH
        Connected to repository.
        
        NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.
        To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
        Alternatively you can remove the file "/root/.config/kopia/repository.config.update-info.json".
        
        Policy for (global):
        
        Retention:
          Annual snapshots:    3           (default)
          Monthly snapshots:  24           (default)
          Weekly snapshots:    4           (default)
          Daily snapshots:     7           (default)
          Hourly snapshots:   48           (default)
          Latest snapshots:   10           (default)
        
        Files policy:
          No ignore rules.
          Read ignore rules from files:
            .kopiaignore                   (default)
        
        Error handling policy:
          Ignore file read errors:       false       (default)
          Ignore directory read errors:  false       (default)
        
        Scheduled snapshots:
          None
        
        Compression disabled.
        
        To change the policy use:
          kopia policy set --global <options>
        or
          kopia policy set <dir> <options>
        
        Kopia will perform quick maintenance of the repository automatically every 1h0m0s
        when running as root@debian-2gb-nbg1-2-kopia. This operation never deletes any data.
        
        Full maintenance (which also deletes unreferenced data) is disabled by default.
        
        To run it manually use:
        
        $ kopia maintenance run --full
        
        Alternatively you can schedule full maintenance to run periodically using:
        
        $ kopia maintenance set --enable-full=true --full-interval=4h
    

    Benutzerverwaltung

    Als root

    apt install apache2-utils
    

    Benutzer und Passwort anlegen

    htpasswd -B -c .htpasswd USER@DOMAIN
    New password: 
    Re-type new password: 
    Adding password for user USER@DOMAIN
    

    Das File .htpasswd in /home/USER ablegen und an die Rechte denken.

    chown USER:USER .htpasswd
    

    Letsencrypt

    Installation

    apt install letsencrypt
    

    Wir legen uns eine Subdomain an und lassen diese auf die IP des Servers verweisen.

    Danach

     letsencrypt certonly --standalone -d kopia.DOMAIN.de
    

    Achtung, die Firewall sollte aus sein.

    Wenn alles geklappt hat, sieht man folgendes

     - Congratulations! Your certificate and chain have been saved at:
    

    Für eine Aktualisierung des Zertifikates einen Cronjob anlegen und nach der Aktualisierung mit einem Script die Zertifikate ins Homeverzeichnis des Users kopieren. (Nicht schön, da muss ich nochmal ran)

    Ok, ich habe das noch mal getestet. Der Crontab für root sieht so aus.

    0 3  1 * * certbot renew --post-hook "chown -R kopia-server:root /etc/letsencrypt/"
    

    Nach dem Aktualisieren des Zertifikates ändern wir den Benutzer ab, dann kann auch der Benutzer kopia-server damit umgehen.

    Kopia Server Start

    Danach testen wir erst mal trocken ob das Ding startet.

    /usr/bin/kopia server start --tls-cert-file /etc/letsencrypt/live/DOMAIN/fullchain.pem --tls-key-file /etc/letsencrypt/live/DOMAIN/privkey.pem --htpasswd-file /home/kopia-server/.htpasswd --address https://IP-Adresse:51515
    

    Wenn das klappt, sieht man folgendes

    SERVER ADDRESS: https://IP-Adresse:51515
      
    Open the address above in a web browser to use the UI.
    

    Dann kann mal mal probieren, ob der externe Zugriff klappt. So sieht ein erfolgreicher Zugriff aus.

    kopia repo connect server --url=https://DOMAIN:51515 --override-username=USER --override-hostname=DOMAIN
    Enter password to open repository: 
    
    Connected to repository API Server.
    
    NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.
    To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
    Alternatively you can remove the file "/home/frank/.config/kopia/repository.config.update-info.json".
    

    Für einen automatischen Start habe ich viel mit systemd getestet, hatte aber immer irgendwelche Probleme, die ich mir leider nicht erklären konnte. Auch eine Recherche im Netz brachte mich nicht weiter. Aber gut, es gibt ja immer viele Möglichkeiten in Linux 🙂

    Crontab

    crontab -e
    

    In diese Datei folgendes rein

     @reboot /home/kopia-server/startup.sh
    

    Die Datei startup.sh

     #!/bin/bash
     # Script um Kopia beim Start des Servers zu starten!
     cd /home/kopia-server/
     ## TLS
     /usr/bin/kopia server start --tls-cert-file /home/kopia-server/fullchain.pem --tls-key-file /home/kopia-server/privkey.pem --htpasswd-file /home/kopia-server/.htpasswd --address https://IPv4-Adresse:51515
    

    Danach ein

    chmod +x /home/startup.sh
    

    Nach einem Reboot startet der Kopia-Server jetzt automatisch.

  • Zima Board

    Linux
    6
    0 Stimmen
    6 Beiträge
    655 Aufrufe
    FrankMF

    Wer noch einen braucht, sind wieder ein paar im Shop erhältlich.

    ZimaBoard 832 is IN STOCK & AVAILABLE NOW
    ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌
    ZimaBoard Official Store

    Back In Stock

    The item you've been waiting for is back in stock

    ZimaBoard 832 - Single Board Server for Creators

    $199.90

    Model: ZimaBoard 832

    Stock: 190

  • 0 Stimmen
    3 Beiträge
    2k Aufrufe
    FrankMF

    Das mit den Namen der btrfs Subvolumes ist bekannt bei Timeshift. Im Readme steht dazu folgendes.

    BTRFS volumes

    BTRFS volumes must have an Ubuntu-type layout with @ and @home subvolumes. Other layouts are not supported. Systems having the @ subvolume and having /home on a non-BTRFS partition are also supported.

    Text file busy / btrfs returned an error: 256 / Failed to create snapshot can occur if you have a Linux swapfile mounted within the @ or @home subvolumes which prevents snapshot from succeeding. Relocate the swapfile out of @ or *@home, for example into it's own subvolume like @swap.

  • Manjaro Stable-Update vom 20.02.23

    Linux
    2
    0 Stimmen
    2 Beiträge
    87 Aufrufe
    FrankMF

    Ich konnte es nicht lassen, ich habe es mal getestet.

       ~  docker version  ✔  1m 37s  Client: Version: 23.0.1 API version: 1.42 Go version: go1.20 Git commit: a5ee5b1dfc Built: Sat Feb 11 13:58:04 2023 OS/Arch: linux/amd64 Context: default

    In der aktuellen systemd Datei steht folgendes drin. Bei mir zu finden unter /usr/lib/systemd/system/docker.service

    LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity

    Die override Dateien angelegt und durchgestartet. Läuft alles einwandfrei. Aber bitte fragt mich nicht, was dieser Wert da oben macht. Ich habe keine Ahnung.

    Update: Erklärung zu ulimits https://stackoverflow.com/questions/62127643/need-understand-ulimits-nofile-setting-in-host-and-container

  • 0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Kopia - Administrative Aufgaben

    Kopia
    1
    0 Stimmen
    1 Beiträge
    243 Aufrufe
    Niemand hat geantwortet
  • Kopia - APT Repository verfügbar

    Kopia
    1
    0 Stimmen
    1 Beiträge
    190 Aufrufe
    Niemand hat geantwortet
  • Kopia 0.6.x released

    Kopia
    3
    0 Stimmen
    3 Beiträge
    230 Aufrufe
    FrankMF

    0.6.3 released

    c142598 Disable blob deletion in 0.6 unless KOPIA_ENABLE_BLOB_DELETION is set to true (#552)

    Aufpassen, es gibt da wohl ein Problem, was zu Datenverlust führen könnte!

  • Debian Buster 10 Release

    Linux
    3
    0 Stimmen
    3 Beiträge
    377 Aufrufe
    FrankMF

    Da man ja beim Login auswählen kann, mit was die Session startet, war ich doch jetzt etwas neugierig was überhaupt läuft.

    IMG_20190707_092217.jpg

    frank@debian:~$ echo $WAYLAND_DISPLAY frank@debian:~$ loginctl SESSION UID USER SEAT TTY 7 1000 frank seat0 tty2 c1 116 Debian-gdm seat0 tty1 2 sessions listed. frank@debian:~$ loginctl show-session c1 -p Type Type=x11 frank@debian:~$ loginctl show-session c1 Id=c1 User=116 Name=Debian-gdm Timestamp=Sat 2019-07-06 22:43:34 CEST TimestampMonotonic=30094837 VTNr=1 Seat=seat0 TTY=tty1 Remote=no Service=gdm-launch-environment Scope=session-c1.scope Leader=1015 Audit=4294967295 Type=x11 Class=greeter Active=no State=online IdleHint=yes IdleSinceHint=1562446130937731 IdleSinceHintMonotonic=346278596 LockedHint=yes

    Die Installation der Nvidia Treiber macht da wohl einen x11 Desktop raus. Aber auch nicht weiter schlimm, der Wayland lief ja hier überhaupt nicht. Würde mich aber über interessante Links zum Thema freuen 😉