feature (tor): cooking some onions - Unstable

This commit is contained in:
Mickael Kerjean 2019-05-10 18:20:00 +10:00
parent 3d9fa49698
commit 2ae2673df9
2 changed files with 36 additions and 1 deletions

View file

@ -2,7 +2,6 @@ package plugin
import (
_ "github.com/mickael-kerjean/filestash/server/plugin/plg_starter_http"
_ "github.com/mickael-kerjean/filestash/server/plugin/plg_starter_tor"
_ "github.com/mickael-kerjean/filestash/server/plugin/plg_image_light"
_ "github.com/mickael-kerjean/filestash/server/plugin/plg_backend_backblaze"
_ "github.com/mickael-kerjean/filestash/server/plugin/plg_backend_dav"

View file

@ -0,0 +1,36 @@
package plg_start_tor
import (
"context"
"github.com/cretz/bine/tor"
"github.com/gorilla/mux"
. "github.com/mickael-kerjean/filestash/server/common"
"net/http"
"time"
)
func init() {
Hooks.Register.Starter(func (r *mux.Router) {
Log.Info("[tor] starting ...")
t, err := tor.Start(nil, nil)
if err != nil {
Log.Error("[tor] Unable to start Tor: %v", err)
return
}
defer t.Close()
listenCtx, listenCancel := context.WithTimeout(context.Background(), 3*time.Minute)
defer listenCancel()
onion, err := t.Listen(listenCtx, &tor.ListenConf{Version3: true, RemotePorts: []int{80}})
if err != nil {
Log.Error("[tor] Unable to create onion service: %v", err)
return
}
defer onion.Close()
srv := &http.Server{
Handler: r,
}
Log.Info("[tor] started on http://%v.onion\n", onion.ID)
srv.Serve(onion)
})
}