A tiny service that downloads files over HTTP links, with resume and restart support.

Overview

Http Drogue

Releases Docker Image Size MIT license

Http Drogue is a tiny service that downloads files over HTTP from links you provide. It can restart and resume interrupted downloads.

A web page. An input at the top is labelled download URL, with a start download button next to it. A table is located below, with a file being downloaded. The table displays the download speed, remaining time, completed percentage, downloaded size and total size. A refresh list button is above the table.

Http Drogue is a lightweight service which is meant to run locally, like a laptop or a home server located where you are. It's best co-located with a service like Samba SMB server, NextCloud, or Bulgur Cloud so you can access downloaded files.

Installation

Use with Docker is the recommended usage method.

You'll need 3 things to run the container:

  • A folder to store your downloads. This must be mounted at /downloads in the container.
  • A folder to store partial download data. This must be mounted at /data in the container.
  • The environment variable HTTP_DROGUE_PASSWORD. You'll use any username with this password to log in.

For example:

docker run \
  -v $HOME/Downloads:/downloads \
  -v $HOME/.local/share/http-drogue:/data \
  -e HTTP_DROGUE_PASSWORD=correct-horse-battery-staple \
  -p 8080:8080 \
  seriousbug/http-drogue

This will store the downloads in ~/Downloads, and the app data in ~/.local/share, and use correct-horse-battery-staple as the login password. Again, enter any username to log in. The page will be at http://localhost:8080.

Here is a compose file example as well:

version: '3'

services:
  http-drogue:
    image: seriousbug/http-drogue
    restart: always
    volumes:
      - /path/to/host/downloads:/downloads
      - http-drogue-data:/data
    environment:
      - HTTP_DROGUE_PASSWORD=correct-horse-battery-staple

volumes:
  - http-drogue-data

Usage

Go to http://localhost:8080. Enter any username, and the password you picked in the environment variable. You should see the Http Drogue page.

Paste a URL into the box and hit the button to start download. The file list below will not update automatically, hit the "Refresh List" button or refresh the page to update it.

If a download is interrupted, Http Drogue will automatically retry the download. It can resume the download if the source you are downloading from supports that as well.

If a download is interrupted over 24 times, Http Drogue will fail the download. Make sure the URL is correct (you can see the URL by hovering over a file name), then click the restart button to restart that download.

You might also like...
An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous and blocking clients respectively.

eithers_rust An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous a

Support SIMD low-memory overhead and high-performance adaptive radix tree.

Artful Artful is an adaptive radix tree library for Rust. At a high-level, it's like a BTreeMap. It is based on the implementation of paper, see The A

A highly performant HTTP bittorrent tracker (WIP)

kiryuu Rewrite of kouko in Rust, for better performance! Kiryuu powers http://tracker.mywaifu.best:6969/announce Thanks Many thanks to horsie and anon

💩 Small HTTP client for the Webpurify API following the sans-io approach 🦀

💩 tame-webpurify Super simple client for the WebPurify REST API What is this? An incredibly small library to interact with the https://www.webpurify.

A really fast http prober.

hrekt A really fast http prober. Install • Usage • Examples • FYI • Contributing • License • Join Discord Installation Fresh Installs $ cargo build -r

Elton is a benchmark utility written in rust aimed to be used to benchmark HTTP calls.

Elton Elton is an HTTP Benchmark utility with options to be used within an HTTP interface. Installation Elton is currently available via Docker or by

A Rust implementation of generic prefix tree (trie) map with wildcard capture support

prefix_tree_map A Rust implementation of generic prefix tree (trie) map with wildcard capture support. Design Trie is a good data structure for storin

a super fast scientific calculator with dimensional analysis support written in Rust 🦀

larvae a super fast scientific calculator with dimensional analysis support written in Rust 🦀 🐛 heavily inspired from insect Usage: Command mode: $

Rust Library for controlling divoom devices that support REST APIs, such as pixoo-64.
Rust Library for controlling divoom devices that support REST APIs, such as pixoo-64.

Divoom Rust Library for controlling divoom devices that support REST APIs, such as pixoo-64 (and from how divoom's api/doc organizes, maybe more in th

Owner
Kaan Barmore-Genç
Software engineer, computer scientist, full stack developer, Linux user, home cook, cyclist, and dog dad. I love programming languages and strong type systems.
Kaan Barmore-Genç
Tiny HTTP client for GET

tinyget a tiny fork of minreq. Simple, minimal-dependency HTTP client. Optional features for https with native-tls TLS implementations. Documentation

迷渡 19 Dec 31, 2022
A bunch of links to blog posts, articles, videos, etc for learning Rust

rust-learning A bunch of links to blog posts, articles, videos, etc for learning Rust. Feel free to submit a pull request if you have some links/resou

Camille TJHOA 9k Jan 4, 2023
Simple CLI tool to create dummy accounts with referral links to give yourself free Plus.

Free Duolingo Plus A simple CLI tool to create dummy accounts with referral links to give yourself free Plus (max 24/41 weeks depending on whether you

null 23 Apr 27, 2023
A tiny Rust std-lib for Linux x86_64 and aarch64

Tiny std Like a bad, probably buggy, tiny standard library for Linux. When it's appropriate If you are actually trying to do something solid, checkout

null 4 Dec 17, 2022
A rust version of "the super tiny compiler"

The (Rust) super tiny compiler This project is a rust version of the super tiny compiler (the original one (JS) was created by Jamie Kyle). The output

Eduardo Stuart 6 Dec 25, 2022
Tiny assembler + cart builder for ECJR

asmjr Tiny assembler + cart builder for ECJR Example usage To build the example program dvdlogo.asm into a cartridge, with dvdlogo.png as the video ro

null 2 Jun 24, 2022
Tiny macros for bailing on failure

tiny_bail Bailing is an error-handling pattern that takes the middle path between unwrap and ?: Compared to unwrap: Bail will return, continue, or bre

Ben Frankel 22 Sep 10, 2024
Simple and minimalist forward auth service intended for use with reverse proxies (Traefik, Caddy, nginx, etc)

nforwardauth nforwardauth is an extremely lightweight, blazing fast forward auth service that lets you use a single authentication middleware for all

Tony Duco 22 Apr 7, 2023
Parallel pipelined map over iterators.

plmap Parallel pipelined map over iterators for rust. Documentation docs.rs/plmap Example Parallel pipelined mapping: // Import the iterator extension

null 3 Sep 15, 2022
Charted's email service built in Rust that can be connected via gRPC

email-service is a small microservice to help transfer emails towards other people without trying to implement it in different languages. This is used in charted-server for member invitations, passwordless authentication, and more.

charted 7 Mar 6, 2023