🔧 Just a hacky script to get searxng etc. working

This commit is contained in:
tomit4 2025-09-13 14:14:48 -07:00
parent cd9b459ea8
commit a1cb8b4a0b
7 changed files with 393 additions and 0 deletions

4
scripts/rs Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
docker compose -f "$HOME"/aur_packages/self_host/docker-compose.yaml down 2>/dev/null
docker compose -f "$HOME"/aur_packages/self_host/docker-compose.yaml up -d 2>/dev/null

View file

@ -0,0 +1,11 @@
This is just a compilation of my most common locally run applications via
docker.
Just:
```sh
# To spin up
docker compose up -d
# To spin down
docker compose down
```

View file

@ -0,0 +1,145 @@
services:
# PIHOLE
# https://github.com/mpgirro/docker-pihole-unbound/blob/main/example/compose.yaml
pihole-unbound:
container_name: pihole-unbound
image: mpgirro/pihole-unbound:latest
hostname: ${HOSTNAME}
domainname: ${DOMAIN_NAME}
ports:
- 443:443/tcp
- 53:53/tcp
- 53:53/udp
- ${PIHOLE_WEBPORT:-80}:80/tcp #Allows use of different port to access pihole web interface when other docker containers use port 80
- 5335:5335/tcp # Uncomment to enable unbound access on local server
# - 22/tcp # Uncomment to enable SSH
environment:
- TZ=${TZ:-UTC}
- FTLCONF_webserver_api_password=${WEBPASSWORD}
- FTLCONF_webserver_interface_theme=${WEBTHEME:-default-dark}
- FTLCONF_dns_upstreams=127.0.0.1#5335
# - FTLCONF_dns_listeningMode=single
- FTLCONF_dns_listeningMode=all
- FTLCONF_webserver_port=80
volumes:
- etc_pihole-unbound:/etc/pihole:rw
- etc_pihole_dnsmasq-unbound:/etc/dnsmasq.d:rw
restart: always
# SEARXNG
searxng:
container_name: searxng
image: docker.io/searxng/searxng:latest
restart: always
ports:
# - "127.0.0.1:8080:8080"
- "8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
- searxng-data:/var/cache/searxng:rw
environment:
- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
# dns:
# - 8.8.8.8
# - 8.8.4.4
# REDLIB
redlib:
image: quay.io/redlib/redlib:latest
restart: always
container_name: "redlib"
ports:
- 8081:8080 # Specify `127.0.0.1:8080:8080` instead if using a reverse proxy
user: nobody
read_only: true
security_opt:
- no-new-privileges:true
# - seccomp=seccomp-redlib.json
cap_drop:
- ALL
env_file: .env
# networks:
# - redlib
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"]
interval: 5m
timeout: 3s
# INVIDIOUS
invidious:
image: quay.io/invidious/invidious:latest
# image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices
restart: unless-stopped
ports:
- "3001:3000"
environment:
# Please read the following file for a comprehensive list of all available
# configuration options and their associated syntax:
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
INVIDIOUS_CONFIG: |
db:
dbname: invidious
user: kemal
password: kemal
host: invidious-db
port: 5432
check_tables: true
signature_server: inv_sig_helper:12999
visitor_data: "CgtTbC0tbG84N1hjVSjdmc_FBjIKCgJVUxIEGgAgKQ%3D%3D"
po_token: "IggXWBdaf-vbvg=="
# external_port:
# domain:
# https_only: false
# statistics_enabled: false
hmac_key: "aiZoghooQuies7aidei0"
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
interval: 30s
timeout: 5s
retries: 2
logging:
options:
max-size: "1G"
max-file: "4"
depends_on:
- invidious-db
inv_sig_helper:
image: quay.io/invidious/inv-sig-helper:latest
init: true
command: ["--tcp", "0.0.0.0:12999"]
environment:
- RUST_LOG=info
restart: always
cap_drop:
- ALL
read_only: true
security_opt:
- no-new-privileges:true
invidious-db:
image: docker.io/library/postgres:14
restart: unless-stopped
volumes:
- postgresdata:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
# test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
test: ["CMD-SHELL", "pg_isready -U $POSTGRES_USER -d $POSTGRES_DB"]
volumes:
# PIHOLE
etc_pihole-unbound:
etc_pihole_dnsmasq-unbound:
# SEARXNG
searxng-data:
# INVIDIOUS
postgresdata:
# networks:
# redlib:

View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
# NOTE: It is recommended you change these once in a while in the docker-compose.yml
# NOTE: You can also generate a new hmac_key using pwgen
# `pwgen 20 1` and pasting that in the hmac_key section of the docker-compose.yml file.
echo "GENERATING NEW visitor_data AND po_token"
docker run quay.io/invidious/youtube-trusted-session-generator

View file

@ -0,0 +1,16 @@
[Unit]
Description=SearXNG service
Requires=docker.service
After=docker.service
[Service]
Restart=on-failure
Environment=SEARXNG_DOCKERCOMPOSEFILE=docker-compose.yaml
WorkingDirectory=/usr/local/searxng-docker
ExecStart=/usr/local/bin/docker compose -f ${SEARXNG_DOCKERCOMPOSEFILE} up --remove-orphans
ExecStop=/usr/local/bin/docker compose -f ${SEARXNG_DOCKERCOMPOSEFILE} down
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,7 @@
# This configuration file updates the default configuration file
# See https://github.com/searxng/searxng/blob/master/searx/limiter.toml
[botdetection.ip_limit]
# activate advanced bot protection
# enable this when running the instance for a public usage on the internet
link_token = false

View file

@ -0,0 +1,202 @@
# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
use_default_settings: true
server:
# base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
secret_key: "d3ce536cad273a010ca43c7019873041efd3d94e152a1a5fb1f863686fac90a2" # change this!
limiter: false # enable this when running the instance for a public usage on the internet
image_proxy: true
bind_address: 0.0.0.0
method: GET
redis:
url: redis://redis:6379/0
engines:
- name: duckduckgo
disabled: false
- name: mojeek
disabled: false
- name: mullvadleta
disabled: false
- name: mullvadleta brave
disabled: false
- name: dictzone
disabled: true
- name: lingva
disabled: true
- name: mymemory translated
disabled: true
- name: bing
disabled: true
- name: google
disabled: true
- name: brave
disabled: true
- name: startpage
disabled: true
- name: currency
disabled: true
- name: wikidata
disabled: true
- name: wikipedia
disabled: true
- name: duckduckgo images
disabled: false
- name: bing images
disabled: false
- name: brave.images
disabled: true
- name: google images
disabled: false
- name: qwant images
disabled: true
- name: startpage images
disabled: true
- name: artic
disabled: true
- name: deviantart
disabled: true
- name: flickr
disabled: true
- name: openverse
disabled: true
- name: pinterest
disabled: true
- name: public domain image archive
disabled: true
- name: unsplash
disabled: true
- name: wikicommons.images
disabled: true
- name: bing videos
disabled: false
- name: brave.videos
disabled: true
- name: google videos
disabled: false
- name: qwant videos
disabled: true
- name: duckduckgo videos
disabled: false
- name: dailymotion
disabled: true
- name: piped
disabled: true
- name: sepiasearch
disabled: true
- name: vimeo
disabled: false
- name: wikicommons.videos
disabled: true
- name: youtube
disabled: false
- name: startpage news
disabled: true
- name: wikinews
disabled: true
- name: bing news
disabled: true
- name: brave.news
disabled: true
- name: google news
disabled: false
- name: qwant news
disabled: true
- name: reuters
disabled: true
- name: yahoo news
disabled: false
- name: openstreetmap
disabled: false
- name: photon
disabled: true
- name: genius
disabled: true
- name: radio browser
disabled: true
- name: bandcamp
disabled: false
- name: mixcloud
disabled: true
- name: piped.music
disabled: true
- name: soundcloud
disabled: false
- name: wikicommons.audio
disabled: true
- name: alpine linux packages
disabled: false
- name: crates.io
disabled: false
- name: docker hub
disabled: false
- name: hoogle
disabled: true
- name: npm
disabled: false
- name: pypi
disabled: false
- name: rubygems
disabled: false
- name: voidlinux
disabled: false
- name: askubuntu
disabled: false
- name: stackoverflow
disabled: false
- name: superuser
disabled: true
- name: codeberg
disabled: false
- name: github
disabled: false
- name: gitlab
disabled: false
- name: arch linux wiki
disabled: false
- name: gentoo
disabled: false
- name: mankier
disabled: true
- name: mdn
disabled: false
- name: apk mirror
disabled: false
- name: fdroid
disabled: false
- name: google play apps
disabled: false
- name: annas archive
disabled: false
- name: bt4g
disabled: true
- name: kickass
disabled: true
- name: library genesis
disabled: false
- name: nyaa
disabled: false
- name: piratebay
disabled: true
- name: solidtorrents
disabled: true
- name: wikicommons.files
disabled: true
- name: z-library
disabled: false
- name: reddit
disabled: false
- name: etymonline
disabled: true
- name: wiktionary
disabled: true
- name: wordnik
disabled: true
- name: podcastindex
disabled: true
- name: erowid
disabled: false
- name: steam
disabled: false
- name: chefkoch
disabled: true
ui:
center_alignment: true