🔧 Just a hacky script to get searxng etc. working
This commit is contained in:
parent
cd9b459ea8
commit
a1cb8b4a0b
7 changed files with 393 additions and 0 deletions
4
scripts/rs
Executable file
4
scripts/rs
Executable 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
|
||||
11
self_host/self_host/README.md
Normal file
11
self_host/self_host/README.md
Normal 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
|
||||
```
|
||||
145
self_host/self_host/docker-compose.yaml
Normal file
145
self_host/self_host/docker-compose.yaml
Normal 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:
|
||||
8
self_host/self_host/gen_new_tokens.sh
Executable file
8
self_host/self_host/gen_new_tokens.sh
Executable 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
|
||||
16
self_host/self_host/searxng-docker.service.template
Normal file
16
self_host/self_host/searxng-docker.service.template
Normal 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
|
||||
7
self_host/self_host/searxng/limiter.toml
Normal file
7
self_host/self_host/searxng/limiter.toml
Normal 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
|
||||
202
self_host/self_host/searxng/settings.yml
Normal file
202
self_host/self_host/searxng/settings.yml
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue