Skip to content

Rest-Server v0.13.0 released

Restic
2 1 396
  • Release v0.13.0 des Rest-Servers ist da.

    Changelog

    • Chg #267: Update dependencies and require Go 1.18 or newer
    • Chg #273: Shut down cleanly on TERM and INT signals
    • Enh #271: Print listening address after start-up
    • Enh #272: Support listening on a unix socket

  • 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
    
  • OpenCloud - Docker Compose Hetzner VM

    Verschoben OpenCloud opencloud linux docker
    2
    2
    0 Stimmen
    2 Beiträge
    162 Aufrufe
    FrankMF
    Ich habe mich nochmal mit verschiedenen Aspekten der produktiven Installation beschäftigt. Auch ein wenig die KI befragt und dann ein paar Änderungen vorgenommen. Was hatte mich gestört? Traefik lief als root. Um das zu ändern, habe ich das docker-compose.yml angepasst. Ich habe auch gleich mal auf die aktuelle Version angepasst. services: traefik: image: traefik:v3.4.1 #3.3.1 container_name: traefik user: "1000:1001" # 1000 = dockeruser, 1001=docker group cap_add: - NET_BIND_SERVICE # erlaubt Ports <1024 restart: always networks: - opencloud-net ports: - "80:80" - "443:443" volumes: - ./certs:/certs # bind-mount acme.json - /var/run/docker.sock:/var/run/docker.sock:ro command: - "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}" # Let's Encrypt HTTP-01 Challenge - "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:-example@example.org}" - "--certificatesResolvers.http.acme.storage=/certs/acme.json" - "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http" - "--certificatesResolvers.http.acme.caserver=${TRAEFIK_ACME_CASERVER:-https://acme-v02.api.letsencrypt.org/directory}" # Dashboard - "--api.dashboard=true" # Entrypoints - "--entryPoints.http.address=:80" - "--entryPoints.http.http.redirections.entryPoint.to=https" - "--entryPoints.http.http.redirections.entryPoint.scheme=https" - "--entryPoints.https.address=:443" - "--entryPoints.https.transport.respondingTimeouts.readTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.writeTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.idleTimeout=3m" # Docker Provider - "--providers.docker.endpoint=unix:///var/run/docker.sock" - "--providers.docker.exposedByDefault=false" # Access Log - "--accessLog=true" - "--accessLog.format=json" - "--accessLog.fields.headers.names.X-Request-Id=keep" labels: - "traefik.enable=${TRAEFIK_DASHBOARD:-false}" - "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$$apr1$$4vqie50r$$YQAmQdtmz5n9rEALhxJ4l.}" - "traefik.http.routers.traefik.entrypoints=https" - "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.opencloud.test}`)" - "traefik.http.routers.traefik.middlewares=traefik-auth" - "traefik.http.routers.traefik.tls.certresolver=http" - "traefik.http.routers.traefik.service=api@internal" networks: opencloud-net: volumes: {} Und hierzu - ./certs:/certs # bind-mount acme.json brauch es noch ein paar Anpassungen auf dem Host, also im Verzeichnis von wo wir deployen mit dem dockeruser! mkdir -p ./certs touch ./certs/acme.json chmod 600 ./certs/acme.json chown 1000:1000 ./certs/acme.json # UID muss mit docker-compose user übereinstimmen Das klappt jetzt hier einwandfrei. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker exec -it traefik id uid=1000 gid=1001 groups=1001 Sieht soweit gut aus Die KI meint noch das hier Wenn du maximale Sicherheit willst, kannst du langfristig docker-socket-proxy einsetzen. Er erlaubt Traefik nur lesenden Zugriff auf die Container-API: → Projektseite: Tecnativa/docker-socket-proxy Das muss ich aber erst noch sacken lassen und mich etwas zu einlesen.
  • Manjaro Stable jetzt mit Plasma 6

    Linux kde linux wayland plasma6
    1
    0 Stimmen
    1 Beiträge
    303 Aufrufe
    Niemand hat geantwortet
  • Manjaro Btrfs Snapshot auswählen

    Linux manjaro linux
    1
    2
    0 Stimmen
    1 Beiträge
    412 Aufrufe
    Niemand hat geantwortet
  • Intel ARC A580

    Linux linux intelarc debian
    4
    4
    0 Stimmen
    4 Beiträge
    608 Aufrufe
    FrankMF
    Zwei Monitore ausprobiert, einen 4K und einen Full-HD (HDMI). Lief einwandfrei, auch gemeinsam.
  • PHP Webseite lokal einhängen mit sshfs

    PHP php linux
    1
    2
    0 Stimmen
    1 Beiträge
    90 Aufrufe
    Niemand hat geantwortet
  • Passwort Manager - KeePassXC

    Allgemeine Diskussionen keepassxc linux
    1
    2
    0 Stimmen
    1 Beiträge
    434 Aufrufe
    Niemand hat geantwortet
  • systemd - Scheduled restart job, restart counter is at 5

    Linux linux systemd
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet
  • SSHFS

    Linux linux
    1
    0 Stimmen
    1 Beiträge
    351 Aufrufe
    Niemand hat geantwortet