Categorygithub.com/matthewp/quack-proxy
modulepackage
2.0.0+incompatible
Repository: https://github.com/matthewp/quack-proxy.git
Documentation: pkg.go.dev

# README

Quack Proxy 🦆

Quack proxy is a Gemini proxy that proxies HTTP content into the Gemini protocol. It is a fork of Duckling proxy adding the following features:

  • When possible, Quack extracts the article from the page and avoids rendering sidebars and other content that doesn't translate well to gemtext.
  • Quack is available as middleware to go-gemini so it can be used from your own server.

Quack proxy is cross platform and written in Go.

Usage

You will need to configure your Gemini client to point to the server when there is a need to access any http:// or https:// requests.

As middleware

You can also use quack-proxy as middleware with go-gemini.

mux := &gemini.Mux{}

middleware := quack.Middleware(quack.MiddlewareOptions{
  Handler:        mux,
})

mux.HandleFunc("/", func(ctx context.Context, w gemini.ResponseWriter, r *gemini.Request) {
  w.WriteHeader(gemini.StatusSuccess, "text/gemini")
  w.Write([]byte("Hello world!"))
})

server := &gemini.Server{
  Addr:           ":1965",
  Handler:        gemini.LoggingMiddleware(middleware),
  ReadTimeout:    30 * time.Second,
  WriteTimeout:   1 * time.Minute,
  GetCertificate: setupCerts().Get,
}

ctx := context.Background()
server.ListenAndServe(ctx)

Supported clients

The following clients support per-scheme proxies and can be configured to use Duckling proxy.

  • Amfora - supports per scheme proxies since v1.5.0
  • AV-98 - Merge pull request #24 then use set http_proxy machine:port to access.
  • diohsc - edit diohscrc config file
  • gemget - use -p option
  • GemiNaut - since 0.8.8, which also has its own native html to gemini conversion - update in settings
  • Lagrange - set proxy in preferences (use 127.0.0.1:port, not localhost:port for localhost)
  • Telescope - set proxy in the config file add: proxy "https" via "gemini://127.0.0.1:1965", and similarly for http

# Functions

No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author