[refactor] readme: add hosting instructions for bringing own reverse proxy
This commit is contained in:
parent
f2b9efe33e
commit
72cb934126
37
README.md
37
README.md
|
@ -11,27 +11,23 @@ Create a new SearXNG instance in five minutes using Docker
|
||||||
| [Valkey](https://github.com/valkey-io/valkey) | In-memory database | [docker.io/valkey/valkey:7-alpine](https://hub.docker.com/r/valkey/valkey) | [Dockerfile](https://github.com/valkey-io/valkey-container/blob/mainline/Dockerfile.template) |
|
| [Valkey](https://github.com/valkey-io/valkey) | In-memory database | [docker.io/valkey/valkey:7-alpine](https://hub.docker.com/r/valkey/valkey) | [Dockerfile](https://github.com/valkey-io/valkey-container/blob/mainline/Dockerfile.template) |
|
||||||
|
|
||||||
## How to use it
|
## How to use it
|
||||||
|
There are two ways to host SearXNG. The first one doesn't require any prior knowledge about self-hosting and thus is recommended for beginners. It includes caddy as a reverse proxy and automatically deals with the TLS certificates for you. The second one is recommended for more advanced users that already have their own reverse proxy (e.g. Nginx, HAProxy, ...) and probably some other services running on their machine. The first few steps are the same for both installation methods however.
|
||||||
|
|
||||||
- [Install docker](https://docs.docker.com/install/)
|
1. [Install docker](https://docs.docker.com/install/)
|
||||||
- Get searxng-docker
|
2. Get searxng-docker
|
||||||
```sh
|
```sh
|
||||||
cd /usr/local
|
cd /usr/local
|
||||||
git clone https://github.com/searxng/searxng-docker.git
|
git clone https://github.com/searxng/searxng-docker.git
|
||||||
cd searxng-docker
|
cd searxng-docker
|
||||||
```
|
```
|
||||||
- Edit the [.env](https://github.com/searxng/searxng-docker/blob/master/.env) file to set the hostname and an email
|
3. Edit the [.env](https://github.com/searxng/searxng-docker/blob/master/.env) file to set the hostname and an email
|
||||||
- Generate the secret key `sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml`
|
4. Generate the secret key `sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml`
|
||||||
- Edit the [searxng/settings.yml](https://github.com/searxng/searxng-docker/blob/master/searxng/settings.yml) file according to your need
|
5. Edit [searxng/settings.yml](https://github.com/searxng/searxng-docker/blob/master/searxng/settings.yml) according to your needs
|
||||||
- Check everything is working: `docker compose up`
|
|
||||||
- Run SearXNG in the background: `docker compose up -d`
|
|
||||||
|
|
||||||
> [!WARNING]
|
> [!NOTE]
|
||||||
> If you use an older version of docker desktop (`< 3.6.0`), you may have to install Docker Compose v1.
|
> On the first run, you must remove `cap_drop: - ALL` from the `docker-compose.yaml` file for the `searxng` service to successfully create `/etc/searxng/uwsgi.ini`. This is necessary because the `cap_drop: - ALL` directive removes all capabilities, including those required for the creation of the `uwsgi.ini` file. After the first run, you should re-add `cap_drop: - ALL` to the `docker-compose.yaml` file for security reasons.
|
||||||
> Accordingly, you should modify the commands in this documentation to suit Docker Compose v1. For instance, change 'docker compose up' to 'docker-compose up'.
|
|
||||||
>
|
|
||||||
> [Install the docker-compose plugin](https://docs.docker.com/compose/install/#scenario-two-install-the-compose-plugin) (be sure that docker-compose version is at least 1.9.0)
|
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Windows users can use the following powershell script to generate the secret key:
|
> Windows users can use the following powershell script to generate the secret key:
|
||||||
> ```powershell
|
> ```powershell
|
||||||
> $randomBytes = New-Object byte[] 32
|
> $randomBytes = New-Object byte[] 32
|
||||||
|
@ -40,10 +36,19 @@ Create a new SearXNG instance in five minutes using Docker
|
||||||
> (Get-Content searxng/settings.yml) -replace 'ultrasecretkey', $secretKey | Set-Content searxng/settings.yml
|
> (Get-Content searxng/settings.yml) -replace 'ultrasecretkey', $secretKey | Set-Content searxng/settings.yml
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
> [!NOTE]
|
### Method 1: With Caddy included (recommended for beginners)
|
||||||
> On the first run, you must remove `cap_drop: - ALL` from the `docker-compose.yaml` file for the `searxng` service to successfully create `/etc/searxng/uwsgi.ini`. This is necessary because the `cap_drop: - ALL` directive removes all capabilities, including those required for the creation of the `uwsgi.ini` file.
|
6. Run SearXNG in the background: `docker compose up -d`
|
||||||
|
|
||||||
## How to access the logs
|
### Method 2: Bring your own reverse proxy (experienced users)
|
||||||
|
6. Remove the caddy related parts in `docker-compose.yaml` such as the caddy service and its volumes.
|
||||||
|
7. Point your reverse proxy to the port set for the `searxng` service in `docker-compose.yml` (8080 by default).
|
||||||
|
8. Generate and configure the required TLS certificates with the reverse proxy of your choice.
|
||||||
|
9. Run SearXNG in the background: `docker compose up -d`
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> You can change the port `searxng` listens on inside the docker container (e.g. if you want to operate in `host` network mode) with the `BIND_ADDRESS` environment variable (defaults to `0.0.0.0:8080`). The environment variable can be set directly inside `docker-compose.yaml`.
|
||||||
|
|
||||||
|
## Troubleshooting - How to access the logs
|
||||||
|
|
||||||
To access the logs from all the containers use: `docker compose logs -f`.
|
To access the logs from all the containers use: `docker compose logs -f`.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue