diff --git a/community-tutorials/SearXNG/01-en.md b/community-tutorials/SearXNG/01-en.md new file mode 100644 index 00000000..0a717f8b --- /dev/null +++ b/community-tutorials/SearXNG/01-en.md @@ -0,0 +1,176 @@ +--- +title: Deploy a Private SearXNG Search Engine on netcup VPS +description: Step-by-step guide to install a privacy-respecting SearXNG metasearch engine with Docker and HTTPS +level: intermediate +updated_at: 2025-06-03 +slug: private-searxng-search-engine +author_name: Tayfun Türkmen +author_url: https://github.com/TayfunTurkmen +author_image: +author_bio: +tags: [privacy, search-engine, searxng, docker] +netcup_product_url: https://www.netcup.com/en/server +language: en +available_languages: [en, de] +--- + +## Deploy a Private SearXNG Search Engine on netcup VPS + +![SearXNG Logo](https://raw.githubusercontent.com/searxng/searxng/master/client/simple/src/brand/searxng.svg) + +## Introduction + +SearXNG is a privacy-respecting, open-source metasearch engine that aggregates results from multiple search engines without tracking users. This tutorial will guide you through deploying your own SearXNG instance on a netcup VPS with: + +✅ Docker containerization +✅ Let's Encrypt HTTPS encryption +✅ Firewall configuration +✅ Automated updates +✅ Customizable settings + +## ⚙️ Requirements + +- netcup VPS or Root Server +- Domain name pointing to your server +- Basic Linux command line knowledge +- 30-45 minutes setup time + +## 🚀 Installation Steps + +### 1. Server Preparation + + Update system and install dependencies + +```bash +sudo apt update && sudo apt upgrade -y +sudo apt install -y docker.io docker-compose certbot python3-certbot-nginx git ufw +``` + +### 2. Configure Firewall + +```bash +sudo ufw allow 22/tcp # SSH +sudo ufw allow 80/tcp # HTTP +sudo ufw allow 443/tcp # HTTPS +sudo ufw enable +``` +### 3. Clone SearXNG Repository + +```bash +git clone https://github.com/searxng/searxng-docker.git +cd searxng-docker +``` + +### 4. Configuration +Edit the .env file: +```bash +nano .env +``` +Configure with your domain and email: + +```bash +SEARXNG_HOSTNAME=search.yourdomain.com +LETSENCRYPT_EMAIL=your@email.com +``` + +### 5. Obtain SSL Certificate + +```bash +sudo certbot certonly --standalone -d search.yourdomain.com +``` + +### 6. Launch SearXNG +```bash +sudo docker-compose up -d +``` + +### 7. Verify Installation + +```bash +sudo docker-compose ps +``` + +Access your search engine at: +🔗 https://search.yourdomain.com + +### ⚡ Customization + +Edit searxng/settings.yml: + +```bash +search: + safe_search: 0 # 0=off, 1=moderate, 2=strict + engines: # Enable/disable engines + - name: google + disabled: false + - name: bing + disabled: true +server: + secret_key: "your-random-string" # Generate with: openssl rand -hex 32 +``` + +Restart to apply changes: + +```bash +sudo docker-compose restart +``` + +### 🔄 Maintenance + +Update SearXNG + + +```bash +cd searxng-docker +sudo docker-compose pull +sudo docker-compose up -d +``` +**Renew SSL Certificate Automatically** + +```bash +sudo crontab -e +``` +Add this line: + +```bash +0 3 * * * certbot renew --quiet --post-hook "docker-compose -f /path/to/searxng-docker/docker-compose.yml restart" +``` + +### 🛠 Troubleshooting +| Issue | Solution | +| ------------ | ------------ | +| Port 443 in use | sudo netstat -tulnp grep 443 then stop conflicting service | +| Container fails to start | sudo docker-compose logs to view error messages | +| Certificate errors | Ensure DNS points to server and port 80 is open | + +**🔒 Security Recommendations** +1. Change default secret key in settings.yml + +3. Enable rate limiting if publicly accessible + +5. Regularly update containers + +7. Consider using Tor for anonymous access + +### Conclusion +You've now deployed a fully private search engine that: + +✔ Doesn't track your searches +✔ Doesn't personalize results +✔ Doesn't serve targeted ads +✔ Can be customized to your needs + +For advanced configurations, refer to the official SearXNG documentation. + +## License 📜 +[MIT][MIT] + +## Contributor Certificate of Origin 📝 +By submitting this tutorial, I certify that: + +This is my original work + +I have the rights to submit it under the MIT license + +I understand it will be publicly available +[MIT]: https://github.com/netcup-community/community-tutorials/blob/main/LICENSE "MIT" diff --git a/community-tutorials/SearXNG/02-de.md b/community-tutorials/SearXNG/02-de.md new file mode 100644 index 00000000..cf2e20e3 --- /dev/null +++ b/community-tutorials/SearXNG/02-de.md @@ -0,0 +1,178 @@ +--- +Titel: Private SearXNG-Suchmaschine auf netcup VPS einrichten +Beschreibung: Schritt-für-Schritt-Anleitung zur Installation einer datenschutzfreundlichen SearXNG-Metasuchmaschine mit Docker und HTTPS +Level: Mittelstufe +Aktualisiert am: 03.06.2025 +Slug: private-searxng-search-engine +Autorenname: Tayfun Türkmen +Autoren-URL: https://github.com/TayfunTurkmen +Autorenbild: +Autoren-Bio: +Tags: [Datenschutz, Suchmaschine, SearXNG, Docker] +netcup_Produkt-URL: https://www.netcup.com/en/server +Sprache: en +Verfügbare Sprachen: [en, de] +--- + +## Private SearXNG-Suchmaschine auf netcup VPS einrichten + +![SearXNG Logo](https://raw.githubusercontent.com/searxng/searxng/master/client/simple/src/brand/searxng.svg) + +## Einleitung + +SearXNG ist eine datenschutzfreundliche Open-Source-Metasuchmaschine, die Ergebnisse mehrerer Suchmaschinen aggregiert, ohne Nutzer zu verfolgen. Dieses Tutorial führt Sie durch die Bereitstellung Ihrer eigenen SearXNG-Instanz auf einem netcup VPS mit: + +✅ Docker-Containerisierung +✅ Let's Encrypt HTTPS-Verschlüsselung +✅ Firewall-Konfiguration +✅ Automatische Updates +✅ Anpassbare Einstellungen + +## ⚙️ Voraussetzungen + +– netcup VPS (VPS oder Root Server) +– Domainname, der auf Ihren Server verweist +– Grundlegende Linux-Befehlszeilenkenntnisse +– 30–45 Minuten Einrichtungszeit + +## 🚀 Installationsschritte + +### 1. Servervorbereitung + +System aktualisieren und Abhängigkeiten installieren + +```bash +sudo apt update && sudo apt upgrade -y +sudo apt install -y docker.io docker-compose certbot python3-certbot-nginx git ufw +``` + +### 2. Konfigurieren Firewall + +bash +sudo ufw allow 22/tcp # SSH +sudo ufw allow 80/tcp # HTTP +sudo ufw allow 443/tcp # HTTPS +sudo ufw enable + + +### 3. SearXNG-Repository klonen + +bash +git clone https://github.com/searxng/searxng-docker.git +cd searxng-docker + + +### 4. Konfiguration +Bearbeiten Sie die .env-Datei: + +bash +nano .env + + +Konfigurieren Sie die Datei mit Ihrer Domain und E-Mail-Adresse: + +bash +SEARXNG_HOSTNAME=search.yourdomain.com +LETSENCRYPT_EMAIL=your@email.com + + +### 5. SSL-Zertifikat anfordern + +bash +sudo certbot certonly --standalone -d search.yourdomain.com +``` + +### 6. SearXNG starten +```bash +sudo docker-compose up -d +``` + +### 7. Installation überprüfen + +```bash +sudo docker-compose ps +``` + +Zugriff auf Ihre Suchmaschine: +🔗 https://search.yourdomain.com + +### ⚡ Anpassung + +searxng/settings.yml bearbeiten: + +```bash +search: +safe_search: 0 # 0=aus, 1=mittel, 2=streng +engines: # Engines aktivieren/deaktivieren +- Name: Google +deaktiviert: false +- Name: Bing +deaktiviert: true +server: +secret_key: "Ihre Zufallszeichenfolge" # Generierung mit: openssl rand -hex 32 +``` + +Neustart, um Änderungen zu übernehmen: + +```bash +sudo docker-compose Neustart +``` + +### 🔄 Wartung + +SearXNG aktualisieren + +```bash +cd searxng-docker +sudo docker-compose pull +sudo docker-compose up -d +``` +**SSL-Zertifikat automatisch erneuern** + +```bash +sudo crontab -e +``` +Fügen Sie diese Zeile hinzu: + +```bash +0 3 * * * certbot renew --quiet --post-hook "docker-compose -f /path/to/searxng-docker/docker-compose.yml restart" +``` + +### 🛠 Fehlerbehebung +| Problem | Lösung | +| ------------ | ------------ | +| Port 443 wird verwendet | sudo netstat -tulnp grep 443, dann den in Konflikt stehenden Dienst beenden | +| Container startet nicht | Fehlermeldungen mit sudo docker-compose logs anzeigen | +| Zertifikatsfehler | Sicherstellen, dass DNS auf den Server verweist und Port 80 geöffnet ist | + +**🔒 Sicherheitsempfehlungen** +1. Standard-Geheimschlüssel in settings.yml ändern + +3. Ratenbegrenzung aktivieren, wenn öffentlich zugänglich + +5. Container regelmäßig aktualisieren + +7. Tor für anonymen Zugriff verwenden + +### Fazit +Sie haben nun eine vollständig private Suchmaschine bereitgestellt, die: + +✔ Ihre Suchanfragen nicht verfolgt +✔ Ergebnisse nicht personalisiert +✔ Keine zielgerichtete Werbung ausspielt +✔ An Ihre Bedürfnisse anpassbar ist + +Weitere Konfigurationsmöglichkeiten finden Sie in der offiziellen SearXNG-Dokumentation. + +## Lizenz 📜 +[MIT][MIT] + +## Ursprungszertifikat des Mitwirkenden 📝 +Mit der Einreichung dieses Tutorials bestätige ich Folgendes: + +Dies ist mein Originalwerk. + +Ich bin berechtigt, es unter der MIT-Lizenz einzureichen. + +Ich verstehe, dass es öffentlich zugänglich sein wird. +[MIT]: https://github.com/netcup-community/community-tutorials/blob/main/LICENSE "MIT"