diff --git a/.env b/.env index d74d858..d60e3b3 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ PROD_URL=searx.gmoker.com -IMAGEAPP=docker.io/searxng/searxng:2024.5.15-949a73103 +IMAGEAPP=docker.io/searxng/searxng:2024.7.29-98c73010f diff --git a/compose.yaml b/compose.yaml index 46c699f..9ac03b8 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,7 +1,7 @@ --- services: - redis: - image: docker.io/redis:latest + valkey: + image: docker.io/valkey/valkey:latest restart: unless-stopped tmpfs: - /data/ diff --git a/config/hostnames_remove.yml b/config/hostnames_remove.yml new file mode 100644 index 0000000..01a4c3f --- /dev/null +++ b/config/hostnames_remove.yml @@ -0,0 +1,655 @@ +- '(.*\.)?-harness\.com' +- '(.*\.)?-learn\.cn' +- '(.*\.)?-resheno\.ru' +- '(.*\.)?00913\.ru' +- '(.*\.)?1r\.net' +- '(.*\.)?3coded\.com' +- '(.*\.)?3codelab\.com' +- '(.*\.)?3guides\.com' +- '(.*\.)?3programmers\.org' +- '(.*\.)?3toppers\.com' +- '(.*\.)?4k\.xyz' +- '(.*\.)?55yes\.com' +- '(.*\.)?60wiki\.ru' +- '(.*\.)?96t\.com' +- '(.*\.)?a-help\.ru' +- '(.*\.)?a-stack\..*' +- '(.*\.)?acit\.edu\.br' +- '(.*\.)?ackerthink\.com' +- '(.*\.)?acode\.ru' +- '(.*\.)?acosrepo\.com' +- '(.*\.)?adanswer\.com' +- '(.*\.)?afehavenpetrescue\.org' +- '(.*\.)?agmerge\.com' +- '(.*\.)?ailinglistapi\.info' +- '(.*\.)?ailpage\.com\.au' +- '(.*\.)?ailydevsblog\.com' +- '(.*\.)?ainiaojiaocheng\.com' +- '(.*\.)?aithcov\.org' +- '(.*\.)?akemeengr\.com' +- '(.*\.)?akostnici\.com' +- '(.*\.)?akst\.com' +- '(.*\.)?alidsense\.com' +- '(.*\.)?anaindustrial\.com' +- '(.*\.)?andeelacademy\.com' +- '(.*\.)?angofcoders\.net' +- '(.*\.)?anongdao\.com' +- '(.*\.)?ans\.pro' +- '(.*\.)?antashit\.com' +- '(.*\.)?apicks\.com' +- '(.*\.)?apper-tutorial\.net' +- '(.*\.)?apytay\.com' +- '(.*\.)?aqcode4u\.com' +- '(.*\.)?aqcodes\.com' +- '(.*\.)?arath\.com' +- '(.*\.)?aravelquestions\.com' +- '(.*\.)?archive\.ru' +- '(.*\.)?argon24\.com' +- '(.*\.)?arkive\..*' +- '(.*\.)?arkive\.co\.il' +- '(.*\.)?arus\.ru' +- '(.*\.)?astack\..*' +- '(.*\.)?astgit\.org' +- '(.*\.)?asysavecode\.com' +- '(.*\.)?at\.dev' +- '(.*\.)?atchconsole\.com' +- '(.*\.)?atewiki\.ru' +- '(.*\.)?atwolf\.org' +- '(.*\.)?ausalvikash\.in' +- '(.*\.)?avaer101\.com' +- '(.*\.)?avaerrorfix\.com' +- '(.*\.)?avafixing\.com' +- '(.*\.)?avarepos\.com' +- '(.*\.)?avascriptcn\.com' +- '(.*\.)?avascripttutorial\.net' +- '(.*\.)?avawenti\.com' +- '(.*\.)?axinterview\.com' +- '(.*\.)?axxw\.com' +- '(.*\.)?aymanamechurch\.org' +- '(.*\.)?ayne-chu\.com' +- '(.*\.)?az\.wiki' +- '(.*\.)?bcdef\.wiki' +- '(.*\.)?bestcode\.com' +- '(.*\.)?bootweb\.com' +- '(.*\.)?boxshare\.com' +- '(.*\.)?buntuaa\.com' +- '(.*\.)?buntugeeks\.com' +- '(.*\.)?buntuplace\.info' +- '(.*\.)?c-europe\.org' +- '(.*\.)?cbconline\.org' +- '(.*\.)?ccordeonmuseum\.nl' +- '(.*\.)?ch22\.org' +- '(.*\.)?cholarship\.edu\.vn' +- '(.*\.)?cnf2016\.org' +- '(.*\.)?code9\.com' +- '(.*\.)?code\.best' +- '(.*\.)?copy\.site' +- '(.*\.)?cta\.com\.au' +- '(.*\.)?ctingcollegeses\.com' +- '(.*\.)?dcode\.net' +- '(.*\.)?ddcodings\.com' +- '(.*\.)?ditcode\.net' +- '(.*\.)?ditect\.com' +- '(.*\.)?ditect\.com' +- '(.*\.)?doclib\.com' +- '(.*\.)?dqna\.com' +- '(.*\.)?dupro\.id' +- '(.*\.)?dureka\.co' +- '(.*\.)?e-vraag\.com' +- '(.*\.)?eactquestions\.com' +- '(.*\.)?eadforlearn\.com' +- '(.*\.)?eahexp\.com' +- '(.*\.)?eaku\.co' +- '(.*\.)?earn-codes\.net' +- '(.*\.)?earnfk\.com' +- '(.*\.)?eavenlymutex\.com' +- '(.*\.)?eb-answers\.ru' +- '(.*\.)?eb-dev-qa-db-pt\.com' +- '(.*\.)?eb-dev-qa\.com' +- '(.*\.)?ebdesigntips\.blog' +- '(.*\.)?ebdevdesigner\.com' +- '(.*\.)?ebdevqa\.jp\.net' +- '(.*\.)?ebiantutorials\.org' +- '(.*\.)?ebknox\.com' +- '(.*\.)?ebmonkez\.com' +- '(.*\.)?ebu-kaihatsu\.jp\.net' +- '(.*\.)?ebugcn\.com' +- '(.*\.)?ecalll\.co' +- '(.*\.)?echarks\.ru' +- '(.*\.)?echfeed\.net' +- '(.*\.)?echinplanet\.com' +- '(.*\.)?echnointeract\.com' +- '(.*\.)?echnoteshelp\.com' +- '(.*\.)?echtalk7\.com' +- '(.*\.)?econd\.wiki' +- '(.*\.)?ecret-bases\.co\.uk' +- '(.*\.)?ediatagtw\.com' +- '(.*\.)?eebly\.com' +- '(.*\.)?eeksrepos\.com' +- '(.*\.)?eekwall\.in' +- '(.*\.)?egkovopros\.ru' +- '(.*\.)?egmentfault\.com' +- '(.*\.)?elepon\.cyou' +- '(.*\.)?ellojava\.com' +- '(.*\.)?elpex\.vn' +- '(.*\.)?emicolonworld\.com' +- '(.*\.)?eneracodice\.blog' +- '(.*\.)?eneracodice\.com' +- '(.*\.)?eneracodice\.it' +- '(.*\.)?enyanet\.com' +- '(.*\.)?eposhub\.com' +- '(.*\.)?erritorioscuola\.it' +- '(.*\.)?erveanswer\.com' +- '(.*\.)?erver-fault\.ru' +- '(.*\.)?esenv-web-rp-bd\.com' +- '(.*\.)?esenv-web-rp\.com' +- '(.*\.)?espuestas\.me' +- '(.*\.)?estofcpp\.com' +- '(.*\.)?estofflutter\.com' +- '(.*\.)?estofphp\.com' +- '(.*\.)?estofreactjs\.com' +- '(.*\.)?estofvue\.com' +- '(.*\.)?estproduct-review\.com' +- '(.*\.)?esultfor\.dev' +- '(.*\.)?etridbug\.com' +- '(.*\.)?ev-answers\.com' +- '(.*\.)?evasking\.com' +- '(.*\.)?evbugfix\.com' +- '(.*\.)?evdreamz\.com' +- '(.*\.)?evebee\.com' +- '(.*\.)?evelop-bugs\.com' +- '(.*\.)?eveloperfacts\.com' +- '(.*\.)?eveloperinsider\.co' +- '(.*\.)?eveloperload\.com' +- '(.*\.)?eveloppaper\.com' +- '(.*\.)?evelopreference\.com' +- '(.*\.)?everous\.co\.uk' +- '(.*\.)?evfaq\.fr' +- '(.*\.)?evitrares\.com' +- '(.*\.)?evpick\.io' +- '(.*\.)?evqanda\.com' +- '(.*\.)?evsfeed\.com' +- '(.*\.)?evtip\.in' +- '(.*\.)?ewbedev\.com' +- '(.*\.)?ewdevzone\.com' +- '(.*\.)?ewiki\.de' +- '(.*\.)?ews24lite\.com' +- '(.*\.)?ewworldencyclopedia\.org' +- '(.*\.)?exe\.de' +- '(.*\.)?fadnc\.org' +- '(.*\.)?fetimes\.com' +- '(.*\.)?geek\.cn' +- '(.*\.)?giftidea\.com' +- '(.*\.)?gontinh24\.com' +- '(.*\.)?hala\.one' +- '(.*\.)?handroid\.com' +- '(.*\.)?haretechnotes\.com' +- '(.*\.)?hcc\.net' +- '(.*\.)?hecodeteacher\.com' +- '(.*\.)?hefreedictionary\.com' +- '(.*\.)?helivingtrove\.com' +- '(.*\.)?henzhenjia\.net' +- '(.*\.)?hereismyanswer\.com' +- '(.*\.)?hesassway\.com' +- '(.*\.)?heshuggahpies\.com' +- '(.*\.)?hile-do\.com' +- '(.*\.)?hinbug\.com' +- '(.*\.)?hiscodeworks\.com' +- '(.*\.)?howdera\.com' +- '(.*\.)?hristfever\.in' +- '(.*\.)?i-enxame\.com' +- '(.*\.)?i-u\.com' +- '(.*\.)?ibes\.cn' +- '(.*\.)?ibhunt\.com' +- '(.*\.)?ibsea\.com' +- '(.*\.)?iceans\.com' +- '(.*\.)?icroeducate\.tech' +- '(.*\.)?ierrasummit2005\.org' +- '(.*\.)?igges\.net' +- '(.*\.)?ightrun\.com' +- '(.*\.)?igithub\.com' +- '(.*\.)?igresource\.com' +- '(.*\.)?ike\.in' +- '(.*\.)?ikecs\.com' +- '(.*\.)?iki-org\.ru' +- '(.*\.)?iki2\.info' +- '(.*\.)?iki2\.net' +- '(.*\.)?iki2\.org' +- '(.*\.)?iki2wiki\.ru' +- '(.*\.)?iki\.cologne' +- '(.*\.)?ikibrief\.org' +- '(.*\.)?ikidark\.ru' +- '(.*\.)?ikide\.wiki' +- '(.*\.)?ikidea\.ru' +- '(.*\.)?ikifix\.dev' +- '(.*\.)?ikimili\.com' +- '(.*\.)?ikipe\.wiki' +- '(.*\.)?ikipedia24\.ru' +- '(.*\.)?ikipedia\.tel' +- '(.*\.)?ikiredia\.ru' +- '(.*\.)?ikiroot\.ru' +- '(.*\.)?ikit\.wiki' +- '(.*\.)?ikitechy\.com' +- '(.*\.)?ikiwand\.com' +- '(.*\.)?ikizero\.com' +- '(.*\.)?ildiredi\.com' +- '(.*\.)?ilee\.com' +- '(.*\.)?ilk-it\.net' +- '(.*\.)?ind-error\.com' +- '(.*\.)?indatwiki\.com' +- '(.*\.)?indbestopensource\.com' +- '(.*\.)?inggu\.live' +- '(.*\.)?ingingliberty\.com' +- '(.*\.)?iniu\.com' +- '(.*\.)?inmundo\.com' +- '(.*\.)?inuxfixes\.com' +- '(.*\.)?ipsfordev\.com' +- '(.*\.)?irask\.com' +- '(.*\.)?istory\.com' +- '(.*\.)?itanswer\.com' +- '(.*\.)?itanwolf\.org' +- '(.*\.)?itcode\.net' +- '(.*\.)?itcoden\.com' +- '(.*\.)?itdetail\.com' +- '(.*\.)?iterhub\.com' +- '(.*\.)?iters\.com' +- '(.*\.)?itforlearning\.org' +- '(.*\.)?itfreak\.com' +- '(.*\.)?ithubhelp\.com' +- '(.*\.)?ithubissues\.com' +- '(.*\.)?ithubja\.com' +- '(.*\.)?ithublab\.com' +- '(.*\.)?ithubmate\.com' +- '(.*\.)?ithubmemory\.com' +- '(.*\.)?ithubplus\.com' +- '(.*\.)?ithubrecord\.com' +- '(.*\.)?itizendium\.org' +- '(.*\.)?itmemories\.com' +- '(.*\.)?itmemory\.cn' +- '(.*\.)?itmetadata\.com' +- '(.*\.)?itmotion\.com' +- '(.*\.)?iu2\.net' +- '(.*\.)?iupacabra\.com' +- '(.*\.)?ivepcwiki\.ru' +- '(.*\.)?iving-sun\.com' +- '(.*\.)?iwa\.wiki' +- '(.*\.)?iwib\.org' +- '(.*\.)?ixes\.pub' +- '(.*\.)?ixpython\.com' +- '(.*\.)?izzycoding\.com' +- '(.*\.)?jaxhispano\.com' +- '(.*\.)?jcxy\.com' +- '(.*\.)?kuum\.org' +- '(.*\.)?lageroyale\.com' +- '(.*\.)?lassmethod\.dev' +- '(.*\.)?leepcoder\.com' +- '(.*\.)?lfishgene\.com' +- '(.*\.)?lgebra\.com' +- '(.*\.)?lhow\.com' +- '(.*\.)?link\.in' +- '(.*\.)?lltodev\.com' +- '(.*\.)?lobalizethis\.org' +- '(.*\.)?lobalwikionline\.com' +- '(.*\.)?log\.club' +- '(.*\.)?logmepost\.com' +- '(.*\.)?logspot\.com' +- '(.*\.)?lquds\.edu' +- '(.*\.)?lt\.bme\.hu' +- '(.*\.)?luecomtech\.com' +- '(.*\.)?luffyfables\.com' +- '(.*\.)?lutterrepos\.com' +- '(.*\.)?lvrclothing\.com' +- '(.*\.)?lwaysemmyhope\.com' +- '(.*\.)?m-coder\.com' +- '(.*\.)?mail-pro\.info' +- '(.*\.)?mailconverts\.info' +- '(.*\.)?mlphp\.com' +- '(.*\.)?mong\.ru' +- '(.*\.)?mong\.wiki' +- '(.*\.)?mpires-r\.us' +- '(.*\.)?msdk\.com' +- '(.*\.)?mstep\.org' +- '(.*\.)?mtqy\.com' +- '(.*\.)?muddycup\.com' +- '(.*\.)?nbate\.com' +- '(.*\.)?ncodingcompiler\.com' +- '(.*\.)?ncyclopaedia\.bid' +- '(.*\.)?ncyclopedia\.kz' +- '(.*\.)?ndgn\.com' +- '(.*\.)?ndroidrepo\.com' +- '(.*\.)?news\.vip' +- '(.*\.)?ngrom\.com' +- '(.*\.)?ngularfixing\.com' +- '(.*\.)?ngularquestions\.com' +- '(.*\.)?nippmate\.com' +- '(.*\.)?nnominds\.com' +- '(.*\.)?npmjs\.org' +- '(.*\.)?npsummit\.com' +- '(.*\.)?nsaurus\.com' +- '(.*\.)?nswacode\.com' +- '(.*\.)?nswall\.com' +- '(.*\.)?nswer-id\.com' +- '(.*\.)?nswerbun\.com' +- '(.*\.)?nswerforyou\.net' +- '(.*\.)?nsweright\.com' +- '(.*\.)?nswerlib\.com' +- '(.*\.)?nswerspoint\.com' +- '(.*\.)?ntelligentsystemsmonitoring\.com' +- '(.*\.)?ntellipaat\.com' +- '(.*\.)?nterface\.pub' +- '(.*\.)?ntworten\.top' +- '(.*\.)?ntwortenhier\.me' +- '(.*\.)?nvalidtype\.com' +- '(.*\.)?nyabs\.com' +- '(.*\.)?nycodings\.com' +- '(.*\.)?oblenaz\.org' +- '(.*\.)?obrelinux\.info' +- '(.*\.)?ocalcoder\.org' +- '(.*\.)?ocker\.com' +- '(.*\.)?ockerquestions\.com' +- '(.*\.)?ocway\.net' +- '(.*\.)?ode-discuss\.com' +- '(.*\.)?ode-error\.com' +- '(.*\.)?ode-examples\.net' +- '(.*\.)?ode-paper\.com' +- '(.*\.)?ode911\.top' +- '(.*\.)?oded3\.com' +- '(.*\.)?odefaq\.info' +- '(.*\.)?odefaq\.ru' +- '(.*\.)?odeflow\.site' +- '(.*\.)?odefordev\.com' +- '(.*\.)?odegear\.dev' +- '(.*\.)?odegrepper\.com' +- '(.*\.)?odeguides\.site' +- '(.*\.)?odehero\.jp' +- '(.*\.)?odehunter\.cc' +- '(.*\.)?odeindex\.ru' +- '(.*\.)?odejzy\.com' +- '(.*\.)?odemonkey\.link' +- '(.*\.)?odengineering\.ru' +- '(.*\.)?odenong\.com' +- '(.*\.)?oder-solution-jp\.com' +- '(.*\.)?oder-solution-ru\.com' +- '(.*\.)?oder\.gay' +- '(.*\.)?oder\.social' +- '(.*\.)?oder\.work' +- '(.*\.)?oderedirect\.com' +- '(.*\.)?oderoad\.in' +- '(.*\.)?oderoad\.ru' +- '(.*\.)?oderquestion\.ru' +- '(.*\.)?odersatellite\.com' +- '(.*\.)?odertw\.com' +- '(.*\.)?odespots\.com' +- '(.*\.)?odesprogram\.com' +- '(.*\.)?odesti\.com' +- '(.*\.)?odetd\.com' +- '(.*\.)?odeutility\.org' +- '(.*\.)?odewdw\.com' +- '(.*\.)?odingdict\.com' +- '(.*\.)?odingwithfun\.com' +- '(.*\.)?oftbranchdevelopers\.com' +- '(.*\.)?oftware-testing\.com' +- '(.*\.)?ogovori\.info' +- '(.*\.)?ohndeerecreditpowerplan\.com' +- '(.*\.)?oidcc\.com' +- '(.*\.)?oinside\.com' +- '(.*\.)?okasi\.live' +- '(.*\.)?okry\.com' +- '(.*\.)?olangexample\.com' +- '(.*\.)?olangissues\.com' +- '(.*\.)?olangrepo\.com' +- '(.*\.)?olkstalk\.com' +- '(.*\.)?olutionschecker\.com' +- '(.*\.)?olveforum\.com' +- '(.*\.)?omainelespailles\.net' +- '(.*\.)?ompsekret\.ru' +- '(.*\.)?onfigrouter\.com' +- '(.*\.)?ong-faq\.com' +- '(.*\.)?onic\.cn' +- '(.*\.)?onolik\.com' +- '(.*\.)?ontactform\.dev' +- '(.*\.)?oogle-yandex\.info' +- '(.*\.)?oolchr\.com' +- '(.*\.)?oolfire25\.com' +- '(.*\.)?ooobar\.com' +- '(.*\.)?ootpanic\.com' +- '(.*\.)?opcode\.in' +- '(.*\.)?opyfuture\.com' +- '(.*\.)?opyprogramming\.com' +- '(.*\.)?oraprojects\.net' +- '(.*\.)?oredump\.biz' +- '(.*\.)?orje\.com' +- '(.*\.)?orldgrowthtoday\.com' +- '(.*\.)?orumming\.com' +- '(.*\.)?otadev\.com' +- '(.*\.)?otaeta\.com' +- '(.*\.)?otcrash\.com' +- '(.*\.)?ounggeeks\.in' +- '(.*\.)?ousu\.in' +- '(.*\.)?outinepanic\.com' +- '(.*\.)?ovov\.com' +- '(.*\.)?owcoding\.com' +- '(.*\.)?oweruser\.guru' +- '(.*\.)?owongan\.live' +- '(.*\.)?owtobuildsoftware\.com' +- '(.*\.)?owtofix\.io' +- '(.*\.)?oxhoidap\.com' +- '(.*\.)?oyk\.com' +- '(.*\.)?ozdizimi\.com' +- '(.*\.)?p-qa\.com' +- '(.*\.)?pcodeqa\.com' +- '(.*\.)?pec-zone\.ru' +- '(.*\.)?pensourceagenda\.com' +- '(.*\.)?pensourcelibs\.com' +- '(.*\.)?piegato\.com' +- '(.*\.)?pkg\.in' +- '(.*\.)?plunktool\.com' +- '(.*\.)?plusplusbug\.info' +- '(.*\.)?pmmirror\.com' +- '(.*\.)?pndev\.com' +- '(.*\.)?ppsloveworld\.com' +- '(.*\.)?prosi\.pro' +- '(.*\.)?qcode\.com' +- '(.*\.)?qlite\.in' +- '(.*\.)?queryscript\.net' +- '(.*\.)?quora\.com' +- '(.*\.)?r1g\.com' +- '(.*\.)?ra-loi-cau-hoi-phat-trien-web\.com' +- '(.*\.)?raask\.com' +- '(.*\.)?rabthiscode\.com' +- '(.*\.)?racholar\.top' +- '(.*\.)?raef\.io' +- '(.*\.)?rameboxxindore\.com' +- '(.*\.)?refcode\.com' +- '(.*\.)?retagteam\.com' +- '(.*\.)?rex24\.com' +- '(.*\.)?rianlovin\.com' +- '(.*\.)?ritguidenewyork\.net' +- '(.*\.)?roanswers\.org' +- '(.*\.)?rocante\.dev' +- '(.*\.)?rog-help\.ru' +- '(.*\.)?rogi\.pro' +- '(.*\.)?rograide\.com' +- '(.*\.)?rogrammatic\.solutions' +- '(.*\.)?rogrammierfrage\.com' +- '(.*\.)?rogramming-articles\.com' +- '(.*\.)?rojectbackpack\.org' +- '(.*\.)?rokbase\.com' +- '(.*\.)?roubuntu\.ru' +- '(.*\.)?rrors-solved\.com' +- '(.*\.)?rrorsandanswers\.com' +- '(.*\.)?rrorsfixing\.com' +- '(.*\.)?ruecodes\.net' +- '(.*\.)?rwiki\.wiki' +- '(.*\.)?ry2explore\.com' +- '(.*\.)?scodetips\.com' +- '(.*\.)?sdn\.net' +- '(.*\.)?sharp\.org' +- '(.*\.)?sk-dev\.ru' +- '(.*\.)?sk-ubuntu\.ru' +- '(.*\.)?skandroidquestions\.com' +- '(.*\.)?skcodes\.net' +- '(.*\.)?skcodez\.com' +- '(.*\.)?skdev\.info' +- '(.*\.)?skdev\.ru' +- '(.*\.)?skdev\.vn' +- '(.*\.)?skdevz\.com' +- '(.*\.)?skentire\.net' +- '(.*\.)?skfrance\.me' +- '(.*\.)?sklobster\.com' +- '(.*\.)?skubuntu\.ru' +- '(.*\.)?skvoprosy\.com' +- '(.*\.)?slant\.co': false +- '(.*\.)?smap\.xyz' +- '(.*\.)?solution\.pro' +- '(.*\.)?somimaktaba\.com' +- '(.*\.)?sprogram\.com' +- '(.*\.)?sqa\.net' +- '(.*\.)?srepos\.com' +- '(.*\.)?ssueantenna\.com' +- '(.*\.)?ssuecloser\.com' +- '(.*\.)?ssueexplorer\.com' +- '(.*\.)?ssuehint\.com' +- '(.*\.)?ssuemode\.com' +- '(.*\.)?ssues-world\.com' +- '(.*\.)?stack\.cn' +- '(.*\.)?strophel\.org' +- '(.*\.)?szz\.org' +- '(.*\.)?t-mure\.jp\.net' +- '(.*\.)?t-roy-ru\.com' +- '(.*\.)?t-swarm\..*' +- '(.*\.)?t1352\.com' +- '(.*\.)?tackallflow\.com' +- '(.*\.)?tackanswers\.net' +- '(.*\.)?tackfault\.net' +- '(.*\.)?tackfinder\.jp\.net' +- '(.*\.)?tackfinder\.ru' +- '(.*\.)?tackguides\.com' +- '(.*\.)?tackify\.dev' +- '(.*\.)?tackoom\.com' +- '(.*\.)?tackorigin\.com' +- '(.*\.)?tackoverflood\.com' +- '(.*\.)?tackoverflowpoint\.com' +- '(.*\.)?tackovergo\.com' +- '(.*\.)?tackoverline\.cyou' +- '(.*\.)?tackprinter\.com' +- '(.*\.)?tackqna\.com' +- '(.*\.)?tackru\.com' +- '(.*\.)?tackubuntu\.com' +- '(.*\.)?tbaoku\.cn' +- '(.*\.)?tcodar\.com' +- '(.*\.)?tdaan\.com' +- '(.*\.)?tecnote\.com' +- '(.*\.)?tecnotes\.com' +- '(.*\.)?tectec\.com' +- '(.*\.)?teramos\.com' +- '(.*\.)?thabasca-foto\.com' +- '(.*\.)?tnursery\.com' +- '(.*\.)?to5answer\.com' +- '(.*\.)?to5science\.com' +- '(.*\.)?tormcrow\.dev' +- '(.*\.)?translater\.com' +- '(.*\.)?tring\.quest' +- '(.*\.)?ttone\.ma' +- '(.*\.)?ttutorialpoint\.com' +- '(.*\.)?tudytonight\.com' +- '(.*\.)?tuto\.com' +- '(.*\.)?tuto\.com' +- '(.*\.)?tw01\.com' +- '(.*\.)?tyatnishna\.ru' +- '(.*\.)?u-wiki\.ru' +- '(.*\.)?uabr\.com' +- '(.*\.)?uanmacha\.com' +- '(.*\.)?uares\.ru' +- '(.*\.)?uejscode\.com' +- '(.*\.)?uerythreads\.com' +- '(.*\.)?uestion-it\.com' +- '(.*\.)?uestu\.ru' +- '(.*\.)?uick-advisors\.com' +- '(.*\.)?uickanswer\.blog' +- '(.*\.)?uicycleanses\.com' +- '(.*\.)?uildwebhost\.com' +- '(.*\.)?uildwiki\.ru' +- '(.*\.)?ujigu\.com' +- '(.*\.)?ulinarydegree\.info' +- '(.*\.)?ullanswer\.com' +- '(.*\.)?ulloverthing\.com' +- '(.*\.)?ullrequest\.ru' +- '(.*\.)?ullstack\.cafe' +- '(.*\.)?ullstackuser\.com' +- '(.*\.)?ulti-let\.co\.uk' +- '(.*\.)?um-berlin\.de' +- '(.*\.)?umblr\.com' +- '(.*\.)?unexception\.com' +- '(.*\.)?unflowercreations\.org' +- '(.*\.)?uoduokou\.com' +- '(.*\.)?uomiphp\.com' +- '(.*\.)?uouseo\.com' +- '(.*\.)?uper-unix\.com' +- '(.*\.)?upgallery\.com' +- '(.*\.)?uphp\.com' +- '(.*\.)?uptitles\.de' +- '(.*\.)?urladylakes\.org' +- '(.*\.)?urpython\.com' +- '(.*\.)?urrell2012\.com' +- '(.*\.)?ursbrand\.com' +- '(.*\.)?uscin\.com' +- '(.*\.)?ushiciku\.cn' +- '(.*\.)?usl\.ru' +- '(.*\.)?ussievitamin\.com' +- '(.*\.)?ustrepo\.com' +- '(.*\.)?ustshowcode\.com' +- '(.*\.)?ustshowmethecode\.com' +- '(.*\.)?utorialguruji\.com' +- '(.*\.)?utorialink\.com' +- '(.*\.)?utorialmeta\.com' +- '(.*\.)?utorialmore\.com' +- '(.*\.)?uttonedfoundation\.org' +- '(.*\.)?uzzphp\.com' +- '(.*\.)?vdos\.com' +- '(.*\.)?ver\.wiki' +- '(.*\.)?vercoder\.net' +- '(.*\.)?vercoder\.ru' +- '(.*\.)?verstack\.in' +- '(.*\.)?wblogs\.net' +- '(.*\.)?wenku\.com' +- '(.*\.)?wesomeopensource\.com' +- '(.*\.)?wiftobc\.com' +- '(.*\.)?witch-case\.com' +- '(.*\.)?witch-case\.ru' +- '(.*\.)?xamplefiles\.net' +- '(.*\.)?xc\.wiki' +- '(.*\.)?xceptionshub\.com' +- '(.*\.)?xchangetuts\.com' +- '(.*\.)?xplained\.today' +- '(.*\.)?xtends\.run' +- '(.*\.)?xtstage\.net' +- '(.*\.)?xtutorial\.com' +- '(.*\.)?y123\.ink' +- '(.*\.)?y4u\.net' +- '(.*\.)?y4u\.org' +- '(.*\.)?ycaeum\.dev' +- '(.*\.)?yclowiki\.org' +- '(.*\.)?ykidq\.com' +- '(.*\.)?yntaxfix\.com' +- '(.*\.)?ypepad\.com' +- '(.*\.)?yquestions\.com' +- '(.*\.)?ysadminde\.com' +- '(.*\.)?ytemeta\.vip' +- '(.*\.)?ython-stack\.de' +- '(.*\.)?ython2\.net' +- '(.*\.)?ython\.engineering' +- '(.*\.)?ythonawesome\.com' +- '(.*\.)?ythondict\.com' +- '(.*\.)?ythonfixing\.com' +- '(.*\.)?ythonhowto\.org' +- '(.*\.)?ythonissues\.com' +- '(.*\.)?ythonlang\.dev' +- '(.*\.)?ythonmana\.com' +- '(.*\.)?ythonrepo\.com' +- '(.*\.)?ythonshowcase\.com' +- '(.*\.)?ythontechworld\.com' +- '(.*\.)?ythonwd\.com' +- '(.*\.)?yzant\.com' +- '(.*\.)?zazworld\.com' +- '(.*\.)?zun\.app' diff --git a/config/settings.yml b/config/settings.yml index 0b27abf..02cf596 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -73,14 +73,18 @@ server: # public URL of the instance, to ensure correct inbound links. Is overwritten # by ${SEARXNG_URL}. base_url: false # "http://example.com/location" - limiter: true # rate limit the number of request on the instance, block some bots - public_instance: false # enable features designed only for public instances + # rate limit the number of request on the instance, block some bots. + # Is overwritten by ${SEARXNG_LIMITER} + limiter: true + # enable features designed only for public instances. + # Is overwritten by ${SEARXNG_PUBLIC_INSTANCE} + public_instance: false # If your instance owns a /etc/searxng/settings.yml file, then set the following # values there. secret_key: "ultrasecretkey" # Is overwritten by ${SEARXNG_SECRET} - # Proxying image results through searx + # Proxy image results through SearXNG. Is overwritten by ${SEARXNG_IMAGE_PROXY} image_proxy: false # 1.0 and 1.1 are supported http_protocol_version: "1.0" @@ -96,11 +100,12 @@ server: redis: # URL to connect redis database. Is overwritten by ${SEARXNG_REDIS_URL}. # https://docs.searxng.org/admin/settings/settings_redis.html#settings-redis - url: redis://redis + url: redis://valkey ui: # Custom static path - leave it blank if you didn't change static_path: "" + # Is overwritten by ${SEARXNG_STATIC_USE_HASH}. static_use_hash: false # Custom templates path - leave it blank if you didn't change templates_path: "" @@ -214,8 +219,8 @@ enabled_plugins: - 'Tracker URL remover' - 'Ahmia blacklist' # activation depends on outgoing.using_tor_proxy # # these plugins are disabled if nothing is configured .. - - 'Hostname replace' # see hostname_replace configuration below - - 'Calculator plugin' + - 'Hostnames plugin' # see 'hostnames' configuration below + - 'Basic Calculator' # - 'Open Access DOI rewrite' # - 'Tor check plugin' # # Read the docs before activate: auto-detection of the language could be @@ -223,19 +228,13 @@ enabled_plugins: # # preferences if they want. - 'Autodetect search language' -# Configuration of the "Hostname replace" plugin: +# Configuration of the "Hostnames plugin": # -hostname_replace: - '(.*\.)?quora\.com': false - '(.*\.)?slant\.co': false -# '(.*\.)?youtube\.com$': 'invidious.example.com' -# '(.*\.)?youtu\.be$': 'invidious.example.com' -# '(.*\.)?youtube-noocookie\.com$': 'yotter.example.com' -# '(.*\.)?reddit\.com$': 'teddit.example.com' -# '(.*\.)?redd\.it$': 'teddit.example.com' -# '(www\.)?twitter\.com$': 'nitter.example.com' -# # to remove matching host names from result list, set value to false -# 'spam\.example\.com': false +hostnames: + replace: + '(.*\.)?reddit\.com$': 'old.reddit.com' + '(.*\.)?redd\.it$': 'old.reddit.com' + remove: 'hostnames_remove.yml' checker: # disable checker when in debug mode @@ -299,6 +298,11 @@ engines: shortcut: 9g disabled: true + - name: alpine linux packages + engine: alpinelinux + disabled: true + shortcut: alp + - name: annas archive engine: annas_archive disabled: true @@ -594,6 +598,24 @@ engines: shortcut: dh categories: [it, packages] + - name: encyclosearch + engine: json_engine + shortcut: es + categories: general + paging: true + search_url: https://encyclosearch.org/encyclosphere/search?q={query}&page={pageno}&resultsPerPage=15 + results_query: Results + url_query: SourceURL + title_query: Title + content_query: Description + disabled: true + about: + website: https://encyclosearch.org + official_api_documentation: https://encyclosearch.org/docs/#/rest-api + use_official_api: true + require_api_key: false + results: JSON + - name: erowid engine: xpath paging: true @@ -717,6 +739,11 @@ engines: engine: fdroid shortcut: fd + - name: findthatmeme + engine: findthatmeme + shortcut: ftm + disabled: true + - name: flickr categories: images shortcut: fl @@ -759,14 +786,23 @@ engines: timeout: 8.0 disabled: true + - name: geizhals + engine: geizhals + shortcut: geiz + disabled: true + - name: genius engine: genius shortcut: gen - name: gentoo - engine: gentoo + engine: mediawiki shortcut: ge - timeout: 10.0 + categories: ["it", "software wikis"] + base_url: "https://wiki.gentoo.org/" + api_path: "api.php" + search_type: text + timeout: 10 - name: gitlab engine: json_engine @@ -914,6 +950,15 @@ engines: engine: hex shortcut: hex disabled: true + # Valid values: name inserted_at updated_at total_downloads recent_downloads + sort_criteria: "recent_downloads" + page_size: 10 + + - name: crates.io + engine: crates + shortcut: crates + disabled: true + timeout: 6.0 - name: hoogle engine: xpath @@ -1189,6 +1234,7 @@ engines: # read https://docs.searxng.org/dev/engines/online/mullvad_leta.html # - name: mullvadleta # engine: mullvad_leta + # leta_engine: google # choose one of the following: google, brave # use_cache: true # Only 100 non-cache searches per day, suggested only for private instances # search_url: https://leta.mullvad.net # categories: [general, web] @@ -1566,6 +1612,27 @@ engines: api_site: 'superuser' categories: [it, q&a] + - name: discuss.python + engine: discourse + shortcut: dpy + base_url: 'https://discuss.python.org' + categories: [it, q&a] + disabled: true + + - name: caddy.community + engine: discourse + shortcut: caddy + base_url: 'https://caddy.community' + categories: [it, q&a] + disabled: true + + - name: pi-hole.community + engine: discourse + shortcut: pi + categories: [it, q&a] + base_url: 'https://discourse.pi-hole.net' + disabled: true + - name: searchcode code engine: searchcode_code shortcut: scc @@ -1752,7 +1819,6 @@ engines: - name: vimeo engine: vimeo shortcut: vm - disabled: true - name: wiby engine: json_engine @@ -1984,26 +2050,25 @@ engines: - name: mojeek shortcut: mjk - engine: xpath - paging: true + engine: mojeek categories: [general, web] - search_url: https://www.mojeek.com/search?q={query}&s={pageno}&lang={lang}&lb={lang} - results_xpath: //ul[@class="results-standard"]/li/a[@class="ob"] - url_xpath: ./@href - title_xpath: ../h2/a - content_xpath: ..//p[@class="s"] - suggestion_xpath: //div[@class="top-info"]/p[@class="top-info spell"]/em/a - first_page_num: 0 - page_size: 10 - max_page: 100 disabled: true - about: - website: https://www.mojeek.com/ - wikidata_id: Q60747299 - official_api_documentation: https://www.mojeek.com/services/api.html/ - use_official_api: false - require_api_key: false - results: HTML + + - name: mojeek images + shortcut: mjkimg + engine: mojeek + categories: [images, web] + search_type: images + paging: false + disabled: true + + - name: mojeek news + shortcut: mjknews + engine: mojeek + categories: [news, web] + search_type: news + paging: false + disabled: true - name: moviepilot engine: moviepilot @@ -2068,28 +2133,35 @@ engines: disabled: true - name: yacy + # https://docs.searxng.org/dev/engines/online/yacy.html engine: yacy categories: general search_type: text base_url: - https://yacy.searchlab.eu - - https://search.lomig.me - - https://yacy.ecosys.eu - - https://search.webproject.link + # see https://github.com/searxng/searxng/pull/3631#issuecomment-2240903027 + # - https://search.kyun.li + # - https://yacy.securecomcorp.eu + # - https://yacy.myserv.ca + # - https://yacy.nsupdate.info + # - https://yacy.electroncash.de shortcut: ya disabled: true - # required if you aren't using HTTPS for your local yacy instance - # https://docs.searxng.org/dev/engines/online/yacy.html - # enable_http: true - # timeout: 3.0 - # search_mode: 'global' + # if you aren't using HTTPS for your local yacy instance disable https + # enable_http: false + search_mode: 'global' + # timeout can be reduced in 'local' search mode + timeout: 5.0 - name: yacy images engine: yacy + network: yacy categories: images search_type: image shortcut: yai disabled: true + # timeout can be reduced in 'local' search mode + timeout: 5.0 - name: rumble engine: rumble diff --git a/config/uwsgi.ini b/config/uwsgi.ini new file mode 100644 index 0000000..9db3d76 --- /dev/null +++ b/config/uwsgi.ini @@ -0,0 +1,54 @@ +[uwsgi] +# Who will run the code +uid = searxng +gid = searxng + +# Number of workers (usually CPU count) +# default value: %k (= number of CPU core, see Dockerfile) +workers = %k + +# Number of threads per worker +# default value: 4 (see Dockerfile) +threads = 4 + +# The right granted on the created socket +chmod-socket = 666 + +# Plugin to use and interpreter config +single-interpreter = true +master = true +plugin = python3 +lazy-apps = true +enable-threads = 4 + +# Module to import +module = searx.webapp + +# Virtualenv and python path +pythonpath = /usr/local/searxng/ +chdir = /usr/local/searxng/searx/ + +# automatically set processes name to something meaningful +auto-procname = true + +# Disable request logging for privacy +disable-logging = true +log-5xx = true + +# Set the max size of a request (request-body excluded) +buffer-size = 8192 + +# No keep alive +# See https://github.com/searx/searx-docker/issues/24 +add-header = Connection: close + +# Follow SIGTERM convention +# See https://github.com/searxng/searxng/issues/3427 +die-on-term + +# uwsgi serves the static files +static-map = /static=/usr/local/searxng/searx/static +# expires set to one day +static-expires = /* 86400 +static-gzip-all = True +offload-threads = 4 diff --git a/diff.sh b/diff.sh index 032bed1..578dac1 100755 --- a/diff.sh +++ b/diff.sh @@ -5,11 +5,15 @@ DOCKER_API='https://hub.docker.com/v2/namespaces/searxng/repositories/searxng' REPO='https://github.com/searxng/searxng/raw' -new_tag="$(curl -L "$DOCKER_API/tags" | jq -r '.results[3].name')" +tmp="$(mktemp)" + +new_tag="$(curl -L "$DOCKER_API/tags" | jq -r '.results[2].name')" new_commit="$(grep -Eo '\w+$' <<< "$new_tag")" -for f in config/*; do - $EDITOR -d -c "wincmd l" -- "$REPO/$new_commit/searx/${f##*/}" "$f" +for f in limiter.toml settings.yml; do + if curl -Lo "$tmp" "$REPO/$new_commit/searx/$f" && ! diff -Z "$tmp" "config/$f" > /dev/null; then + $EDITOR -d -c "wincmd l" -- "config/$f" "$tmp" + fi done sed -i "/^IMAGEAPP=/s/:.*/:$new_tag/" .env diff --git a/manifests/bin/deploy.sh b/manifests/bin/deploy.sh index 033aa37..30847ed 100755 --- a/manifests/bin/deploy.sh +++ b/manifests/bin/deploy.sh @@ -38,6 +38,6 @@ kcreatecm searxng \ --from-file=config/settings.yml \ --from-file=config/limiter.toml -kapply common/redis.yaml common/app.yaml +kapply common/valkey.yaml common/app.yaml kubectl rollout restart deployment app diff --git a/manifests/common/app.yaml b/manifests/common/app.yaml index bc8fd3f..5542b23 100644 --- a/manifests/common/app.yaml +++ b/manifests/common/app.yaml @@ -58,8 +58,6 @@ spec: labels: app: app spec: - imagePullSecrets: - - name: regcred containers: - name: app image: "$IMAGEAPP" diff --git a/manifests/common/redis.yaml b/manifests/common/valkey.yaml similarity index 63% rename from manifests/common/redis.yaml rename to manifests/common/valkey.yaml index d6c1929..d00f17a 100644 --- a/manifests/common/redis.yaml +++ b/manifests/common/valkey.yaml @@ -2,37 +2,37 @@ apiVersion: v1 kind: Service metadata: - name: redis + name: valkey labels: - app: redis + app: valkey spec: selector: - app: redis + app: valkey ports: - - name: redis + - name: valkey port: 6379 - targetPort: redis + targetPort: valkey --- apiVersion: apps/v1 kind: StatefulSet metadata: - name: redis + name: valkey spec: selector: matchLabels: - app: redis - serviceName: redis + app: valkey + serviceName: valkey replicas: $NB_REPLICAS template: metadata: labels: - app: redis + app: valkey spec: containers: - - name: redis - image: docker.io/redis:latest + - name: valkey + image: docker.io/valkey/valkey:latest ports: - - name: redis + - name: valkey containerPort: 6379 volumeMounts: - name: data