gh-pages: updated

This commit is contained in:
Adam Tauber 2020-10-08 14:19:38 +02:00
parent a355645850
commit 235139b18a
26 changed files with 10983 additions and 912 deletions

View File

@ -1,31 +1,31 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: foo Pages: 1 -->
<svg width="62pt" height="116pt"
viewBox="0.00 0.00 62.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>foo</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
<!-- bar -->
<g id="node1" class="node">
<title>bar</title>
<ellipse fill="none" stroke="#000000" cx="27" cy="-90" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">bar</text>
<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">bar</text>
</g>
<!-- baz -->
<g id="node2" class="node">
<title>baz</title>
<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">baz</text>
<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00">baz</text>
</g>
<!-- bar&#45;&gt;baz -->
<g id="edge1" class="edge">
<title>bar&#45;&gt;baz</title>
<path fill="none" stroke="#000000" d="M27,-71.8314C27,-64.131 27,-54.9743 27,-46.4166"/>
<polygon fill="#000000" stroke="#000000" points="30.5001,-46.4132 27,-36.4133 23.5001,-46.4133 30.5001,-46.4132"/>
<path fill="none" stroke="black" d="M27,-71.7C27,-63.98 27,-54.71 27,-46.11"/>
<polygon fill="black" stroke="black" points="30.5,-46.1 27,-36.1 23.5,-46.1 30.5,-46.1"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,156 +1,156 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="618pt" height="529pt"
viewBox="0.00 0.00 618.00 529.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 525)">
<svg width="603pt" height="415pt"
viewBox="0.00 0.00 603.00 415.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 411)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-525 614,-525 614,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-411 599,-411 599,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_searx</title>
<polygon fill="#fafafa" stroke="#000000" points="8,-8 8,-444 602,-444 602,-8 8,-8"/>
<text text-anchor="middle" x="305" y="-428.8" font-family="Sans" font-size="14.00" fill="#000000">Searx instance</text>
<polygon fill="#fafafa" stroke="black" points="8,-8 8,-330 587,-330 587,-8 8,-8"/>
<text text-anchor="middle" x="297.5" y="-314.8" font-family="Sans" font-size="14.00">Searx instance</text>
</g>
<!-- browser -->
<g id="node1" class="node">
<title>browser</title>
<polygon fill="#ffffcc" stroke="#000000" points="75,-521 5.2878,-503 75,-485 144.7122,-503 75,-521"/>
<polyline fill="none" stroke="#000000" points="16.9067,-506.0001 16.9067,-499.9999 "/>
<polyline fill="none" stroke="#000000" points="63.3811,-488.0001 86.6189,-488.0001 "/>
<polyline fill="none" stroke="#000000" points="133.0933,-499.9999 133.0933,-506.0001 "/>
<polyline fill="none" stroke="#000000" points="86.6189,-517.9999 63.3811,-517.9999 "/>
<text text-anchor="middle" x="75" y="-499.3" font-family="Sans" font-size="14.00" fill="#000000">Browser</text>
<polygon fill="#ffffcc" stroke="black" points="74,-407 6.8,-389 74,-371 141.2,-389 74,-407"/>
<polyline fill="none" stroke="black" points="18.39,-392.1 18.39,-385.9 "/>
<polyline fill="none" stroke="black" points="62.41,-374.1 85.59,-374.1 "/>
<polyline fill="none" stroke="black" points="129.61,-385.9 129.61,-392.1 "/>
<polyline fill="none" stroke="black" points="85.59,-403.9 62.41,-403.9 "/>
<text text-anchor="middle" x="74" y="-385.3" font-family="Sans" font-size="14.00">Browser</text>
</g>
<!-- rp -->
<g id="node2" class="node">
<title>rp</title>
<g id="a_node2"><a xlink:href="https://searx.github.io/searx/utils/filtron.sh.html#public-reverse-proxy" xlink:title="Reverse Proxy">
<polygon fill="#ffffcc" stroke="#000000" points="134,-413 16,-413 16,-377 134,-377 134,-413"/>
<text text-anchor="middle" x="75" y="-391.3" font-family="Sans" font-size="14.00" fill="#000000">Reverse Proxy</text>
<polygon fill="#ffffcc" stroke="black" points="132,-299 16,-299 16,-263 132,-263 132,-299"/>
<text text-anchor="middle" x="74" y="-277.3" font-family="Sans" font-size="14.00">Reverse Proxy</text>
</a>
</g>
</g>
<!-- browser&#45;&gt;rp -->
<g id="edge1" class="edge">
<title>browser&#45;&gt;rp</title>
<path fill="none" stroke="#000000" d="M75,-484.6793C75,-467.821 75,-442.5651 75,-423.147"/>
<polygon fill="#000000" stroke="#000000" points="78.5001,-423.0501 75,-413.0502 71.5001,-423.0502 78.5001,-423.0501"/>
<text text-anchor="middle" x="98" y="-455.8" font-family="Sans" font-size="14.00" fill="#000000">HTTPS</text>
<path fill="none" stroke="black" d="M74,-370.97C74,-354.38 74,-328.88 74,-309.43"/>
<polygon fill="black" stroke="black" points="77.5,-309.34 74,-299.34 70.5,-309.34 77.5,-309.34"/>
<text text-anchor="middle" x="96.5" y="-341.8" font-family="Sans" font-size="14.00">HTTPS</text>
</g>
<!-- filtron -->
<g id="node3" class="node">
<title>filtron</title>
<g id="a_node3"><a xlink:href="https://searx.github.io/searx/utils/filtron.sh.html" xlink:title="Filtron">
<polygon fill="#ffffcc" stroke="#000000" points="105.5,-288 44.5,-288 44.5,-252 105.5,-252 105.5,-288"/>
<text text-anchor="middle" x="75" y="-266.3" font-family="Sans" font-size="14.00" fill="#000000">Filtron</text>
<polygon fill="#ffffcc" stroke="black" points="103.5,-212 44.5,-212 44.5,-176 103.5,-176 103.5,-212"/>
<text text-anchor="middle" x="74" y="-190.3" font-family="Sans" font-size="14.00">Filtron</text>
</a>
</g>
</g>
<!-- rp&#45;&gt;filtron -->
<g id="edge4" class="edge">
<title>rp&#45;&gt;filtron</title>
<path fill="none" stroke="#000000" d="M75,-376.8239C75,-356.2723 75,-322.5472 75,-298.4893"/>
<polygon fill="#000000" stroke="#000000" points="78.5001,-298.198 75,-288.198 71.5001,-298.198 78.5001,-298.198"/>
<text text-anchor="middle" x="93.5" y="-328.8" font-family="Sans" font-size="14.00" fill="#000000">HTTP</text>
<path fill="none" stroke="black" d="M74,-262.8C74,-251.16 74,-235.55 74,-222.24"/>
<polygon fill="black" stroke="black" points="77.5,-222.18 74,-212.18 70.5,-222.18 77.5,-222.18"/>
<text text-anchor="middle" x="92" y="-233.8" font-family="Sans" font-size="14.00">HTTP</text>
</g>
<!-- morty -->
<g id="node4" class="node">
<title>morty</title>
<g id="a_node4"><a xlink:href="https://searx.github.io/searx/utils/morty.sh.html" xlink:title="Morty">
<polygon fill="#ffffcc" stroke="#000000" points="180.5,-288 123.5,-288 123.5,-252 180.5,-252 180.5,-288"/>
<text text-anchor="middle" x="152" y="-266.3" font-family="Sans" font-size="14.00" fill="#000000">Morty</text>
<polygon fill="#ffffcc" stroke="black" points="178,-212 122,-212 122,-176 178,-176 178,-212"/>
<text text-anchor="middle" x="150" y="-190.3" font-family="Sans" font-size="14.00">Morty</text>
</a>
</g>
</g>
<!-- rp&#45;&gt;morty -->
<g id="edge2" class="edge">
<title>rp&#45;&gt;morty</title>
<path fill="none" stroke="#000000" d="M89.8355,-376.705C98.0006,-366.2543 108.0569,-352.7317 116,-340 124.4983,-326.3785 132.7784,-310.5167 139.2508,-297.3397"/>
<polygon fill="#000000" stroke="#000000" points="142.4243,-298.8167 143.6215,-288.2897 136.1209,-295.7724 142.4243,-298.8167"/>
<text text-anchor="middle" x="268" y="-328.8" font-family="Sans" font-size="14.00" fill="#000000">optional: images and HTML pages proxy</text>
<path fill="none" stroke="black" d="M95.6,-262.69C101.81,-257.29 108.41,-251.14 114,-245 120.76,-237.56 127.42,-228.84 133.12,-220.79"/>
<polygon fill="black" stroke="black" points="136.11,-222.62 138.91,-212.4 130.35,-218.65 136.11,-222.62"/>
<text text-anchor="middle" x="264.5" y="-233.8" font-family="Sans" font-size="14.00">optional: images and HTML pages proxy</text>
</g>
<!-- static -->
<g id="node5" class="node">
<title>static</title>
<g id="a_node5"><a xlink:href="url to configure static files" xlink:title="Static files">
<polygon fill="#ffffcc" stroke="#000000" points="594,-413 504,-413 504,-377 594,-377 594,-413"/>
<text text-anchor="middle" x="549" y="-391.3" font-family="Sans" font-size="14.00" fill="#000000">Static files</text>
<polygon fill="#ffffcc" stroke="black" points="579.5,-299 490.5,-299 490.5,-263 579.5,-263 579.5,-299"/>
<text text-anchor="middle" x="535" y="-277.3" font-family="Sans" font-size="14.00">Static files</text>
</a>
</g>
</g>
<!-- rp&#45;&gt;static -->
<g id="edge3" class="edge">
<title>rp&#45;&gt;static</title>
<path fill="none" stroke="#000000" d="M134.074,-395C226.433,-395 403.7479,-395 493.718,-395"/>
<polygon fill="#000000" stroke="#000000" points="493.7212,-398.5001 503.7212,-395 493.7211,-391.5001 493.7212,-398.5001"/>
<text text-anchor="middle" x="319" y="-401.8" font-family="Sans" font-size="14.00" fill="#000000">optional: reverse proxy serves directly static files</text>
<path fill="none" stroke="black" d="M132.39,-281C222.02,-281 392.33,-281 479.93,-281"/>
<polygon fill="black" stroke="black" points="480.19,-284.5 490.19,-281 480.19,-277.5 480.19,-284.5"/>
<text text-anchor="middle" x="311.25" y="-287.8" font-family="Sans" font-size="14.00">optional: reverse proxy serves directly static files</text>
</g>
<!-- uwsgi -->
<g id="node6" class="node">
<title>uwsgi</title>
<g id="a_node6"><a xlink:href="https://searx.github.io/searx/utils/searx.sh.html" xlink:title="uwsgi">
<polygon fill="#ffffcc" stroke="#000000" points="188,-163 130,-163 130,-127 188,-127 188,-163"/>
<text text-anchor="middle" x="159" y="-141.3" font-family="Sans" font-size="14.00" fill="#000000">uwsgi</text>
<polygon fill="#ffffcc" stroke="black" points="184.5,-125 127.5,-125 127.5,-89 184.5,-89 184.5,-125"/>
<text text-anchor="middle" x="156" y="-103.3" font-family="Sans" font-size="14.00">uwsgi</text>
</a>
</g>
</g>
<!-- filtron&#45;&gt;uwsgi -->
<g id="edge5" class="edge">
<title>filtron&#45;&gt;uwsgi</title>
<path fill="none" stroke="#000000" d="M87.2143,-251.8239C101.3983,-230.7169 124.9198,-195.7146 141.1515,-171.5603"/>
<polygon fill="#000000" stroke="#000000" points="144.0983,-173.4502 146.7709,-163.198 138.2883,-169.5459 144.0983,-173.4502"/>
<text text-anchor="middle" x="139.5" y="-203.8" font-family="Sans" font-size="14.00" fill="#000000">HTTP</text>
<path fill="none" stroke="black" d="M90.59,-175.8C102.6,-163.36 118.99,-146.36 132.36,-132.5"/>
<polygon fill="black" stroke="black" points="135.01,-134.8 139.43,-125.18 129.97,-129.94 135.01,-134.8"/>
<text text-anchor="middle" x="137" y="-146.8" font-family="Sans" font-size="14.00">HTTP</text>
</g>
<!-- searx1 -->
<g id="node7" class="node">
<title>searx1</title>
<polygon fill="#ffffcc" stroke="#000000" points="99.5,-52 16.5,-52 16.5,-16 99.5,-16 99.5,-52"/>
<text text-anchor="middle" x="58" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #1</text>
<polygon fill="#ffffcc" stroke="black" points="97.5,-52 16.5,-52 16.5,-16 97.5,-16 97.5,-52"/>
<text text-anchor="middle" x="57" y="-30.3" font-family="Sans" font-size="14.00">Searx #1</text>
</g>
<!-- uwsgi&#45;&gt;searx1 -->
<g id="edge6" class="edge">
<title>uwsgi&#45;&gt;searx1</title>
<path fill="none" stroke="#000000" d="M142.3219,-126.6706C125.7281,-108.4339 100.1175,-80.2876 81.4738,-59.7979"/>
<polygon fill="#000000" stroke="#000000" points="84.0217,-57.3975 74.7029,-52.3566 78.8442,-62.1086 84.0217,-57.3975"/>
<path fill="none" stroke="black" d="M132.29,-88.99C119.4,-79.75 103.28,-68.19 89.27,-58.14"/>
<polygon fill="black" stroke="black" points="91.03,-55.1 80.86,-52.11 86.95,-60.79 91.03,-55.1"/>
</g>
<!-- searx2 -->
<g id="node8" class="node">
<title>searx2</title>
<polygon fill="#ffffcc" stroke="#000000" points="200.5,-52 117.5,-52 117.5,-16 200.5,-16 200.5,-52"/>
<text text-anchor="middle" x="159" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #2</text>
<polygon fill="#ffffcc" stroke="black" points="196.5,-52 115.5,-52 115.5,-16 196.5,-16 196.5,-52"/>
<text text-anchor="middle" x="156" y="-30.3" font-family="Sans" font-size="14.00">Searx #2</text>
</g>
<!-- uwsgi&#45;&gt;searx2 -->
<g id="edge7" class="edge">
<title>uwsgi&#45;&gt;searx2</title>
<path fill="none" stroke="#000000" d="M159,-126.6706C159,-109.2373 159,-82.7482 159,-62.5489"/>
<polygon fill="#000000" stroke="#000000" points="162.5001,-62.3566 159,-52.3566 155.5001,-62.3567 162.5001,-62.3566"/>
<path fill="none" stroke="black" d="M156,-88.81C156,-80.79 156,-71.05 156,-62.07"/>
<polygon fill="black" stroke="black" points="159.5,-62.03 156,-52.03 152.5,-62.03 159.5,-62.03"/>
</g>
<!-- searx3 -->
<g id="node9" class="node">
<title>searx3</title>
<polygon fill="#ffffcc" stroke="#000000" points="301.5,-52 218.5,-52 218.5,-16 301.5,-16 301.5,-52"/>
<text text-anchor="middle" x="260" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #3</text>
<polygon fill="#ffffcc" stroke="black" points="295.5,-52 214.5,-52 214.5,-16 295.5,-16 295.5,-52"/>
<text text-anchor="middle" x="255" y="-30.3" font-family="Sans" font-size="14.00">Searx #3</text>
</g>
<!-- uwsgi&#45;&gt;searx3 -->
<g id="edge8" class="edge">
<title>uwsgi&#45;&gt;searx3</title>
<path fill="none" stroke="#000000" d="M175.6781,-126.6706C192.2719,-108.4339 217.8825,-80.2876 236.5262,-59.7979"/>
<polygon fill="#000000" stroke="#000000" points="239.1558,-62.1086 243.2971,-52.3566 233.9783,-57.3975 239.1558,-62.1086"/>
<path fill="none" stroke="black" d="M179.71,-88.99C192.6,-79.75 208.72,-68.19 222.73,-58.14"/>
<polygon fill="black" stroke="black" points="225.05,-60.79 231.14,-52.11 220.97,-55.1 225.05,-60.79"/>
</g>
<!-- searx4 -->
<g id="node10" class="node">
<title>searx4</title>
<polygon fill="#ffffcc" stroke="#000000" points="402.5,-52 319.5,-52 319.5,-16 402.5,-16 402.5,-52"/>
<text text-anchor="middle" x="361" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #4</text>
<polygon fill="#ffffcc" stroke="black" points="394.5,-52 313.5,-52 313.5,-16 394.5,-16 394.5,-52"/>
<text text-anchor="middle" x="354" y="-30.3" font-family="Sans" font-size="14.00">Searx #4</text>
</g>
<!-- uwsgi&#45;&gt;searx4 -->
<g id="edge9" class="edge">
<title>uwsgi&#45;&gt;searx4</title>
<path fill="none" stroke="#000000" d="M188.3725,-128.8596C222.8149,-109.9334 280.1532,-78.4257 319.2181,-56.9594"/>
<polygon fill="#000000" stroke="#000000" points="321.1614,-59.8852 328.2399,-52.0018 317.7903,-53.7504 321.1614,-59.8852"/>
<path fill="none" stroke="black" d="M184.79,-95.68C215.9,-84.52 266.08,-66.53 303.72,-53.03"/>
<polygon fill="black" stroke="black" points="305.26,-56.19 313.5,-49.52 302.9,-49.61 305.26,-56.19"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -1,30 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="76pt" height="116pt"
viewBox="0.00 0.00 75.59 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="85pt" height="116pt"
viewBox="0.00 0.00 84.69 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-112 71.594,-112 71.594,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 80.69,-112 80.69,4 -4,4"/>
<!-- Hello -->
<g id="node1" class="node">
<title>Hello</title>
<ellipse fill="none" stroke="#000000" cx="33.797" cy="-90" rx="30.5947" ry="18"/>
<text text-anchor="middle" x="33.797" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">Hello</text>
<ellipse fill="none" stroke="black" cx="38.35" cy="-90" rx="35.19" ry="18"/>
<text text-anchor="middle" x="38.35" y="-86.3" font-family="Times,serif" font-size="14.00">Hello</text>
</g>
<!-- World -->
<g id="node2" class="node">
<title>World</title>
<ellipse fill="none" stroke="#000000" cx="33.797" cy="-18" rx="33.5952" ry="18"/>
<text text-anchor="middle" x="33.797" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">World</text>
<ellipse fill="none" stroke="black" cx="38.35" cy="-18" rx="38.19" ry="18"/>
<text text-anchor="middle" x="38.35" y="-14.3" font-family="Times,serif" font-size="14.00">World</text>
</g>
<!-- Hello&#45;&#45;World -->
<g id="edge1" class="edge">
<title>Hello&#45;&#45;World</title>
<path fill="none" stroke="#000000" d="M33.797,-71.8314C33.797,-61 33.797,-47.2876 33.797,-36.4133"/>
<path fill="none" stroke="black" d="M38.35,-71.7C38.35,-60.85 38.35,-46.92 38.35,-36.1"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,25 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.1.3 -->
<svg height='48.4227pt' version='1.1' viewBox='57.6088 53.7983 36.5233 48.4227' width='36.5233pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<defs>
<path d='M9.19153 -3.20797C9.42864 -3.20797 9.6797 -3.20797 9.6797 -3.48692S9.42864 -3.76588 9.19153 -3.76588H1.64583C1.40872 -3.76588 1.15766 -3.76588 1.15766 -3.48692S1.40872 -3.20797 1.64583 -3.20797H9.19153Z' id='g0-0'/>
<path d='M5.56513 -3.22192H9.41469C9.60996 -3.22192 9.86102 -3.22192 9.86102 -3.47298C9.86102 -3.73798 9.62391 -3.73798 9.41469 -3.73798H5.56513V-7.58755C5.56513 -7.78281 5.56513 -8.03387 5.31407 -8.03387C5.04907 -8.03387 5.04907 -7.79676 5.04907 -7.58755V-3.73798H1.1995C1.00423 -3.73798 0.753176 -3.73798 0.753176 -3.48692C0.753176 -3.22192 0.990286 -3.22192 1.1995 -3.22192H5.04907V0.627646C5.04907 0.822914 5.04907 1.07397 5.30012 1.07397C5.56513 1.07397 5.56513 0.836862 5.56513 0.627646V-3.22192Z' id='g2-43'/>
<path d='M4.01694 -8.94047C4.01694 -9.26127 4.01694 -9.27522 3.73798 -9.27522C3.40324 -8.89863 2.70585 -8.38257 1.26924 -8.38257V-7.97808C1.59004 -7.97808 2.28742 -7.97808 3.05455 -8.34072V-1.07397C3.05455 -0.571856 3.0127 -0.404483 1.78531 -0.404483H1.35293V0C1.72951 -0.0278954 3.08244 -0.0278954 3.54271 -0.0278954S5.34197 -0.0278954 5.71856 0V-0.404483H5.28618C4.05878 -0.404483 4.01694 -0.571856 4.01694 -1.07397V-8.94047Z' id='g2-49'/>
<path d='M6.61121 -5.69066C6.16488 -5.60697 5.99751 -5.27223 5.99751 -5.00722C5.99751 -4.67248 6.26252 -4.5609 6.45778 -4.5609C6.87621 -4.5609 7.16912 -4.92354 7.16912 -5.30012C7.16912 -5.88593 6.49963 -6.15093 5.91382 -6.15093C5.06301 -6.15093 4.58879 -5.31407 4.46326 -5.04907C4.14247 -6.09514 3.27771 -6.15093 3.02665 -6.15093C1.60399 -6.15093 0.850809 -4.32379 0.850809 -4.01694C0.850809 -3.96115 0.9066 -3.89141 1.00423 -3.89141C1.11582 -3.89141 1.14371 -3.97509 1.17161 -4.03088C1.64583 -5.57908 2.58032 -5.87198 2.98481 -5.87198C3.61245 -5.87198 3.73798 -5.28618 3.73798 -4.95143C3.73798 -4.64458 3.6543 -4.32379 3.48692 -3.6543L3.0127 -1.74346C2.80349 -0.9066 2.399 -0.139477 1.65978 -0.139477C1.59004 -0.139477 1.24134 -0.139477 0.948443 -0.320797C1.45056 -0.418431 1.56214 -0.836862 1.56214 -1.00423C1.56214 -1.28319 1.35293 -1.45056 1.08792 -1.45056C0.753176 -1.45056 0.390535 -1.15766 0.390535 -0.711333C0.390535 -0.125529 1.04608 0.139477 1.64583 0.139477C2.31532 0.139477 2.78954 -0.390535 3.08244 -0.962391C3.3056 -0.139477 4.00299 0.139477 4.51905 0.139477C5.94172 0.139477 6.69489 -1.68767 6.69489 -1.99452C6.69489 -2.06426 6.6391 -2.12005 6.55542 -2.12005C6.42989 -2.12005 6.41594 -2.05031 6.3741 -1.93873C5.99751 -0.711333 5.18854 -0.139477 4.5609 -0.139477C4.07273 -0.139477 3.80772 -0.502117 3.80772 -1.07397C3.80772 -1.38082 3.86351 -1.60399 4.08667 -2.52453L4.57484 -4.42142C4.78406 -5.25828 5.25828 -5.87198 5.89988 -5.87198C5.92777 -5.87198 6.31831 -5.87198 6.61121 -5.69066Z' id='g1-120'/>
<path d='M3.66824 1.56214C3.29166 2.09215 2.7477 2.56638 2.06426 2.56638C1.89689 2.56638 1.2274 2.53848 1.01818 1.89689C1.06002 1.91083 1.12976 1.91083 1.15766 1.91083C1.57609 1.91083 1.85504 1.54819 1.85504 1.2274S1.59004 0.795019 1.38082 0.795019C1.15766 0.795019 0.669489 0.962391 0.669489 1.64583C0.669489 2.35716 1.26924 2.84533 2.06426 2.84533C3.45903 2.84533 4.86775 1.56214 5.25828 0.0139477L6.62516 -5.42565C6.6391 -5.49539 6.667 -5.57908 6.667 -5.66276C6.667 -5.87198 6.49963 -6.01146 6.29041 -6.01146C6.16488 -6.01146 5.87198 -5.95567 5.7604 -5.53724L4.72827 -1.43661C4.65853 -1.18555 4.65853 -1.15766 4.54695 -1.00423C4.268 -0.613699 3.80772 -0.139477 3.13823 -0.139477C2.35716 -0.139477 2.28742 -0.9066 2.28742 -1.28319C2.28742 -2.07821 2.66401 -3.15218 3.0406 -4.15641C3.19402 -4.5609 3.27771 -4.75616 3.27771 -5.03512C3.27771 -5.62092 2.85928 -6.15093 2.17584 -6.15093C0.892653 -6.15093 0.376588 -4.12852 0.376588 -4.01694C0.376588 -3.96115 0.432379 -3.89141 0.530012 -3.89141C0.655542 -3.89141 0.669489 -3.9472 0.72528 -4.14247C1.06002 -5.31407 1.59004 -5.87198 2.134 -5.87198C2.25953 -5.87198 2.49664 -5.87198 2.49664 -5.41171C2.49664 -5.04907 2.34321 -4.64458 2.134 -4.11457C1.45056 -2.28742 1.45056 -1.82715 1.45056 -1.4924C1.45056 -0.167372 2.399 0.139477 3.09639 0.139477C3.50087 0.139477 4.00299 0.0139477 4.49116 -0.502117L4.50511 -0.488169C4.29589 0.334745 4.15641 0.878705 3.66824 1.56214Z' id='g1-121'/>
<path d='M1.77136 -1.12976C2.37111 -1.8132 2.85928 -2.24558 3.55666 -2.87323C4.39352 -3.59851 4.75616 -3.9472 4.95143 -4.15641C5.92777 -5.1188 6.41594 -5.92777 6.41594 -6.03935S6.30436 -6.15093 6.27646 -6.15093C6.17883 -6.15093 6.15093 -6.09514 6.0812 -5.99751C5.7325 -5.39776 5.39776 -5.10486 5.03512 -5.10486C4.74222 -5.10486 4.58879 -5.23039 4.32379 -5.56513C4.03088 -5.91382 3.79377 -6.15093 3.38929 -6.15093C2.37111 -6.15093 1.75741 -4.88169 1.75741 -4.58879C1.75741 -4.54695 1.77136 -4.46326 1.89689 -4.46326C2.00847 -4.46326 2.02242 -4.51905 2.06426 -4.61669C2.30137 -5.1746 2.97086 -5.27223 3.23587 -5.27223C3.52877 -5.27223 3.80772 -5.1746 4.10062 -5.04907C4.63064 -4.8259 4.8538 -4.8259 4.99328 -4.8259C5.09091 -4.8259 5.1467 -4.8259 5.21644 -4.83985C4.75616 -4.29589 4.00299 -3.6264 3.37534 -3.05455L1.96663 -1.75741C1.11582 -0.892653 0.599751 -0.0697385 0.599751 0.0278954C0.599751 0.111582 0.669489 0.139477 0.753176 0.139477S0.850809 0.125529 0.948443 -0.0418431C1.17161 -0.390535 1.61793 -0.9066 2.134 -0.9066C2.4269 -0.9066 2.56638 -0.808966 2.84533 -0.460274C3.11034 -0.153425 3.34745 0.139477 3.79377 0.139477C5.16065 0.139477 5.94172 -1.63188 5.94172 -1.95268C5.94172 -2.00847 5.92777 -2.09215 5.78829 -2.09215C5.67671 -2.09215 5.66276 -2.03636 5.62092 -1.89689C5.31407 -1.07397 4.49116 -0.739228 3.9472 -0.739228C3.6543 -0.739228 3.37534 -0.836862 3.08244 -0.962391C2.52453 -1.18555 2.37111 -1.18555 2.18979 -1.18555C2.05031 -1.18555 1.89689 -1.18555 1.77136 -1.12976Z' id='g1-122'/>
</defs>
<g id='page1'>
<use x='59.2704' xlink:href='#g2-49' y='62.7868'/>
<rect height='0.55789' width='7.76077' x='58.8043' y='68.4566'/>
<use x='58.8043' xlink:href='#g1-120' y='81.7899'/>
<use x='70.86' xlink:href='#g2-43' y='72.2225'/>
<use x='85.9426' xlink:href='#g2-49' y='62.7868'/>
<rect height='0.55789' width='7.15942' x='85.7771' y='68.4566'/>
<use x='85.7771' xlink:href='#g1-121' y='81.7899'/>
<rect height='0.55789' width='36.5233' x='57.6088' y='86.1756'/>
<use x='60.2843' xlink:href='#g1-121' y='99.5089'/>
<use x='70.5432' xlink:href='#g0-0' y='99.5089'/>
<use x='84.4909' xlink:href='#g1-122' y='99.5089'/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1,25 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.1.3 -->
<svg height='29.5237pt' version='1.1' viewBox='57.6088 53.7982 23.0929 29.5237' width='23.0929pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<defs>
<path d='M6.43404 -2.24557C6.60002 -2.24557 6.77576 -2.24557 6.77576 -2.44084S6.60002 -2.6361 6.43404 -2.6361H1.15207C0.986098 -2.6361 0.810358 -2.6361 0.810358 -2.44084S0.986098 -2.24557 1.15207 -2.24557H6.43404Z' id='g0-0'/>
<path d='M3.26096 -2.94853C3.31954 -3.20238 3.54409 -4.1006 4.22753 -4.1006C4.27634 -4.1006 4.51067 -4.1006 4.7157 -3.97368C4.44232 -3.92486 4.24705 -3.68078 4.24705 -3.44646C4.24705 -3.29025 4.35445 -3.10474 4.61806 -3.10474C4.83286 -3.10474 5.14528 -3.28048 5.14528 -3.67102C5.14528 -4.17871 4.56925 -4.3154 4.23729 -4.3154C3.67102 -4.3154 3.3293 -3.79794 3.21214 -3.57338C2.96806 -4.21776 2.44084 -4.3154 2.1577 -4.3154C1.14231 -4.3154 0.585801 -3.05593 0.585801 -2.81184C0.585801 -2.71421 0.683434 -2.71421 0.702961 -2.71421C0.781068 -2.71421 0.810358 -2.73374 0.829884 -2.82161C1.16184 -3.85652 1.80622 -4.1006 2.13817 -4.1006C2.32368 -4.1006 2.66539 -4.01273 2.66539 -3.44646C2.66539 -3.1438 2.49942 -2.48965 2.13817 -1.12278C1.98196 -0.517457 1.64024 -0.107397 1.21065 -0.107397C1.15207 -0.107397 0.927518 -0.107397 0.722488 -0.23432C0.966571 -0.283137 1.18136 -0.488167 1.18136 -0.761541C1.18136 -1.02515 0.966571 -1.10326 0.820121 -1.10326C0.527221 -1.10326 0.283137 -0.849411 0.283137 -0.536984C0.283137 -0.0878701 0.771304 0.107397 1.20089 0.107397C1.84527 0.107397 2.19675 -0.576037 2.22604 -0.634617C2.3432 -0.273374 2.69468 0.107397 3.28048 0.107397C4.28611 0.107397 4.84262 -1.15207 4.84262 -1.39616C4.84262 -1.49379 4.75475 -1.49379 4.72546 -1.49379C4.63759 -1.49379 4.61806 -1.45474 4.59854 -1.38639C4.27634 -0.341717 3.61244 -0.107397 3.30001 -0.107397C2.91924 -0.107397 2.76303 -0.419824 2.76303 -0.751778C2.76303 -0.966571 2.82161 -1.18136 2.929 -1.61095L3.26096 -2.94853Z' id='g1-120'/>
<path d='M4.74499 -3.71983C4.78404 -3.85652 4.78404 -3.87605 4.78404 -3.94439C4.78404 -4.12013 4.64735 -4.208 4.5009 -4.208C4.40327 -4.208 4.24705 -4.14942 4.15918 -4.00297C4.13966 -3.95415 4.06155 -3.65149 4.0225 -3.47575C3.95415 -3.2219 3.88581 -2.95829 3.82723 -2.69468L3.38788 -0.937281C3.34883 -0.790831 2.929 -0.107397 2.28462 -0.107397C1.78669 -0.107397 1.6793 -0.536984 1.6793 -0.898228C1.6793 -1.34734 1.84527 -1.95267 2.17723 -2.81184C2.33344 -3.21214 2.37249 -3.31954 2.37249 -3.5148C2.37249 -3.95415 2.06007 -4.3154 1.5719 -4.3154C0.644381 -4.3154 0.283137 -2.89971 0.283137 -2.81184C0.283137 -2.71421 0.38077 -2.71421 0.400297 -2.71421C0.497931 -2.71421 0.507694 -2.73374 0.556511 -2.88995C0.820121 -3.8077 1.21065 -4.1006 1.54261 -4.1006C1.62072 -4.1006 1.78669 -4.1006 1.78669 -3.78818C1.78669 -3.54409 1.68906 -3.29025 1.62072 -3.10474C1.23018 -2.06983 1.05444 -1.51332 1.05444 -1.05444C1.05444 -0.185504 1.66953 0.107397 2.24557 0.107397C2.62634 0.107397 2.95829 -0.0585801 3.23167 -0.331954C3.10474 0.17574 2.98758 0.654144 2.59705 1.1716C2.3432 1.50356 1.9722 1.78669 1.52308 1.78669C1.38639 1.78669 0.947044 1.7574 0.781068 1.37663C0.937281 1.37663 1.0642 1.37663 1.20089 1.25947C1.29852 1.1716 1.39616 1.04468 1.39616 0.859174C1.39616 0.556511 1.13255 0.517457 1.03491 0.517457C0.810358 0.517457 0.488167 0.673671 0.488167 1.15207C0.488167 1.64024 0.917754 2.00149 1.52308 2.00149C2.52871 2.00149 3.53433 1.11302 3.8077 0.00976334L4.74499 -3.71983Z' id='g1-121'/>
<path d='M1.29852 -0.810358C1.82575 -1.37663 2.10888 -1.62072 2.46036 -1.92338C2.46036 -1.93314 3.06569 -2.4506 3.41717 -2.80208C4.34469 -3.71007 4.55948 -4.17871 4.55948 -4.21776C4.55948 -4.3154 4.47161 -4.3154 4.45209 -4.3154C4.38374 -4.3154 4.35445 -4.29587 4.30564 -4.208C4.01273 -3.73936 3.8077 -3.58315 3.57338 -3.58315S3.2219 -3.7296 3.07545 -3.89557C2.88995 -4.12013 2.72397 -4.3154 2.40178 -4.3154C1.66953 -4.3154 1.22042 -3.40741 1.22042 -3.20238C1.22042 -3.15356 1.24971 -3.09498 1.33758 -3.09498S1.44498 -3.1438 1.4645 -3.20238C1.65001 -3.65149 2.21628 -3.66125 2.29439 -3.66125C2.49942 -3.66125 2.68492 -3.59291 2.90948 -3.5148C3.30001 -3.36835 3.40741 -3.36835 3.66125 -3.36835C3.30977 -2.94853 2.48965 -2.24557 2.30415 -2.08936L1.42545 -1.26923C0.761541 -0.615091 0.419824 -0.0585801 0.419824 0.00976334C0.419824 0.107397 0.517457 0.107397 0.536984 0.107397C0.615091 0.107397 0.634617 0.0878701 0.693197 -0.0195267C0.917754 -0.361244 1.21065 -0.624854 1.52308 -0.624854C1.74764 -0.624854 1.84527 -0.536984 2.08936 -0.253847C2.25533 -0.0488167 2.43107 0.107397 2.71421 0.107397C3.68078 0.107397 4.24705 -1.13255 4.24705 -1.39616C4.24705 -1.44498 4.208 -1.49379 4.12989 -1.49379C4.04202 -1.49379 4.0225 -1.43521 3.99321 -1.36687C3.76865 -0.732251 3.1438 -0.546747 2.82161 -0.546747C2.62634 -0.546747 2.4506 -0.605327 2.24557 -0.673671C1.91362 -0.800594 1.76717 -0.839648 1.56214 -0.839648C1.54261 -0.839648 1.38639 -0.839648 1.29852 -0.810358Z' id='g1-122'/>
<path d='M3.99321 -2.24557H6.71718C6.85387 -2.24557 7.03937 -2.24557 7.03937 -2.44084S6.85387 -2.6361 6.71718 -2.6361H3.99321V-5.36984C3.99321 -5.50653 3.99321 -5.69203 3.79794 -5.69203S3.60267 -5.50653 3.60267 -5.36984V-2.6361H0.868938C0.732251 -2.6361 0.546747 -2.6361 0.546747 -2.44084S0.732251 -2.24557 0.868938 -2.24557H3.60267V0.488167C3.60267 0.624854 3.60267 0.810358 3.79794 0.810358S3.99321 0.624854 3.99321 0.488167V-2.24557Z' id='g2-43'/>
<path d='M2.87042 -6.24854C2.87042 -6.48286 2.87042 -6.50239 2.64587 -6.50239C2.04054 -5.87753 1.18136 -5.87753 0.868938 -5.87753V-5.57487C1.0642 -5.57487 1.64024 -5.57487 2.14794 -5.82872V-0.771304C2.14794 -0.419824 2.11865 -0.302664 1.23994 -0.302664H0.927518V0C1.26923 -0.02929 2.11865 -0.02929 2.50918 -0.02929S3.74912 -0.02929 4.09084 0V-0.302664H3.77841C2.89971 -0.302664 2.87042 -0.41006 2.87042 -0.771304V-6.24854Z' id='g2-49'/>
</defs>
<g id='page1'>
<use x='59.1535' xlink:href='#g2-49' y='60.0902'/>
<rect height='0.55789' width='5.58003' x='58.8043' y='61.816'/>
<use x='58.8043' xlink:href='#g1-120' y='70.3915'/>
<use x='65.5798' xlink:href='#g2-43' y='65.5818'/>
<use x='74.4968' xlink:href='#g2-49' y='60.0902'/>
<rect height='0.55789' width='5.13708' x='74.3691' y='61.816'/>
<use x='74.3691' xlink:href='#g1-121' y='70.3915'/>
<rect height='0.55789' width='23.0929' x='57.6088' y='72.8479'/>
<use x='60.3049' xlink:href='#g1-121' y='81.4235'/>
<use x='65.442' xlink:href='#g0-0' y='81.4235'/>
<use x='73.0357' xlink:href='#g1-122' y='81.4235'/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -1,22 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.1.3 -->
<svg height='12.4188pt' version='1.1' viewBox='56.4133 54.4 69.6865 12.4188' width='69.6865pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<defs>
<path d='M4.19826 -1.65978C4.12852 -1.42267 4.12852 -1.39477 3.93325 -1.12976C3.6264 -0.739228 3.0127 -0.139477 2.35716 -0.139477C1.78531 -0.139477 1.46451 -0.655542 1.46451 -1.47846C1.46451 -2.24558 1.89689 -3.80772 2.16189 -4.39352C2.63611 -5.36986 3.29166 -5.87198 3.83562 -5.87198C4.75616 -5.87198 4.93748 -4.72827 4.93748 -4.61669C4.93748 -4.60274 4.89564 -4.42142 4.88169 -4.39352L4.19826 -1.65978ZM5.09091 -5.23039C4.93748 -5.59303 4.5609 -6.15093 3.83562 -6.15093C2.25953 -6.15093 0.557908 -4.11457 0.557908 -2.05031C0.557908 -0.669489 1.36687 0.139477 2.31532 0.139477C3.08244 0.139477 3.73798 -0.460274 4.12852 -0.920548C4.268 -0.0976339 4.92354 0.139477 5.34197 0.139477S6.09514 -0.111582 6.3462 -0.613699C6.56936 -1.08792 6.76463 -1.93873 6.76463 -1.99452C6.76463 -2.06426 6.70884 -2.12005 6.62516 -2.12005C6.49963 -2.12005 6.48568 -2.05031 6.42989 -1.8411C6.22067 -1.01818 5.95567 -0.139477 5.38381 -0.139477C4.97933 -0.139477 4.95143 -0.502117 4.95143 -0.781071C4.95143 -1.10187 4.99328 -1.25529 5.1188 -1.79925C5.21644 -2.14795 5.28618 -2.45479 5.39776 -2.85928C5.91382 -4.95143 6.03935 -5.45355 6.03935 -5.53724C6.03935 -5.7325 5.88593 -5.88593 5.67671 -5.88593C5.23039 -5.88593 5.1188 -5.39776 5.09091 -5.23039Z' id='g0-97'/>
<path d='M3.22192 -9.33101C3.23587 -9.3868 3.26376 -9.47049 3.26376 -9.54022C3.26376 -9.6797 3.12428 -9.6797 3.09639 -9.6797C3.08244 -9.6797 2.58032 -9.63786 2.32927 -9.60996C2.09215 -9.59601 1.88294 -9.56812 1.63188 -9.55417C1.29714 -9.52628 1.1995 -9.51233 1.1995 -9.26127C1.1995 -9.12179 1.33898 -9.12179 1.47846 -9.12179C2.18979 -9.12179 2.18979 -8.99626 2.18979 -8.85679C2.18979 -8.75915 2.07821 -8.35467 2.02242 -8.10361L1.68767 -6.76463C1.54819 -6.20672 0.753176 -3.0406 0.697385 -2.78954C0.627646 -2.44085 0.627646 -2.20374 0.627646 -2.02242C0.627646 -0.599751 1.42267 0.139477 2.32927 0.139477C3.9472 0.139477 5.62092 -1.93873 5.62092 -3.96115C5.62092 -5.24433 4.89564 -6.15093 3.84956 -6.15093C3.12428 -6.15093 2.46874 -5.55118 2.20374 -5.27223L3.22192 -9.33101ZM2.34321 -0.139477C1.89689 -0.139477 1.40872 -0.474222 1.40872 -1.56214C1.40872 -2.02242 1.45056 -2.28742 1.70162 -3.26376C1.74346 -3.44508 1.96663 -4.33773 2.02242 -4.51905C2.05031 -4.63064 2.87323 -5.87198 3.82167 -5.87198C4.43537 -5.87198 4.71432 -5.25828 4.71432 -4.533C4.71432 -3.86351 4.32379 -2.28742 3.97509 -1.56214C3.6264 -0.808966 2.98481 -0.139477 2.34321 -0.139477Z' id='g0-98'/>
<path d='M5.45355 -5.24433C5.18854 -5.24433 5.06301 -5.24433 4.86775 -5.07696C4.78406 -5.00722 4.63064 -4.79801 4.63064 -4.57484C4.63064 -4.29589 4.83985 -4.12852 5.10486 -4.12852C5.4396 -4.12852 5.81619 -4.40747 5.81619 -4.96538C5.81619 -5.63487 5.1746 -6.15093 4.2122 -6.15093C2.38506 -6.15093 0.557908 -4.15641 0.557908 -2.17584C0.557908 -0.962391 1.31108 0.139477 2.73375 0.139477C4.63064 0.139477 5.83014 -1.33898 5.83014 -1.5203C5.83014 -1.60399 5.74645 -1.67372 5.69066 -1.67372C5.64882 -1.67372 5.63487 -1.65978 5.50934 -1.53425C4.61669 -0.348692 3.29166 -0.139477 2.76164 -0.139477C1.79925 -0.139477 1.4924 -0.976339 1.4924 -1.67372C1.4924 -2.16189 1.72951 -3.51482 2.23163 -4.46326C2.59427 -5.1188 3.34745 -5.87198 4.22615 -5.87198C4.40747 -5.87198 5.1746 -5.84408 5.45355 -5.24433Z' id='g0-99'/>
<path d='M5.56513 -3.22192H9.41469C9.60996 -3.22192 9.86102 -3.22192 9.86102 -3.47298C9.86102 -3.73798 9.62391 -3.73798 9.41469 -3.73798H5.56513V-7.58755C5.56513 -7.78281 5.56513 -8.03387 5.31407 -8.03387C5.04907 -8.03387 5.04907 -7.79676 5.04907 -7.58755V-3.73798H1.1995C1.00423 -3.73798 0.753176 -3.73798 0.753176 -3.48692C0.753176 -3.22192 0.990286 -3.22192 1.1995 -3.22192H5.04907V0.627646C5.04907 0.822914 5.04907 1.07397 5.30012 1.07397C5.56513 1.07397 5.56513 0.836862 5.56513 0.627646V-3.22192Z' id='g2-43'/>
<path d='M9.41469 -4.51905C9.60996 -4.51905 9.86102 -4.51905 9.86102 -4.77011C9.86102 -5.03512 9.62391 -5.03512 9.41469 -5.03512H1.1995C1.00423 -5.03512 0.753176 -5.03512 0.753176 -4.78406C0.753176 -4.51905 0.990286 -4.51905 1.1995 -4.51905H9.41469ZM9.41469 -1.92478C9.60996 -1.92478 9.86102 -1.92478 9.86102 -2.17584C9.86102 -2.44085 9.62391 -2.44085 9.41469 -2.44085H1.1995C1.00423 -2.44085 0.753176 -2.44085 0.753176 -2.18979C0.753176 -1.92478 0.990286 -1.92478 1.1995 -1.92478H9.41469Z' id='g2-61'/>
<path d='M1.23994 -0.751778L2.27486 -1.7574C3.79794 -3.10474 4.38374 -3.63196 4.38374 -4.6083C4.38374 -5.72132 3.50504 -6.50239 2.31391 -6.50239C1.21065 -6.50239 0.488167 -5.60416 0.488167 -4.73522C0.488167 -4.18847 0.976334 -4.18847 1.00562 -4.18847C1.1716 -4.18847 1.51332 -4.30564 1.51332 -4.70593C1.51332 -4.95978 1.33758 -5.21363 0.995861 -5.21363C0.917754 -5.21363 0.898228 -5.21363 0.868938 -5.20386C1.09349 -5.83848 1.62072 -6.19972 2.18699 -6.19972C3.07545 -6.19972 3.49528 -5.40889 3.49528 -4.6083C3.49528 -3.82723 3.00711 -3.05593 2.47013 -2.4506L0.595564 -0.361244C0.488167 -0.253847 0.488167 -0.23432 0.488167 0H4.11037L4.38374 -1.69882H4.13966C4.09084 -1.40592 4.0225 -0.976334 3.92486 -0.829884C3.85652 -0.751778 3.21214 -0.751778 2.99735 -0.751778H1.23994Z' id='g1-50'/>
</defs>
<g id='page1'>
<use x='56.4133' xlink:href='#g0-97' y='65.7534'/>
<use x='63.5824' xlink:href='#g1-50' y='60.6919'/>
<use x='72.0616' xlink:href='#g2-43' y='65.7534'/>
<use x='85.7832' xlink:href='#g0-98' y='65.7534'/>
<use x='91.5898' xlink:href='#g1-50' y='60.6919'/>
<use x='100.844' xlink:href='#g2-61' y='65.7534'/>
<use x='115.34' xlink:href='#g0-99' y='65.7534'/>
<use x='121.218' xlink:href='#g1-50' y='60.6919'/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,43 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.1.3 -->
<svg height='28.689pt' version='1.1' viewBox='165.981 78.308 134.289 28.689' width='134.289pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<defs>
<path d='M3.55666 -7.67123H6.26252C6.49963 -7.67123 6.65305 -7.67123 6.65305 -7.83861C6.65305 -8.01993 6.48568 -8.01993 6.22067 -8.01993H3.64035C3.73798 -8.36862 3.73798 -8.39651 3.82167 -8.74521C3.89141 -8.99626 4.01694 -9.48443 4.01694 -9.51233C4.01694 -9.63786 3.93325 -9.6797 3.82167 -9.6797C3.55666 -9.6797 2.45479 -9.56812 2.12005 -9.54022C2.00847 -9.52628 1.85504 -9.51233 1.85504 -9.24732C1.85504 -9.0939 1.99452 -9.0939 2.18979 -9.0939C2.85928 -9.0939 2.88717 -8.99626 2.88717 -8.85679C2.88717 -8.75915 2.76164 -8.29888 2.69191 -8.01993H1.91083C1.63188 -8.01993 1.47846 -8.01993 1.47846 -7.83861C1.47846 -7.67123 1.60399 -7.67123 1.86899 -7.67123H2.60822L0.822914 -0.557908C0.767123 -0.348692 0.767123 -0.320797 0.767123 -0.237111C0.767123 0.0697385 1.00423 0.153425 1.17161 0.153425C1.43661 0.153425 1.63188 -0.0418431 1.68767 -0.223163C1.71557 -0.292902 1.86899 -0.920548 1.95268 -1.26924L2.27347 -2.51059C2.31532 -2.7198 2.45479 -3.24981 2.49664 -3.45903C2.56638 -3.68219 2.66401 -4.11457 2.67796 -4.15641C2.78954 -4.39352 3.54271 -5.85803 4.93748 -5.85803C5.55118 -5.85803 5.69066 -5.35592 5.69066 -4.89564C5.69066 -4.03088 5.04907 -2.32927 4.79801 -1.68767C4.71432 -1.46451 4.64458 -1.26924 4.64458 -1.00423C4.64458 -0.278954 5.16065 0.153425 5.78829 0.153425C7.12727 0.153425 7.61544 -1.91083 7.61544 -1.99452C7.61544 -2.134 7.48991 -2.134 7.44807 -2.134C7.30859 -2.134 7.30859 -2.09215 7.23885 -1.88294C6.83437 -0.460274 6.20672 -0.153425 5.83014 -0.153425C5.56513 -0.153425 5.48144 -0.320797 5.48144 -0.613699C5.48144 -0.962391 5.63487 -1.35293 5.71856 -1.59004C5.95567 -2.20374 6.58331 -3.87746 6.58331 -4.65853C6.58331 -5.67671 5.94172 -6.16488 4.97933 -6.16488C4.54695 -6.16488 3.71009 -6.06725 2.91507 -5.10486L3.55666 -7.67123Z' id='g0-126'/>
<path d='M4.533 3.38929C4.533 3.34745 4.533 3.31955 4.29589 3.08244C2.90112 1.67372 2.12005 -0.627646 2.12005 -3.47298C2.12005 -6.17883 2.77559 -8.50809 4.39352 -10.1539C4.533 -10.2795 4.533 -10.3073 4.533 -10.3492C4.533 -10.4329 4.46326 -10.4608 4.40747 -10.4608C4.22615 -10.4608 3.08244 -9.45654 2.399 -8.08966C1.68767 -6.68095 1.36687 -5.18854 1.36687 -3.47298C1.36687 -2.23163 1.56214 -0.571856 2.28742 0.920548C3.11034 2.59427 4.25405 3.50087 4.40747 3.50087C4.46326 3.50087 4.533 3.47298 4.533 3.38929Z' id='g3-40'/>
<path d='M3.93325 -3.47298C3.93325 -4.533 3.79377 -6.26252 3.0127 -7.88045C2.18979 -9.55417 1.04608 -10.4608 0.892653 -10.4608C0.836862 -10.4608 0.767123 -10.4329 0.767123 -10.3492C0.767123 -10.3073 0.767123 -10.2795 1.00423 -10.0423C2.399 -8.63362 3.18007 -6.33225 3.18007 -3.48692C3.18007 -0.781071 2.52453 1.54819 0.9066 3.19402C0.767123 3.31955 0.767123 3.34745 0.767123 3.38929C0.767123 3.47298 0.836862 3.50087 0.892653 3.50087C1.07397 3.50087 2.21768 2.49664 2.90112 1.12976C3.61245 -0.292902 3.93325 -1.79925 3.93325 -3.47298Z' id='g3-41'/>
<path d='M9.41469 -4.51905C9.60996 -4.51905 9.86102 -4.51905 9.86102 -4.77011C9.86102 -5.03512 9.62391 -5.03512 9.41469 -5.03512H1.1995C1.00423 -5.03512 0.753176 -5.03512 0.753176 -4.78406C0.753176 -4.51905 0.990286 -4.51905 1.1995 -4.51905H9.41469ZM9.41469 -1.92478C9.60996 -1.92478 9.86102 -1.92478 9.86102 -2.17584C9.86102 -2.44085 9.62391 -2.44085 9.41469 -2.44085H1.1995C1.00423 -2.44085 0.753176 -2.44085 0.753176 -2.18979C0.753176 -1.92478 0.990286 -1.92478 1.1995 -1.92478H9.41469Z' id='g3-61'/>
<path d='M3.41719 -9.6797L1.59004 -7.78281L1.8132 -7.5736L3.40324 -9.01021L5.00722 -7.5736L5.23039 -7.78281L3.41719 -9.6797Z' id='g3-94'/>
<path d='M2.4269 -8.59178C2.4269 -8.95442 2.134 -9.27522 1.74346 -9.27522C1.38082 -9.27522 1.07397 -8.98232 1.07397 -8.60573C1.07397 -8.1873 1.40872 -7.92229 1.74346 -7.92229C2.17584 -7.92229 2.4269 -8.28493 2.4269 -8.59178ZM0.502117 -5.99751V-5.59303C1.39477 -5.59303 1.5203 -5.50934 1.5203 -4.8259V-1.03213C1.5203 -0.404483 1.36687 -0.404483 0.460274 -0.404483V0C0.850809 -0.0278954 1.5203 -0.0278954 1.92478 -0.0278954C2.07821 -0.0278954 2.88717 -0.0278954 3.36139 0V-0.404483C2.45479 -0.404483 2.399 -0.474222 2.399 -1.01818V-6.15093L0.502117 -5.99751Z' id='g3-105'/>
<path d='M3.80772 -3.24981C3.87746 -3.41719 3.87746 -3.44508 3.87746 -3.48692S3.87746 -3.55666 3.80772 -3.72403L1.36687 -10.14C1.28319 -10.3771 1.1995 -10.4608 1.04608 -10.4608S0.767123 -10.3352 0.767123 -10.1818C0.767123 -10.14 0.767123 -10.1121 0.836862 -9.95866L3.3056 -3.48692L0.836862 2.95691C0.767123 3.11034 0.767123 3.13823 0.767123 3.20797C0.767123 3.36139 0.892653 3.48692 1.04608 3.48692C1.2274 3.48692 1.28319 3.34745 1.33898 3.20797L3.80772 -3.24981Z' id='g1-105'/>
<path d='M2.21768 -9.95866C2.21768 -10.2097 2.21768 -10.4608 1.93873 -10.4608S1.65978 -10.2097 1.65978 -9.95866V2.98481C1.65978 3.23587 1.65978 3.48692 1.93873 3.48692S2.21768 3.23587 2.21768 2.98481V-9.95866Z' id='g1-106'/>
<path d='M6.55542 -9.34496C6.55542 -9.3589 6.61121 -9.54022 6.61121 -9.55417C6.61121 -9.6797 6.49963 -9.6797 6.45778 -9.6797C6.33225 -9.6797 6.31831 -9.60996 6.26252 -9.40075L3.96115 -0.167372C2.80349 -0.306849 2.37111 -0.892653 2.37111 -1.72951C2.37111 -2.03636 2.37111 -2.35716 3.02665 -4.08667C3.20797 -4.58879 3.27771 -4.77011 3.27771 -5.02117C3.27771 -5.64882 2.83138 -6.15093 2.17584 -6.15093C0.892653 -6.15093 0.376588 -4.12852 0.376588 -4.01694C0.376588 -3.96115 0.432379 -3.89141 0.530012 -3.89141C0.655542 -3.89141 0.669489 -3.9472 0.72528 -4.14247C1.06002 -5.35592 1.61793 -5.87198 2.134 -5.87198C2.25953 -5.87198 2.49664 -5.85803 2.49664 -5.41171C2.49664 -5.35592 2.49664 -5.04907 2.25953 -4.43537C1.50635 -2.45479 1.50635 -2.14795 1.50635 -1.82715C1.50635 -0.488169 2.62217 0.0278954 3.87746 0.125529C3.76588 0.557908 3.66824 1.00423 3.55666 1.43661C3.3335 2.27347 3.23587 2.66401 3.23587 2.7198C3.23587 2.84533 3.34745 2.84533 3.38929 2.84533C3.41719 2.84533 3.47298 2.84533 3.50087 2.78954C3.55666 2.73375 4.12852 0.390535 4.18431 0.139477C4.70037 0.139477 5.80224 0.139477 7.05753 -1.15766C7.51781 -1.65978 7.93624 -2.30137 8.17335 -2.90112C8.31283 -3.26376 8.64757 -4.50511 8.64757 -5.21644C8.64757 -6.0533 8.22914 -6.15093 8.08966 -6.15093C7.75492 -6.15093 7.44807 -5.81619 7.44807 -5.53724C7.44807 -5.36986 7.5457 -5.27223 7.60149 -5.21644C7.72702 -5.09091 8.10361 -4.71432 8.10361 -3.98904C8.10361 -3.48692 7.82466 -2.45479 6.932 -1.45056C5.7604 -0.139477 4.68643 -0.139477 4.268 -0.139477L6.55542 -9.34496Z' id='g2-32'/>
<path d='M2.56638 -0.669489C2.56638 -1.07397 2.23163 -1.35293 1.89689 -1.35293C1.4924 -1.35293 1.21345 -1.01818 1.21345 -0.683437C1.21345 -0.278954 1.54819 0 1.88294 0C2.28742 0 2.56638 -0.334745 2.56638 -0.669489Z' id='g2-58'/>
<path d='M6.33225 -4.65853C6.24857 -5.4396 5.7604 -6.3741 4.50511 -6.3741C2.53848 -6.3741 0.530012 -4.37958 0.530012 -2.16189C0.530012 -1.31108 1.11582 0.292902 3.0127 0.292902C6.30436 0.292902 7.71308 -4.50511 7.71308 -6.41594C7.71308 -8.42441 6.58331 -9.9726 4.79801 -9.9726C2.77559 -9.9726 2.17584 -8.20125 2.17584 -7.82466C2.17584 -7.69913 2.25953 -7.39228 2.65006 -7.39228C3.13823 -7.39228 3.34745 -7.83861 3.34745 -8.07572C3.34745 -8.50809 2.91507 -8.50809 2.73375 -8.50809C3.3056 -9.54022 4.36563 -9.63786 4.74222 -9.63786C5.96961 -9.63786 6.75068 -8.66152 6.75068 -7.09938C6.75068 -6.20672 6.48568 -5.1746 6.3462 -4.65853H6.33225ZM3.05455 -0.0836862C1.74346 -0.0836862 1.5203 -1.11582 1.5203 -1.70162C1.5203 -2.31532 1.91083 -3.75193 2.12005 -4.268C2.30137 -4.68643 3.09639 -6.09514 4.54695 -6.09514C5.81619 -6.09514 6.10909 -4.99328 6.10909 -4.2401C6.10909 -3.20797 5.20249 -0.0836862 3.05455 -0.0836862Z' id='g2-64'/>
<path d='M10.4329 -8.50809C10.5584 -8.98232 10.5863 -9.12179 11.5766 -9.12179C11.8276 -9.12179 11.9671 -9.12179 11.9671 -9.37285C11.9671 -9.52628 11.8416 -9.52628 11.7579 -9.52628C11.5068 -9.52628 11.2139 -9.49838 10.9489 -9.49838H9.30311C9.03811 -9.49838 8.74521 -9.52628 8.4802 -9.52628C8.38257 -9.52628 8.21519 -9.52628 8.21519 -9.26127C8.21519 -9.12179 8.31283 -9.12179 8.57783 -9.12179C9.41469 -9.12179 9.41469 -9.01021 9.41469 -8.85679C9.41469 -8.82889 9.41469 -8.74521 9.3589 -8.53599L8.50809 -5.16065H4.29589L5.13275 -8.50809C5.25828 -8.98232 5.28618 -9.12179 6.27646 -9.12179C6.52752 -9.12179 6.667 -9.12179 6.667 -9.37285C6.667 -9.52628 6.54147 -9.52628 6.45778 -9.52628C6.20672 -9.52628 5.91382 -9.49838 5.64882 -9.49838H4.00299C3.73798 -9.49838 3.44508 -9.52628 3.18007 -9.52628C3.08244 -9.52628 2.91507 -9.52628 2.91507 -9.26127C2.91507 -9.12179 3.0127 -9.12179 3.27771 -9.12179C4.11457 -9.12179 4.11457 -9.01021 4.11457 -8.85679C4.11457 -8.82889 4.11457 -8.74521 4.05878 -8.53599L2.17584 -1.03213C2.05031 -0.54396 2.02242 -0.404483 1.06002 -0.404483C0.739228 -0.404483 0.641594 -0.404483 0.641594 -0.139477C0.641594 0 0.795019 0 0.836862 0C1.08792 0 1.38082 -0.0278954 1.64583 -0.0278954H3.29166C3.55666 -0.0278954 3.84956 0 4.11457 0C4.22615 0 4.37958 0 4.37958 -0.265006C4.37958 -0.404483 4.25405 -0.404483 4.04483 -0.404483C3.19402 -0.404483 3.19402 -0.516065 3.19402 -0.655542C3.19402 -0.669489 3.19402 -0.767123 3.22192 -0.878705L4.18431 -4.75616H8.41046C8.17335 -3.83562 7.46202 -0.920548 7.43412 -0.836862C7.2807 -0.418431 7.05753 -0.418431 6.23462 -0.404483C6.06725 -0.404483 5.94172 -0.404483 5.94172 -0.139477C5.94172 0 6.09514 0 6.13699 0C6.38804 0 6.68095 -0.0278954 6.94595 -0.0278954H8.59178C8.85679 -0.0278954 9.14969 0 9.41469 0C9.52628 0 9.6797 0 9.6797 -0.265006C9.6797 -0.404483 9.55417 -0.404483 9.34496 -0.404483C8.49415 -0.404483 8.49415 -0.516065 8.49415 -0.655542C8.49415 -0.669489 8.49415 -0.767123 8.52204 -0.878705L10.4329 -8.50809Z' id='g2-72'/>
<path d='M2.80349 -5.60697H4.08667C4.35168 -5.60697 4.49116 -5.60697 4.49116 -5.85803C4.49116 -6.01146 4.40747 -6.01146 4.12852 -6.01146H2.90112L3.41719 -8.04782C3.47298 -8.24309 3.47298 -8.27098 3.47298 -8.36862C3.47298 -8.59178 3.29166 -8.71731 3.11034 -8.71731C2.99875 -8.71731 2.67796 -8.67547 2.56638 -8.22914L2.02242 -6.01146H0.711333C0.432379 -6.01146 0.306849 -6.01146 0.306849 -5.74645C0.306849 -5.60697 0.404483 -5.60697 0.669489 -5.60697H1.91083L0.990286 -1.92478C0.878705 -1.43661 0.836862 -1.29714 0.836862 -1.11582C0.836862 -0.460274 1.29714 0.139477 2.07821 0.139477C3.48692 0.139477 4.2401 -1.89689 4.2401 -1.99452C4.2401 -2.07821 4.18431 -2.12005 4.10062 -2.12005C4.07273 -2.12005 4.01694 -2.12005 3.98904 -2.06426C3.97509 -2.05031 3.96115 -2.03636 3.86351 -1.8132C3.57061 -1.11582 2.92902 -0.139477 2.12005 -0.139477C1.70162 -0.139477 1.67372 -0.488169 1.67372 -0.795019C1.67372 -0.808966 1.67372 -1.07397 1.71557 -1.24134L2.80349 -5.60697Z' id='g2-116'/>
</defs>
<g id='page1'>
<use x='165.981' xlink:href='#g3-105' y='97.4296'/>
<use x='169.775' xlink:href='#g0-126' y='97.4296'/>
<use x='180.972' xlink:href='#g2-64' y='87.9939'/>
<rect height='0.55789' width='12.8999' x='178.506' y='93.6637'/>
<use x='178.506' xlink:href='#g2-64' y='106.997'/>
<use x='186.474' xlink:href='#g2-116' y='106.997'/>
<use x='192.601' xlink:href='#g1-106' y='97.4296'/>
<use x='198.8' xlink:href='#g2-32' y='97.4296'/>
<use x='208.179' xlink:href='#g3-40' y='97.4296'/>
<use x='213.49' xlink:href='#g2-116' y='97.4296'/>
<use x='218.422' xlink:href='#g3-41' y='97.4296'/>
<use x='223.733' xlink:href='#g1-105' y='97.4296'/>
<use x='233.032' xlink:href='#g3-61' y='97.4296'/>
<use x='251.069' xlink:href='#g3-94' y='93.904'/>
<use x='247.528' xlink:href='#g2-72' y='97.4296'/>
<use x='259.921' xlink:href='#g1-106' y='97.4296'/>
<use x='266.12' xlink:href='#g2-32' y='97.4296'/>
<use x='275.499' xlink:href='#g3-40' y='97.4296'/>
<use x='280.81' xlink:href='#g2-116' y='97.4296'/>
<use x='285.742' xlink:href='#g3-41' y='97.4296'/>
<use x='291.053' xlink:href='#g1-105' y='97.4296'/>
<use x='296.477' xlink:href='#g2-58' y='97.4296'/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,65 @@
========================================
Running shell commands to fetch results
========================================
Previously, with searx you could search over the Internet on other people's
computers. Now it is possible to fetch results from your local machine without
connecting to any networks from the same graphical user interface.
Command line engines
====================
In :pull:`2128` a new type of engine has been introduced called ``command``.
This engine lets administrators add engines which run arbitrary shell commands
and show its output on the web UI of searx.
When creating and enabling a ``command`` engine on a public searx instance,
you must be careful to avoid leaking private data. The easiest solution
is to add tokens to the engine. Thus, only those who have the appropriate token
can retrieve results from the it.
The engine base is flexible. Only your imagination can limit the power of this engine. (And
maybe security concerns.) The following options are available:
* ``command``: A comma separated list of the elements of the command. A special token {{QUERY}} tells searx where to put the search terms of the user. Example: ``['ls', '-l', '-h', '{{QUERY}}']``
* ``delimiter``: A dict containing a delimiter char and the "titles" of each element in keys.
* ``parse_regex``: A dict containing the regular expressions for each result key.
* ``query_type``: The expected type of user search terms. Possible values: ``path`` and ``enum``. ``path`` checks if the uesr provided path is inside the working directory. If not the query is not executed. ``enum`` is a list of allowed search terms. If the user submits something which is not included in the list, the query returns an error.
* ``query_enum``: A list containing allowed search terms if ``query_type`` is set to ``enum``.
* ``working_dir``: The directory where the command has to be executed. Default: ``.``
* ``result_separator``: The character that separates results. Default: ``\n``
The example engine below can be used to find files with a specific name in the configured
working directory.
.. code:: yaml
- name: find
engine: command
command: ['find', '.', '-name', '{{QUERY}}']
query_type: path
shortcut: fnd
delimiter:
chars: ' '
keys: ['line']
Next steps
==========
In the next milestone, support for local search engines and indexers (e.g. Elasticsearch)
are going to be added. This way, you will be able to query your own databases/indexers.
Acknowledgement
===============
This development was sponsored by `Search and Discovery Fund`_ of `NLnet Foundation`_ .
.. _Search and Discovery Fund: https://nlnet.nl/discovery
.. _NLnet Foundation: https://nlnet.nl/
| Happy hacking.
| kvch // 2020.09.28 21:26

View File

@ -11,3 +11,4 @@ Blog
admin
intro-offline
private-engines
command-line-engines

10598
_static/jquery-3.4.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -70,96 +70,7 @@ on build hosts (see <a class="reference internal" href="../utils/searx.sh.html#s
</pre></div>
</div>
<p>This will install packages needed by searx:</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
<div class="docutils container">
<p>Ubuntu / debian</p>
</div>
</div>
<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="docutils container">
<p>Arch Linux</p>
</div>
</div>
<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="docutils container">
<p>Fedora / RHEL</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
virtualenv python3-dev python3-babel python3-venv <span class="se">\</span>
uwsgi uwsgi-plugin-python3 <span class="se">\</span>
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev <span class="se">\</span>
shellcheck
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
python-virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
uwsgi uwsgi-plugin-python <span class="se">\</span>
git base-devel libxml2 <span class="se">\</span>
shellcheck
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
uwsgi uwsgi-plugin-python3 <span class="se">\</span>
git @development-tools libxml2 <span class="se">\</span>
ShellCheck
</pre></div>
</div>
</div>
</div>
<p>and packages needed to build docuemtation and run tests:</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
<div class="docutils container">
<p>Ubuntu / debian</p>
</div>
</div>
<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="docutils container">
<p>Arch Linux</p>
</div>
</div>
<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="docutils container">
<p>Fedora / RHEL</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
firefox graphviz imagemagick texlive-xetex librsvg2-bin <span class="se">\</span>
texlive-latex-recommended texlive-extra-utils ttf-dejavu <span class="se">\</span>
latexmk
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
firefox graphviz imagemagick texlive-bin extra/librsvg <span class="se">\</span>
texlive-core texlive-latexextra ttf-dejavu
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
firefox graphviz graphviz-gd ImageMagick librsvg2-tools <span class="se">\</span>
texlive-xetex-bin texlive-collection-fontsrecommended <span class="se">\</span>
texlive-collection-latex dejavu-sans-fonts dejavu-serif-fonts <span class="se">\</span>
dejavu-sans-mono-fonts
</pre></div>
</div>
</div>
</div>
<div class="section" id="build-docs">
<span id="docs-build"></span><h2><a class="toc-backref" href="#id2">Build docs</a><a class="headerlink" href="#build-docs" title="Permalink to this headline"></a></h2>
<div class="sidebar">

View File

@ -1196,7 +1196,22 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>soundcloud</p></th>
<tr class="row-even"><th class="stub"><p>sepiasearch</p></th>
<th class="stub"><p>!sep</p></th>
<td><p>sepiasearch</p></td>
<td><p>2.0</p></td>
<td><p>videos</p></td>
<td><p>y</p></td>
<td><p>y</p></td>
<td><p>y</p></td>
<td></td>
<td><p>y</p></td>
<td></td>
<td><p>1</p></td>
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>soundcloud</p></th>
<th class="stub"><p>!sc</p></th>
<td><p>soundcloud</p></td>
<td><p>2.0</p></td>
@ -1211,7 +1226,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>stackoverflow</p></th>
<tr class="row-even"><th class="stub"><p>stackoverflow</p></th>
<th class="stub"><p>!st</p></th>
<td><p>stackoverflow</p></td>
<td><p>2.0</p></td>
@ -1226,7 +1241,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>searchcode doc</p></th>
<tr class="row-odd"><th class="stub"><p>searchcode doc</p></th>
<th class="stub"><p>!scd</p></th>
<td><p>searchcode_doc</p></td>
<td><p>2.0</p></td>
@ -1241,7 +1256,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>searchcode code</p></th>
<tr class="row-even"><th class="stub"><p>searchcode code</p></th>
<th class="stub"><p>!scc</p></th>
<td><p>searchcode_code</p></td>
<td><p>2.0</p></td>
@ -1256,7 +1271,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>framalibre</p></th>
<tr class="row-odd"><th class="stub"><p>framalibre</p></th>
<th class="stub"><p>!frl</p></th>
<td><p>framalibre</p></td>
<td><p>2.0</p></td>
@ -1271,7 +1286,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>semantic scholar</p></th>
<tr class="row-even"><th class="stub"><p>semantic scholar</p></th>
<th class="stub"><p>!se</p></th>
<td><p>xpath</p></td>
<td><p>2.0</p></td>
@ -1286,7 +1301,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>startpage</p></th>
<tr class="row-odd"><th class="stub"><p>startpage</p></th>
<th class="stub"><p>!sp</p></th>
<td><p>startpage</p></td>
<td><p>6.0</p></td>
@ -1301,7 +1316,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>tokyotoshokan</p></th>
<tr class="row-even"><th class="stub"><p>tokyotoshokan</p></th>
<th class="stub"><p>!tt</p></th>
<td><p>tokyotoshokan</p></td>
<td><p>6.0</p></td>
@ -1316,7 +1331,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>torrentz</p></th>
<tr class="row-odd"><th class="stub"><p>torrentz</p></th>
<th class="stub"><p>!tor</p></th>
<td><p>torrentz</p></td>
<td><p>3.0</p></td>
@ -1331,7 +1346,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>twitter</p></th>
<tr class="row-even"><th class="stub"><p>twitter</p></th>
<th class="stub"><p>!tw</p></th>
<td><p>twitter</p></td>
<td><p>2.0</p></td>
@ -1346,7 +1361,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>unsplash</p></th>
<tr class="row-odd"><th class="stub"><p>unsplash</p></th>
<th class="stub"><p>!us</p></th>
<td><p>unsplash</p></td>
<td><p>2.0</p></td>
@ -1361,7 +1376,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>yahoo</p></th>
<tr class="row-even"><th class="stub"><p>yahoo</p></th>
<th class="stub"><p>!yh</p></th>
<td><p>yahoo</p></td>
<td><p>2.0</p></td>
@ -1376,7 +1391,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>yandex</p></th>
<tr class="row-odd"><th class="stub"><p>yandex</p></th>
<th class="stub"><p>!yn</p></th>
<td><p>yandex</p></td>
<td><p>2.0</p></td>
@ -1391,7 +1406,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>yahoo news</p></th>
<tr class="row-even"><th class="stub"><p>yahoo news</p></th>
<th class="stub"><p>!yhn</p></th>
<td><p>yahoo_news</p></td>
<td><p>2.0</p></td>
@ -1406,7 +1421,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>youtube</p></th>
<tr class="row-odd"><th class="stub"><p>youtube</p></th>
<th class="stub"><p>!yt</p></th>
<td><p>youtube_noapi</p></td>
<td><p>2.0</p></td>
@ -1421,7 +1436,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>yggtorrent</p></th>
<tr class="row-even"><th class="stub"><p>yggtorrent</p></th>
<th class="stub"><p>!ygg</p></th>
<td><p>yggtorrent</p></td>
<td><p>4.0</p></td>
@ -1436,7 +1451,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>dailymotion</p></th>
<tr class="row-odd"><th class="stub"><p>dailymotion</p></th>
<th class="stub"><p>!dm</p></th>
<td><p>dailymotion</p></td>
<td><p>2.0</p></td>
@ -1451,7 +1466,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>vimeo</p></th>
<tr class="row-even"><th class="stub"><p>vimeo</p></th>
<th class="stub"><p>!vm</p></th>
<td><p>vimeo</p></td>
<td><p>2.0</p></td>
@ -1466,7 +1481,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>wikibooks</p></th>
<tr class="row-odd"><th class="stub"><p>wikibooks</p></th>
<th class="stub"><p>!wb</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1481,7 +1496,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>wikinews</p></th>
<tr class="row-even"><th class="stub"><p>wikinews</p></th>
<th class="stub"><p>!wn</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1496,7 +1511,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>wikiquote</p></th>
<tr class="row-odd"><th class="stub"><p>wikiquote</p></th>
<th class="stub"><p>!wq</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1511,7 +1526,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>wikisource</p></th>
<tr class="row-even"><th class="stub"><p>wikisource</p></th>
<th class="stub"><p>!ws</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1526,7 +1541,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>wiktionary</p></th>
<tr class="row-odd"><th class="stub"><p>wiktionary</p></th>
<th class="stub"><p>!wt</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1541,7 +1556,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>wikiversity</p></th>
<tr class="row-even"><th class="stub"><p>wikiversity</p></th>
<th class="stub"><p>!wv</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1556,7 +1571,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>wikivoyage</p></th>
<tr class="row-odd"><th class="stub"><p>wikivoyage</p></th>
<th class="stub"><p>!wy</p></th>
<td><p>mediawiki</p></td>
<td><p>2.0</p></td>
@ -1571,7 +1586,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>wolframalpha</p></th>
<tr class="row-even"><th class="stub"><p>wolframalpha</p></th>
<th class="stub"><p>!wa</p></th>
<td><p>wolframalpha_noapi</p></td>
<td><p>6.0</p></td>
@ -1586,7 +1601,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>dictzone</p></th>
<tr class="row-odd"><th class="stub"><p>dictzone</p></th>
<th class="stub"><p>!dc</p></th>
<td><p>dictzone</p></td>
<td><p>2.0</p></td>
@ -1601,7 +1616,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>mymemory translated</p></th>
<tr class="row-even"><th class="stub"><p>mymemory translated</p></th>
<th class="stub"><p>!tl</p></th>
<td><p>translated</p></td>
<td><p>5.0</p></td>
@ -1616,7 +1631,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>voat</p></th>
<tr class="row-odd"><th class="stub"><p>voat</p></th>
<th class="stub"><p>!vo</p></th>
<td><p>xpath</p></td>
<td><p>10.0</p></td>
@ -1631,7 +1646,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>1337x</p></th>
<tr class="row-even"><th class="stub"><p>1337x</p></th>
<th class="stub"><p>!1337x</p></th>
<td><p>1337x</p></td>
<td><p>2.0</p></td>
@ -1646,7 +1661,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>duden</p></th>
<tr class="row-odd"><th class="stub"><p>duden</p></th>
<th class="stub"><p>!du</p></th>
<td><p>duden</p></td>
<td><p>2.0</p></td>
@ -1661,7 +1676,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>seznam</p></th>
<tr class="row-even"><th class="stub"><p>seznam</p></th>
<th class="stub"><p>!szn</p></th>
<td><p>xpath</p></td>
<td><p>2.0</p></td>
@ -1676,7 +1691,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>mojeek</p></th>
<tr class="row-odd"><th class="stub"><p>mojeek</p></th>
<th class="stub"><p>!mjk</p></th>
<td><p>xpath</p></td>
<td><p>2.0</p></td>
@ -1691,7 +1706,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>seedpeer</p></th>
<tr class="row-even"><th class="stub"><p>seedpeer</p></th>
<th class="stub"><p>!speu</p></th>
<td><p>seedpeer</p></td>
<td><p>2.0</p></td>
@ -1706,7 +1721,7 @@
<td></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>naver</p></th>
<tr class="row-odd"><th class="stub"><p>naver</p></th>
<th class="stub"><p>!nvr</p></th>
<td><p>xpath</p></td>
<td><p>2.0</p></td>
@ -1721,7 +1736,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-odd"><th class="stub"><p>rubygems</p></th>
<tr class="row-even"><th class="stub"><p>rubygems</p></th>
<th class="stub"><p>!rbg</p></th>
<td><p>xpath</p></td>
<td><p>2.0</p></td>
@ -1736,7 +1751,7 @@
<td><p>y</p></td>
<td><p>y</p></td>
</tr>
<tr class="row-even"><th class="stub"><p>peertube</p></th>
<tr class="row-odd"><th class="stub"><p>peertube</p></th>
<th class="stub"><p>!ptb</p></th>
<td><p>peertube</p></td>
<td><p>2.0</p></td>

View File

@ -18,8 +18,6 @@
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js"></script>
<script src="../_static/sphinx_tabs/tabs.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="uwsgi" href="installation-uwsgi.html" />
@ -66,52 +64,6 @@
universe repository.</p>
<div class="section" id="install-packages">
<span id="id1"></span><h2><a class="toc-backref" href="#id2">Install packages</a><a class="headerlink" href="#install-packages" title="Permalink to this headline"></a></h2>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
<div class="docutils container">
<p>Ubuntu / debian</p>
</div>
</div>
<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="docutils container">
<p>Arch Linux</p>
</div>
</div>
<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="docutils container">
<p>Fedora / RHEL</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
virtualenv python3-dev python3-babel python3-venv <span class="se">\</span>
uwsgi uwsgi-plugin-python3 <span class="se">\</span>
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev <span class="se">\</span>
shellcheck
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
python-virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
uwsgi uwsgi-plugin-python <span class="se">\</span>
git base-devel libxml2 <span class="se">\</span>
shellcheck
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
uwsgi uwsgi-plugin-python3 <span class="se">\</span>
git @development-tools libxml2 <span class="se">\</span>
ShellCheck
</pre></div>
</div>
</div>
</div>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>This installs also the packages needed by <a class="reference internal" href="installation-uwsgi.html#searx-uwsgi"><span class="std std-ref">uwsgi</span></a></p>
@ -119,90 +71,14 @@ universe repository.</p>
</div>
<div class="section" id="create-user">
<span id="create-searx-user"></span><h2><a class="toc-backref" href="#id3">Create user</a><a class="headerlink" href="#create-user" title="Permalink to this headline"></a></h2>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H useradd --shell /bin/bash --system <span class="se">\</span>
--home-dir /usr/local/searx <span class="se">\</span>
--comment <span class="s1">&#39;Privacy-respecting metasearch engine&#39;</span> searx
$ sudo -H mkdir /usr/local/searx
$ sudo -H chown -R searx:searx /usr/local/searx
</pre></div>
</div>
</div>
</div>
</div>
<div class="section" id="install-searx-dependencies">
<span id="searx-src"></span><h2><a class="toc-backref" href="#id4">install searx &amp; dependencies</a><a class="headerlink" href="#install-searx-dependencies" title="Permalink to this headline"></a></h2>
<p>Start a interactive shell from new created user and clone searx:</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H -u searx -i
<span class="o">(</span>searx<span class="o">)</span>$ git clone https://github.com/searx/searx.git /usr/local/searx/searx-src
</pre></div>
</div>
</div>
</div>
<p>In the same shell create <em>virtualenv</em>:</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>searx<span class="o">)</span>$ python3 -m venv /usr/local/searx/searx-pyenv
<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">echo</span> . /usr/local/searx/searx-pyenv/bin/activate &gt;&gt; /usr/local/searx/.profile
</pre></div>
</div>
</div>
</div>
<p>To install searxs dependencies, exit the searx <em>bash</em> session you opened above
and restart a new. Before install, first check if your <em>virualenv</em> was sourced
from the login (<em>~/.profile</em>):</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H -u searx -i
<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">command</span> -v python <span class="o">&amp;&amp;</span> python --version
/usr/local/searx/searx-pyenv/bin/python
Python 3.8.1
<span class="c1"># update pip&#39;s boilerplate ..</span>
pip install -U pip
pip install -U setuptools
pip install -U wheel
<span class="c1"># jump to searx&#39;s working tree and install searx into virtualenv</span>
<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">cd</span> /usr/local/searx/searx-src
<span class="o">(</span>searx<span class="o">)</span>$ pip install -e .
</pre></div>
</div>
</div>
</div>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>Open a second terminal for the configuration tasks and left the <code class="docutils literal notranslate"><span class="pre">(searx)$</span></code>
@ -214,92 +90,12 @@ terminal open for the tasks below.</p>
<p>Create a copy of the <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a> configuration file in systems
<em>/etc</em> folder. Configure like shown below replace <code class="docutils literal notranslate"><span class="pre">searx&#64;\$(uname</span> <span class="pre">-n)</span></code> with
a name of your choice <em>and/or</em> edit <code class="docutils literal notranslate"><span class="pre">/etc/searx/settings.yml</span></code> if necessary.</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H cp /usr/local/searx/searx-src/searx/settings.yml /etc/searx/settings.yml
$ sudo -H sed -i -e s/ultrasecretkey/<span class="se">\4</span>88c4104f90826376576aa6602e0502e/g /etc/searx/settings.yml
$ sudo -H sed -i -e s/<span class="o">{</span>instance_name<span class="o">}</span>/searx@<span class="se">\a</span>lexandre-vm/g /etc/searx/settings.yml
</pre></div>
</div>
</div>
</div>
</div>
<div class="section" id="check">
<h2><a class="toc-backref" href="#id6">Check</a><a class="headerlink" href="#check" title="Permalink to this headline"></a></h2>
<p>To check your searx setup, optional enable debugging and start the <em>webapp</em>.
Searx looks at the exported environment <code class="docutils literal notranslate"><span class="pre">$SEARX_SETTINGS_PATH</span></code> for a
configuration file.</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-YmFzaA== docutils container">
<div class="docutils container">
<p>bash</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># enable debug ..</span>
$ sudo -H sed -i -e s/debug : False/debug : True/g /etc/searx/settings.yml
<span class="c1"># start webapp</span>
$ sudo -H -u searx -i
<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">cd</span> /usr/local/searx/searx-src
<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">export</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
<span class="o">(</span>searx<span class="o">)</span>$ python searx/webapp.py
<span class="c1"># disable debug</span>
$ sudo -H sed -i -e s/debug : True/debug : False/g /etc/searx/settings.yml
</pre></div>
</div>
</div>
</div>
<p>Open WEB browser and visit <a class="reference external" href="http://">http://</a> . If you are inside a
container or in a script, test with curl:</p>
<div class="sphinx-tabs docutils container">
<div class="ui top attached tabular menu sphinx-menu docutils container">
<div class="active item sphinx-data-tab-V0VCIGJyb3dzZXI= docutils container">
<div class="docutils container">
<p>WEB browser</p>
</div>
</div>
<div class="item sphinx-data-tab-Y3VybA== docutils container">
<div class="docutils container">
<p>curl</p>
</div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-V0VCIGJyb3dzZXI= active docutils container">
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ xgd-open http://
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-Y3VybA== docutils container">
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ curl --location --verbose --head --insecure
* Trying 127.0.0.1:8888...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
&gt; HEAD / HTTP/1.1
&gt; Host: 127.0.0.1:8888
&gt; User-Agent: curl/7.68.0
&gt; Accept: */*
&gt;
* Mark bundle as not supporting multiuse
* HTTP 1.0, assume close after body
&lt; HTTP/1.0 200 OK
HTTP/1.0 200 OK
...
</pre></div>
</div>
</div>
</div>
<p>If everything works fine, hit <code class="docutils literal notranslate"><span class="pre">[CTRL-C]</span></code> to stop the <em>webapp</em> and disable the
debug option in <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>. You can now exit searx user bash (enter exit
command twice). At this point searx is not demonized; uwsgi allows this.</p>

View File

@ -155,44 +155,10 @@ restart the uwsgi application.</p>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># init.d --&gt; /usr/share/doc/uwsgi/README.Debian.gz</span>
<span class="c1"># For uWSGI debian uses the LSB init process, this might be changed</span>
<span class="c1"># one day, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833067</span>
create /etc/uwsgi/apps-available/searx.ini
enable: sudo -H ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
start: sudo -H service uwsgi start searx
restart: sudo -H service uwsgi restart searx
stop: sudo -H service uwsgi stop searx
disable: sudo -H rm /etc/uwsgi/apps-enabled/searx.ini
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi@.service</span>
<span class="c1"># For uWSGI archlinux uses systemd template units, see</span>
<span class="c1"># - http://0pointer.de/blog/projects/instances.html</span>
<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd</span>
create: /etc/uwsgi/searx.ini
enable: sudo -H systemctl <span class="nb">enable</span> uwsgi@searx
start: sudo -H systemctl start uwsgi@searx
restart: sudo -H systemctl restart uwsgi@searx
stop: sudo -H systemctl stop uwsgi@searx
disable: sudo -H systemctl disable uwsgi@searx
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi.service</span>
<span class="c1"># The unit file starts uWSGI in emperor mode (/etc/uwsgi.ini), see</span>
<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html</span>
create: /etc/uwsgi.d/searx.ini
restart: sudo -H touch /etc/uwsgi.d/searx.ini
disable: sudo -H rm /etc/uwsgi.d/searx.ini
</pre></div>
</div>
</div>
</div>
<div class="sphinx-tabs docutils container">
@ -214,269 +180,10 @@ disable: sudo -H rm /etc/uwsgi.d/searx.ini
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
<span class="c1"># uWSGI core</span>
<span class="c1"># ----------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
<span class="c1"># Who will run the code</span>
<span class="nv">uid</span> <span class="o">=</span> searx
<span class="nv">gid</span> <span class="o">=</span> searx
<span class="c1"># set (python) default encoding UTF-8</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
<span class="c1"># chdir to specified directory before apps loading</span>
<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
<span class="c1"># searx configuration (settings.yml)</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
<span class="c1"># disable logging for privacy</span>
disable-logging <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># The right granted on the created socket</span>
chmod-socket <span class="o">=</span> 666
<span class="c1"># Plugin to use and interpretor config</span>
single-interpreter <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># enable master process</span>
<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load apps in each worker instead of the master</span>
lazy-apps <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load uWSGI plugins</span>
<span class="nv">plugin</span> <span class="o">=</span> python3,http
<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
<span class="c1"># default behaviour is for performance reasons.</span>
enable-threads <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># plugin: python</span>
<span class="c1"># --------------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
<span class="c1"># load a WSGI module</span>
<span class="nv">module</span> <span class="o">=</span> searx.webapp
<span class="c1"># set PYTHONHOME/virtualenv</span>
<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
<span class="c1"># add directory (or glob) to pythonpath</span>
<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
<span class="c1"># speak to upstream</span>
<span class="c1"># -----------------</span>
<span class="c1">#</span>
<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
<span class="c1"># using IP:</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
<span class="c1"># using unix-sockets:</span>
<span class="c1">#</span>
<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
<span class="c1">#</span>
<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
<span class="c1">#</span>
<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
<span class="c1"># uWSGI core</span>
<span class="c1"># ----------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
<span class="c1"># Who will run the code</span>
<span class="nv">uid</span> <span class="o">=</span> searx
<span class="nv">gid</span> <span class="o">=</span> searx
<span class="c1"># set (python) default encoding UTF-8</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
<span class="c1"># chdir to specified directory before apps loading</span>
<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
<span class="c1"># searx configuration (settings.yml)</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
<span class="c1"># disable logging for privacy</span>
<span class="nv">logger</span> <span class="o">=</span> systemd
disable-logging <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># The right granted on the created socket</span>
chmod-socket <span class="o">=</span> 666
<span class="c1"># Plugin to use and interpretor config</span>
single-interpreter <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># enable master process</span>
<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load apps in each worker instead of the master</span>
lazy-apps <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load uWSGI plugins</span>
<span class="nv">plugin</span> <span class="o">=</span> python
<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
<span class="c1"># default behaviour is for performance reasons.</span>
enable-threads <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># plugin: python</span>
<span class="c1"># --------------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
<span class="c1"># load a WSGI module</span>
<span class="nv">module</span> <span class="o">=</span> searx.webapp
<span class="c1"># set PYTHONHOME/virtualenv</span>
<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
<span class="c1"># add directory (or glob) to pythonpath</span>
<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
<span class="c1"># speak to upstream</span>
<span class="c1"># -----------------</span>
<span class="c1">#</span>
<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
<span class="c1"># using IP:</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
<span class="c1"># using unix-sockets:</span>
<span class="c1">#</span>
<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
<span class="c1">#</span>
<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
<span class="c1"># chown -R searx:searx /run/uwsgi/app/searx</span>
<span class="c1">#</span>
<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
</pre></div>
</div>
</div>
<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
<span class="c1"># uWSGI core</span>
<span class="c1"># ----------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
<span class="c1"># Who will run the code</span>
<span class="nv">uid</span> <span class="o">=</span> searx
<span class="nv">gid</span> <span class="o">=</span> searx
<span class="c1"># set (python) default encoding UTF-8</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
<span class="c1"># chdir to specified directory before apps loading</span>
<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
<span class="c1"># searx configuration (settings.yml)</span>
<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
<span class="c1"># disable logging for privacy</span>
disable-logging <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># The right granted on the created socket</span>
chmod-socket <span class="o">=</span> 666
<span class="c1"># Plugin to use and interpretor config</span>
single-interpreter <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># enable master process</span>
<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load apps in each worker instead of the master</span>
lazy-apps <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># load uWSGI plugins</span>
<span class="nv">plugin</span> <span class="o">=</span> python3,http
<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
<span class="c1"># default behaviour is for performance reasons.</span>
enable-threads <span class="o">=</span> <span class="nb">true</span>
<span class="c1"># plugin: python</span>
<span class="c1"># --------------</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
<span class="c1"># load a WSGI module</span>
<span class="nv">module</span> <span class="o">=</span> searx.webapp
<span class="c1"># set PYTHONHOME/virtualenv</span>
<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
<span class="c1"># add directory (or glob) to pythonpath</span>
<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
<span class="c1"># speak to upstream</span>
<span class="c1"># -----------------</span>
<span class="c1">#</span>
<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
<span class="c1"># using IP:</span>
<span class="c1">#</span>
<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
<span class="c1"># using unix-sockets:</span>
<span class="c1">#</span>
<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
<span class="c1">#</span>
<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
<span class="c1">#</span>
<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
</pre></div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,158 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Running shell commands to fetch results &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
<link rel="stylesheet" href="../_static/searx.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="prev" title="Limit access to your searx engines" href="private-engines.html" />
<script>DOCUMENTATION_OPTIONS.URL_ROOT = '../';</script>
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="private-engines.html" title="Limit access to your searx engines"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Running shell commands to fetch results</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="running-shell-commands-to-fetch-results">
<h1>Running shell commands to fetch results<a class="headerlink" href="#running-shell-commands-to-fetch-results" title="Permalink to this headline"></a></h1>
<p>Previously, with searx you could search over the Internet on other peoples
computers. Now it is possible to fetch results from your local machine without
connecting to any networks from the same graphical user interface.</p>
<div class="section" id="command-line-engines">
<h2>Command line engines<a class="headerlink" href="#command-line-engines" title="Permalink to this headline"></a></h2>
<p>In <a class="reference external" href="https://github.com/searx/searx/pull/2128">PR 2128</a> a new type of engine has been introduced called <code class="docutils literal notranslate"><span class="pre">command</span></code>.
This engine lets administrators add engines which run arbitrary shell commands
and show its output on the web UI of searx.</p>
<p>When creating and enabling a <code class="docutils literal notranslate"><span class="pre">command</span></code> engine on a public searx instance,
you must be careful to avoid leaking private data. The easiest solution
is to add tokens to the engine. Thus, only those who have the appropriate token
can retrieve results from the it.</p>
<p>The engine base is flexible. Only your imagination can limit the power of this engine. (And
maybe security concerns.) The following options are available:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">command</span></code>: A comma separated list of the elements of the command. A special token {{QUERY}} tells searx where to put the search terms of the user. Example: <code class="docutils literal notranslate"><span class="pre">['ls',</span> <span class="pre">'-l',</span> <span class="pre">'-h',</span> <span class="pre">'{{QUERY}}']</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">delimiter</span></code>: A dict containing a delimiter char and the “titles” of each element in keys.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">parse_regex</span></code>: A dict containing the regular expressions for each result key.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">query_type</span></code>: The expected type of user search terms. Possible values: <code class="docutils literal notranslate"><span class="pre">path</span></code> and <code class="docutils literal notranslate"><span class="pre">enum</span></code>. <code class="docutils literal notranslate"><span class="pre">path</span></code> checks if the uesr provided path is inside the working directory. If not the query is not executed. <code class="docutils literal notranslate"><span class="pre">enum</span></code> is a list of allowed search terms. If the user submits something which is not included in the list, the query returns an error.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">query_enum</span></code>: A list containing allowed search terms if <code class="docutils literal notranslate"><span class="pre">query_type</span></code> is set to <code class="docutils literal notranslate"><span class="pre">enum</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">working_dir</span></code>: The directory where the command has to be executed. Default: <code class="docutils literal notranslate"><span class="pre">.</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">result_separator</span></code>: The character that separates results. Default: <code class="docutils literal notranslate"><span class="pre">\n</span></code></p></li>
</ul>
<p>The example engine below can be used to find files with a specific name in the configured
working directory.</p>
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">name</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">find</span>
<span class="l l-Scalar l-Scalar-Plain">engine</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">command</span>
<span class="l l-Scalar l-Scalar-Plain">command</span><span class="p p-Indicator">:</span> <span class="p p-Indicator">[</span><span class="s">&#39;find&#39;</span><span class="p p-Indicator">,</span> <span class="s">&#39;.&#39;</span><span class="p p-Indicator">,</span> <span class="s">&#39;-name&#39;</span><span class="p p-Indicator">,</span> <span class="s">&#39;{{QUERY}}&#39;</span><span class="p p-Indicator">]</span>
<span class="l l-Scalar l-Scalar-Plain">query_type</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">path</span>
<span class="l l-Scalar l-Scalar-Plain">shortcut</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">fnd</span>
<span class="l l-Scalar l-Scalar-Plain">delimiter</span><span class="p p-Indicator">:</span>
<span class="l l-Scalar l-Scalar-Plain">chars</span><span class="p p-Indicator">:</span> <span class="s">&#39;</span><span class="nv"> </span><span class="s">&#39;</span>
<span class="l l-Scalar l-Scalar-Plain">keys</span><span class="p p-Indicator">:</span> <span class="p p-Indicator">[</span><span class="s">&#39;line&#39;</span><span class="p p-Indicator">]</span>
</pre></div>
</div>
</div>
<div class="section" id="next-steps">
<h2>Next steps<a class="headerlink" href="#next-steps" title="Permalink to this headline"></a></h2>
<p>In the next milestone, support for local search engines and indexers (e.g. Elasticsearch)
are going to be added. This way, you will be able to query your own databases/indexers.</p>
</div>
<div class="section" id="acknowledgement">
<h2>Acknowledgement<a class="headerlink" href="#acknowledgement" title="Permalink to this headline"></a></h2>
<p>This development was sponsored by <a class="reference external" href="https://nlnet.nl/discovery">Search and Discovery Fund</a> of <a class="reference external" href="https://nlnet.nl/">NLnet Foundation</a> .</p>
<div class="line-block">
<div class="line">Happy hacking.</div>
<div class="line">kvch // 2020.09.28 21:26</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<span id="sidebar-top"></span>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/searx_logo_small.png" alt="Logo"/>
</a></p>
<h3>Project Links</h3>
<ul>
<li><a href="https://github.com/searx/searx">Source</a>
<li><a href="https://github.com/searx/searx/wiki">Wiki</a>
<li><a href="https://searx.space/">Public instances</a>
<li><a href="https://twitter.com/Searx_engine">Twitter</a>
</ul><h3>Navigation</h3>
<ul>
<li><a href="../index.html">Overview</a>
<ul>
<li><a href="index.html">Blog</a>
<ul>
<li>Previous: <a href="private-engines.html" title="previous chapter">Limit access to your searx engines</a>
</ul>
</li>
</ul>
</li>
</ul>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
<script src="../_static/version_warning_offset.js"></script>
</body>
</html>

View File

@ -84,6 +84,12 @@
<li class="toctree-l2"><a class="reference internal" href="private-engines.html#acknowledgement">Acknowledgement</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="command-line-engines.html">Running shell commands to fetch results</a><ul>
<li class="toctree-l2"><a class="reference internal" href="command-line-engines.html#command-line-engines">Command line engines</a></li>
<li class="toctree-l2"><a class="reference internal" href="command-line-engines.html#next-steps">Next steps</a></li>
<li class="toctree-l2"><a class="reference internal" href="command-line-engines.html#acknowledgement">Acknowledgement</a></li>
</ul>
</li>
</ul>
</div>
</div>

View File

@ -20,6 +20,7 @@
<script src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Running shell commands to fetch results" href="command-line-engines.html" />
<link rel="prev" title="Preparation for offline engines" href="intro-offline.html" />
<script>DOCUMENTATION_OPTIONS.URL_ROOT = '../';</script>
@ -30,6 +31,9 @@
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="command-line-engines.html" title="Running shell commands to fetch results"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="intro-offline.html" title="Preparation for offline engines"
accesskey="P">previous</a> |</li>
@ -126,7 +130,7 @@ and come up with new solutions which fit your use case.</p>
<li><a href="index.html">Blog</a>
<ul>
<li>Previous: <a href="intro-offline.html" title="previous chapter">Preparation for offline engines</a>
</ul>
<li>Next: <a href="command-line-engines.html" title="next chapter">Running shell commands to fetch results</a></ul>
</li>
</ul>
</li>

View File

@ -398,7 +398,7 @@ the desired type.</p>
<td><p>string, general result-text</p></td>
</tr>
<tr class="row-odd"><td><p>publishedDate</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
</tr>
</tbody>
</table>
@ -430,7 +430,7 @@ the desired type.</p>
<td><p><em>(partly implemented)</em></p></td>
</tr>
<tr class="row-even"><td><p>publishedDate</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>,
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>,
time of publish <em>(partly implemented)</em></p></td>
</tr>
<tr class="row-odd"><td><p>img_src</p></td>
@ -468,7 +468,7 @@ time of publish <em>(partly implemented)</em></p></td>
<td><p><em>(not implemented yet)</em></p></td>
</tr>
<tr class="row-even"><td><p>publishedDate</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
</tr>
<tr class="row-odd"><td><p>thumbnail</p></td>
<td><p>string, url to a small-preview image</p></td>
@ -502,7 +502,7 @@ time of publish <em>(partly implemented)</em></p></td>
<td><p>string, general result-text</p></td>
</tr>
<tr class="row-even"><td><p>publishedDate</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>,
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>,
time of publish <em>(not implemented yet)</em></p></td>
</tr>
<tr class="row-odd"><td><p>seed</p></td>
@ -549,7 +549,7 @@ time of publish <em>(not implemented yet)</em></p></td>
<td><p>string, general result-text</p></td>
</tr>
<tr class="row-odd"><td><p>publishedDate</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>, time of publish</p></td>
</tr>
<tr class="row-even"><td><p>latitude</p></td>
<td><p>latitude of result (in decimal format)</p></td>

View File

@ -412,7 +412,7 @@ content becomes smart.</p>
<tr class="row-even"><td colspan="3"><p><a class="reference external" href="http://www.sphinx-doc.org/en/stable/ext/intersphinx.html">intersphinx</a></p></td>
</tr>
<tr class="row-odd"><td><p>external anchor</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/reference/expressions.html#and" title="(in Python v3.8)"><span>Boolean operations</span></a></p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/reference/expressions.html#and" title="(in Python v3.9)"><span>Boolean operations</span></a></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">:ref:`python:and`</span></code></p></td>
</tr>
<tr class="row-even"><td><p>external doc anchor</p></td>
@ -420,7 +420,7 @@ content becomes smart.</p>
<td><p><code class="docutils literal notranslate"><span class="pre">:doc:`jinja:templates`</span></code></p></td>
</tr>
<tr class="row-odd"><td><p>python code object</p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.8)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a></p></td>
<td><p><a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.9)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">:py:obj:`datetime.datetime`</span></code></p></td>
</tr>
<tr class="row-even"><td><p>flask code object</p></td>
@ -592,7 +592,7 @@ in a specific way.</p>
<td><p><code class="docutils literal notranslate"><span class="pre">:download:`this</span> <span class="pre">file</span> <span class="pre">&lt;reST.rst&gt;`</span></code></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#math">math</a></p></td>
<td><p><img class="math" src="../_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg" alt="a^2 + b^2 = c^2"/></p></td>
<td><p><span class="math">a^2 + b^2 = c^2</span></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">:math:`a^2</span> <span class="pre">+</span> <span class="pre">b^2</span> <span class="pre">=</span> <span class="pre">c^2`</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref" title="(in Sphinx v4.0.0+)"><code class="xref rst rst-role docutils literal notranslate"><span class="pre">ref</span></code></a></p></td>
@ -1519,8 +1519,8 @@ is shown.
<p>In <a class="reference internal" href="#equation-schroedinger-general">(1)</a> the time-dependent Schrödinger equation
is shown.</p>
<div class="math" id="equation-schroedinger-general">
<p><span class="eqno">(1)<a class="headerlink" href="#equation-schroedinger-general" title="Permalink to this equation"></a></span><img src="../_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg" alt="\mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle =
\hat{H} |\,\psi (t) \rangle."/></p>
<p><span class="eqno">(1)<a class="headerlink" href="#equation-schroedinger-general" title="Permalink to this equation"></a></span><span class="math">\mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle =
\hat{H} |\,\psi (t) \rangle.</span></p>
</div></div>
<p>The next example shows the difference of <code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> (<em>textstyle</em>) and <code class="docutils literal notranslate"><span class="pre">\dfrac</span></code>
(<em>displaystyle</em>) used in a inline markup or another fraction.</p>
@ -1533,13 +1533,13 @@ is shown.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. …
<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <img class="math" src="../_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg" alt="\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}"/>
<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <span class="math">\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}</span>
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. …
<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <img class="math" src="../_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg" alt="\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}"/>
<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <span class="math">\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}</span>
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>

View File

@ -119,6 +119,7 @@ digital rights</p></li>
<li class="toctree-l2"><a class="reference internal" href="blog/admin.html">Searx admin interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="blog/intro-offline.html">Preparation for offline engines</a></li>
<li class="toctree-l2"><a class="reference internal" href="blog/private-engines.html">Limit access to your searx engines</a></li>
<li class="toctree-l2"><a class="reference internal" href="blog/command-line-engines.html">Running shell commands to fetch results</a></li>
</ul>
</li>
</ul>

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -222,18 +222,18 @@ inspect service
show service status and log
option
set one of the available options
apache (http://10.0.2.15/searx)
apache (http://192.168.1.92/searx)
:install: apache site with a reverse proxy (ProxyPass)
:remove: apache site searx.conf
nginx (http://10.0.2.15/searx)
nginx (http://192.168.1.92/searx)
:install: nginx site with a reverse proxy (ProxyPass)
:remove: nginx site searx.conf
filtron rules: /etc/filtron/rules.json
If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
PUBLIC_URL : http://10.0.2.15/searx
PUBLIC_HOST : 10.0.2.15
PUBLIC_URL : http://192.168.1.92/searx
PUBLIC_HOST : 192.168.1.92
SERVICE_USER : filtron
FILTRON_TARGET : 127.0.0.1:8888
FILTRON_API : 127.0.0.1:4005

View File

@ -162,46 +162,12 @@ of coffee).:</p>
<div class="section" id="overview">
<span id="lxc-sh-help"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">--help</span></code> output of the script is largely self-explanatory:</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage::
lxc.sh build [containers|&lt;name&gt;]
lxc.sh copy [images]
lxc.sh remove [containers|&lt;name&gt;|images]
lxc.sh [start|stop] [containers|&lt;name&gt;]
lxc.sh show [images|suite|info|config [&lt;name&gt;]]
lxc.sh cmd [--|&lt;name&gt;] &#39;...&#39;
lxc.sh install [suite|base [&lt;name&gt;]]
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ERROR: missing command lxc
build
:containers: build, launch all containers and &#39;install base&#39; packages
:&lt;name&gt;: build, launch container &lt;name&gt; and &#39;install base&#39; packages
copy:
:images: copy remote images of the suite into local storage
remove
:containers: delete all &#39;containers&#39; or only &lt;container-name&gt;
:images: delete local images of the suite
start/stop
:containers: start/stop all &#39;containers&#39; from the suite
:&lt;name&gt;: start/stop container &lt;name&gt; from suite
show
:info: show info of all (or &lt;name&gt;) containers from LXC suite
:config: show config of all (or &lt;name&gt;) containers from the LXC suite
:suite: show services of all (or &lt;name&gt;) containers from the LXC suite
:images: show information of local images
cmd
use single qoutes to evaluate in container&#39;s bash, e.g.: &#39;echo $(hostname)&#39;
-- run command &#39;...&#39; in all containers of the LXC suite
:&lt;name&gt;: run command &#39;...&#39; in container &lt;name&gt;
install
:base: prepare LXC; install basic packages
:suite: install LXC searx suite into all (or &lt;name&gt;) containers
LXD is needed, to install run::
LXC suite: searx --&gt; http://10.0.2.15/searx
suite includes searx, morty &amp; filtron
suite images:
ubu1604 ubu1804 ubu1910 ubu2004 fedora31 archlinux centos7
suite containers:
searx-ubu1604 searx-ubu1804 searx-ubu1910 searx-ubu2004 searx-fedora31
searx-archlinux searx-centos7
snap install lxd
lxd init --auto
</pre></div>
</div>
</div>

View File

@ -224,22 +224,22 @@ inspect service
option
set one of the available options
:new-key: set new morty key
apache : http://10.0.2.15/morty/
apache : http://192.168.1.92/morty/
:install: apache site with a reverse proxy (ProxyPass)
:remove: apache site morty.conf
nginx (http://10.0.2.15/morty/)
nginx (http://192.168.1.92/morty/)
:install: nginx site with a reverse proxy (ProxyPass)
:remove: nginx site morty.conf
If needed, set the environment variables in the &#39;.config.sh&#39; file::
PUBLIC_URL_MORTY: http://10.0.2.15/morty/
PUBLIC_URL_MORTY: http://192.168.1.92/morty/
MORTY_LISTEN: 127.0.0.1:3000
SERVICE_USER: morty
To activate result and image proxy in searx, edit settings.yml (read:
https://searx.github.io/searx/admin/morty.html)::
result_proxy:
url : http://10.0.2.15/morty/
url : http://192.168.1.92/morty/
server:
image_proxy : True
</pre></div>

View File

@ -75,49 +75,7 @@ into this user account. The installation is described in chapter
<span id="intranet-reverse-proxy"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">--help</span></code> output of the script is largely self-explanatory
(<a class="reference internal" href="index.html#toolboxing-common"><span class="std std-ref">Common commands &amp; environment</span></a>):</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage::
searx.sh shell
searx.sh install [all|user|searx-src|pyenv|uwsgi|packages|buildhost]
searx.sh update [searx]
searx.sh remove [all|user|pyenv|searx-src]
searx.sh activate [service]
searx.sh deactivate [service]
searx.sh inspect [service]
searx.sh option [debug-[on|off]|image-proxy-[on|off]|result-proxy &lt;url&gt; &lt;key&gt;]
searx.sh apache [install|remove]
shell
start interactive shell from user searx
install / remove
:all: complete (de-) installation of searx service
:user: add/remove service user &#39;searx&#39; (/usr/local/searx)
:searx-src: clone https://github.com/searx/searx
:pyenv: create/remove virtualenv (python) in /usr/local/searx/searx-pyenv
:uwsgi: install searx uWSGI application
:settings: reinstall settings from /home/alexandre/code/searx/searx/settings.yml
:packages: install needed packages from OS package manager
:buildhost: install packages from OS package manager needed by buildhosts
update searx
Update searx installation (/usr/local/searx)
activate service
activate and start service daemon (systemd unit)
deactivate service
stop and deactivate service daemon (systemd unit)
inspect service
run some small tests and inspect service&#39;s status and log
option
set one of the available options
apache
:install: apache site with the searx uwsgi app
:remove: apache site
searx settings: /etc/searx/settings.yml
If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
PUBLIC_URL : http://10.0.2.15/searx
SEARX_INSTANCE_NAME : searx@10.0.2.15
SERVICE_USER : searx
SEARX_INTERNAL_HTTP : http://127.0.0.1:8888
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ERROR: missing command systemctl
</pre></div>
</div>
</div>