pub / serci

Search the web with !keywords
git clone https://src.jayvii.de/pub/serci.git
Home | Log | Files | Exports | Refs | README | RSS

README.md (4034B)


      1 # serĉi
      2 
      3 Search the web with `!keywords`.
      4 
      5 Please send patches or remarks to
      6 [jayvii+serci[AT]posteo[DOT]de](mailto:jayvii+serci[AT]posteo[DOT]de).
      7 
      8 ## FAQs
      9 
     10 ### What does serĉi mean?
     11 
     12 It is the Esperanto term for ["to search"](https://eneo.dict.cc/?s=ser%C4%89i).
     13 
     14 ### What are `!keywords`?
     15 
     16 An idea lent from the search Engine [DuckDuckGo](https://duckduckgo.com/bangs),
     17 which has been utilized by many others since. They call their keywords *bangs*,
     18 but it is the same concept and usability:
     19 
     20 > bangs are shortcuts that quickly take you to search results on other sites.
     21 > For example, when you know you want to search on another site like Wikipedia
     22 > or Amazon, our bangs get you there fastest. A search for !w filter bubble will
     23 > take you directly to Wikipedia.
     24 > 
     25 > Remember, though, because your search is actually taking place on that other
     26 > site, you are subject to that site’s policies, including its data collection
     27 > practices.
     28 > 
     29 > We’ve had bangs since 2008 as part of our geek roots. Now we have thousands of
     30 > !bangs and you can even submit your own.
     31 
     32 serĉi implements keywords for all kinds of search engine and transparently
     33 redirects you right to them. The default set of search engine and fall-backs
     34 is geared towards privacy and data minimalism. However, you can simply host
     35 serĉi yourself any time and configure your own favorite search engines and
     36 `!keywords`.
     37 
     38 If you think there are `!keywords` that other people would benefit from, feel free
     39 to contribute!
     40 
     41 ### How can I use serĉi?
     42 
     43 - You can try serĉi on [search.jayvii.de](https://search.jayvii.de). Or
     44   host it yourself! It barely needs any server resources, no database or lots
     45   of RAM. serĉi has minimal footprint (also on user data: there are NONE).
     46 - Either type your search directly into the search bar of the serĉi
     47   webfrontend or add the search to your browser by rightclicking in the
     48   URL-bar and choosing `add serĉi - Search with !keywords`.
     49 - Some browsers (for example Firefox on Android / Fennec) allow to configure
     50   custom search engines via search URL. Simply list
     51   `https://search.jayvii.de/?query=%s` (or whatever serĉi host you want to
     52   use).
     53 - Please do not abuse my open search site search.jayvii.de and try to host
     54   serĉi yourself, if you can. There is no guarantee, my site is always
     55   online or will be continued indefinitely.
     56 
     57 ## Hosting
     58 
     59 Simply upload the entire content of this repository to your webhost. Edit
     60 `opensearch.xml` accordingly. If the domain you want to run serĉi under is
     61 `search.example.com`, you can simply run:
     62 
     63 ```bash
     64 sed -e 's/%%URL%%/http:\/\/search.example.com/g' -i opensearch.xml
     65 ```
     66 
     67 Search-Engines and `!keywords` are configured in `config/config.php`. For fast
     68 access to `!keywords` and categories, seriĉi uses mappings written to `json`
     69 files. Before first run, you need to generate them from your config via
     70 `lib/generate_mappings.php`. This needs to be re-run everytime you adjust your
     71 `config/config.php`.
     72 
     73 ```bash
     74 php lib/generate_mappings.php
     75 ```
     76 
     77 Speed-Deployment:
     78 ```bash
     79 DOMAIN="search.example.com"
     80 mkdir -p /var/www/serci && \
     81   cd /var/www/serci && \
     82   wget https://src.jayvii.de/pub/serci/exports/main.tar.gz -O - | \
     83   tar xfvz - && \
     84   sed -e "s/%%URL%%/https:\/\/${DOMAIN}/g" -i opensearch.xml && \
     85   php lib/generate_mappings.php
     86 ```
     87 
     88 Example-configuration for Apache2:
     89 
     90 ```apache
     91 <VirtualHost *:80>
     92   # server name and directory
     93   ServerAdmin webmaster[AT]example[DOT]com
     94   ServerName search.example.com
     95   DocumentRoot /var/www/serci
     96 
     97   # log- and error files
     98   ErrorLog ${APACHE_LOG_DIR}/search.example.com_error.log
     99   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" custom
    100   CustomLog ${APACHE_LOG_DIR}/search.example.com.log custom
    101 
    102   # do not allow file browsing
    103   Options -Indexes
    104 
    105 </VirtualHost>
    106 ```
    107 
    108 ## License
    109 
    110 serĉi is under the AGPL-3.0 license. It is [REUSE](https://reuse.software)
    111 compliant!
    112 
    113 Icons are licensed under CC-BY-SA-4.0.
    114 
    115 Other bundled assets are:
    116 
    117 - [simple.css](https://simplecss.org/): MIT License (c) Kev Quirk