Skip to content

Kopia - HTTP/S Server aufsetzen

Angeheftet Kopia
1 1 502
  • 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.

  • OpenCloud - Docker Compose local

    Verschoben OpenCloud opencloud linux
    3
    1
    0 Stimmen
    3 Beiträge
    441 Aufrufe
    FrankMF
    Noch was Wichtiges. Die Docker Installation nutzt folgende config. In meinem Beispiel findet man sie unter /home/frank/opencloud/deployments/examples/opencloud_full Darin liegt ein .env ## Basic Settings ## # Define the docker compose log driver used. # Defaults to local LOG_DRIVER= # If you're on an internet facing server, comment out following line. # It skips certificate validation for various parts of OpenCloud and is # needed when self signed certificates are used. INSECURE=true ## Traefik Settings ## # Note: Traefik is always enabled and can't be disabled. # Serve Traefik dashboard. # Defaults to "false". TRAEFIK_DASHBOARD= # Domain of Traefik, where you can find the dashboard. # Defaults to "traefik.opencloud.test" TRAEFIK_DOMAIN= # Basic authentication for the traefik dashboard. # Defaults to user "admin" and password "admin" (written as: "admin:$2y$05$KDHu3xq92SPaO3G8Ybkc7edd51pPLJcG1nWk3lmlrIdANQ/B6r5pq"). # To create user:password pair, it's possible to use this command: # echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g TRAEFIK_BASIC_AUTH_USERS= # Email address for obtaining LetsEncrypt certificates. # Needs only be changed if this is a public facing server. TRAEFIK_ACME_MAIL= # Set to the following for testing to check the certificate process: # "https://acme-staging-v02.api.letsencrypt.org/directory" # With staging configured, there will be an SSL error in the browser. # When certificates are displayed and are emitted by # "Fake LE Intermediate X1", # the process went well and the envvar can be reset to empty to get valid certificates. TRAEFIK_ACME_CASERVER= [....gekürzt....] Man kann dort etwas ändern und mittels docker compose up -d alles aktualisieren. Radicale OpenCloud nutzt im Moment folgendes https://radicale.org/v3.html als Backend Server für Kalender & Kontakte. Jemand hat mir dann erklärt, wie das so funktioniert. Danach hatte es dann klick gemacht. https://fosstodon.org/@h4kamp/114562514701351170 In der config findet man zum Beispiel die Konfiguration für radicale (Kalender- und Kontakte-App) Das ist nur eine rudimentäre Ablage, wird gesteuert über Clienten, z.B. die Thunderbird Kalender Funktion. ### Radicale Setting ### # Radicale is a small open-source CalDAV (calendars, to-do lists) and CardDAV (contacts) server. # When enabled OpenCloud is configured as a reverse proxy for Radicale, providing all authenticated # OpenCloud users access to a Personal Calendar and Addressbook RADICALE=:radicale.yml # Docker image to use for the Radicale Container #RADICALE_DOCKER_IMAGE=opencloudeu/radicale # Docker tag to pull for the Radicale Container #RADICALE_DOCKER_TAG=latest # Define the storage location for the Radicale data. Set the path to a local path. # Ensure that the configuration and data directories are owned by the user and group with ID 1000:1000. # This matches the default user inside the container and avoids permission issues when accessing files. # Leaving it default stores data in docker internal volumes. #RADICALE_DATA_DIR=/your/local/radicale/data In einer Standard Installation ist das auskommentiert. RADICALE=:radicale.yml Danach ein docker compose up -d und Eure Kalendereinträge (extern auf einem Clienten verwaltet) werden in der OpenCloud gesichert.
  • Redis Stack?

    Redis redis linux
    1
    1
    0 Stimmen
    1 Beiträge
    194 Aufrufe
    Niemand hat geantwortet
  • KDE Plasma 6 - RC1

    Linux kde linux plasma6
    3
    0 Stimmen
    3 Beiträge
    265 Aufrufe
    FrankMF
    Heute die letzte Unstable Edition von KDE Neon installiert. Es gab folgende Version. neon-unstable-20240201-2132.iso Meldet sich bei mir immer noch nur als DEV Version und nicht als RC2 Wenn einer einen Tipp für mich hat.... Der Installer soll mich ja nicht mehr interessieren, aber mir ist aufgefallen, das er jetzt den Standort hinbekommt. Ansonsten läuft es soweit rund. Habt ihr schon mal einen Firefox ohne Addblocker benutzt? Grausam! Kann mir gar nicht vorstellen, so was in meinem Leben nochmal zu benutzen.
  • Docker & Redis Datenbank

    Verschoben Linux docker linux redis
    2
    0 Stimmen
    2 Beiträge
    271 Aufrufe
    FrankMF
    @FrankM sagte in Docker & Redis Datenbank: save 60 1 #save 900 1 save 300 10 save 60 10000 Hier kann man auch noch schön sehen, wie ich gekämpft habe, bis ich mal eine dump.rdb gesehen habe. Auch irgendwie logisch, das ich nie eine gesehen hatte, wenn man weiß das save 900 1 bedeutet, das er alle 900 Sekunden speichert, wenn mindestens eine Änderung vorhanden ist. Das kann dann schon was dauern. Ich habe das dann mal verkürzt, damit ich schneller ein Ergebnis habe. save 60 1 Das brachte mich dann dem Ziel näher. Danach konnte ich die dump.rdb auch finden. Bitte keine Redis DB ohne Passwort laufen lassen!
  • Cockpit

    Linux linux
    1
    1
    0 Stimmen
    1 Beiträge
    268 Aufrufe
    Niemand hat geantwortet
  • Debian 10 - Terminal wechseln

    Linux linux
    2
    0 Stimmen
    2 Beiträge
    708 Aufrufe
    FrankMF
    Das eigentliche Problem scheint zu sein, das bei der Installation folgendes fehlte. root@debian:~# apt install gnome-terminal Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Die folgenden zusätzlichen Pakete werden installiert: gnome-terminal-data nautilus-extension-gnome-terminal Die folgenden NEUEN Pakete werden installiert: gnome-terminal gnome-terminal-data nautilus-extension-gnome-terminal 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 2.867 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 9.971 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] Nach der Deinstallation von tilix ist jetzt alles wieder so, wie ich es gewohnt bin
  • IPFire Orange DHCP

    Verschoben Linux ipfire linux
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • Youtube in Grav

    Grav grav linux
    1
    0 Stimmen
    1 Beiträge
    547 Aufrufe
    Niemand hat geantwortet