Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 176 additions & 0 deletions community-tutorials/SearXNG/01-en.md
Original file line number Diff line number Diff line change
@@ -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"
178 changes: 178 additions & 0 deletions community-tutorials/SearXNG/02-de.md
Original file line number Diff line number Diff line change
@@ -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"