From d64d9881403095ce1dc19f50343cb2860ac37941 Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Sun, 30 Jul 2023 15:39:36 +0200 Subject: [PATCH] Adding alternative hidden service as an option. --- burguillos_info.json.example | 1 + lib/BurguillosInfo.pm | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/burguillos_info.json.example b/burguillos_info.json.example index 9dbc8ab..58995ff 100644 --- a/burguillos_info.json.example +++ b/burguillos_info.json.example @@ -5,5 +5,6 @@ "database": "example" }, "base_url": "https://burguillos.info", + "onion_base_url": "http://example.onion"; "listen": "https:localhost:3555" } diff --git a/lib/BurguillosInfo.pm b/lib/BurguillosInfo.pm index 2f04c93..7b53e31 100644 --- a/lib/BurguillosInfo.pm +++ b/lib/BurguillosInfo.pm @@ -17,6 +17,18 @@ sub startup ($self) { } } ); + $self->hook( + before_render => sub($c, $args) { + my $onion_base_url = $self->config->{onion_base_url}; + my $base_url = $self->config->{base_url}; + if (!defined $onion_base_url) { + return; + } + my $current_route = $c->url_for; + $current_route =~ s/^$base_url//; + $c->res->headers->header('Onion-Location' => $onion_base_url.$current_route); + } + ); my $config = $self->plugin('JSONConfig'); $self->config( hypnotoad => { proxy => 1, listen => [$self->config('listen') // 'http://localhost:3000'] } );