kemonine
/
lollipopcloud
Archived
1
0
Fork 0
This repository has been archived on 2022-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
lollipopcloud/services/searx.md

2.3 KiB

Searx

Self hosted metasearch. Prevent profiling by major search engines

Inspiration / Further Reading

Install / Update / Run Script

Setup a generic script that'll auto update Searx, build a container and launch it. You should only run this script at first launch and/or when you're looking for updates.


mkdir -p /var/searx
chown root:root /var/searx
mkdir -p /scratch/docker/searx
cat > /scratch/docker/searx/searx.sh << EOF
#!/bin/bash

ARCH=\`arch\`
if [ \$ARCH == "aarch64" ]
then
    ARCH="arm64v8"
else
    ARCH="arm32v7"
fi

docker pull registry.lollipopcloud.solutions/\$ARCH/searx:latest

docker stop searx
docker rm searx

docker run \\
    --name searx \\
    --restart unless-stopped \\
    --net docker-private \\
    --ip 172.30.8.8 \\
    -e TZ=UTC \\
    -e DEBUG=1 \\
    -e BASE_URL=searx.kemonine.online \\
    registry.lollipopcloud.solutions/\$ARCH/searx:latest
EOF

chmod a+x /scratch/docker/searx/searx.sh

Run Searx

Simply execute /scratch/docker/searx/searx.sh to update/run Gogs.

Serving Via Caddy


cat > /etc/caddy/services/searx.conf <<EOF
# Searx proxy
searx.domain.tld {
    tls user@domain.tld
    
    redir 301 {
        if {scheme} is http
        /  https://searx.domain.tld{uri}
    }

    log /var/log/caddy/searx.log
    proxy / 172.30.8.8:8888 {
        transparent
    }
}
EOF

Update Unbound


cat > /etc/unbound/local_zone/searx.conf <<EOF
local-data: "searx-insecure A 172.30.8.8"
local-data-ptr: "172.30.8.8 searx-insecure"
local-data: "searx-insecure.domain.tld A 172.30.8.8"
local-data-ptr: "172.30.8.8 searx-insecure.domain.tld"

local-data: "searx A 172.30.0.1"
local-data-ptr: "172.30.0.1 searx"
local-data: "searx.domain.tld A 172.30.0.1"
local-data-ptr: "172.30.0.1 searx.domain.tld"
EOF

Configuration (Optional)

See https://github.com/asciimoo/searx/blob/master/searx/settings.yml for additional details. You shouldn't need to run any configuration as the defaults are quite reasonable.