Accessing SearXNG
- Open your browser and visit:
https://<SERVER_IP>/searxng - A browser SSL warning is expected (self-signed certificate)
- Authentication is required (Basic Auth popup)
- Authentication method: HTTP Basic Auth
- Credentials are stored securely in:
/root/.cloudzy-creds
Important Paths
- Install directory:
/root/searxng - Docker Compose file:
/root/searxng/docker-compose.yml - Env file:
/root/searxng/.env - Core configuration:
/root/searxng/core-config/ - Nginx vhost:
/etc/nginx/sites-available/searxng - Auth file:
/etc/nginx/auth/searxng.htpasswd - TLS certificates:
/etc/nginx/ssl/
Enabling SSL with a Domain
1. Point your domain to the server IP.
2. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:
vim /etc/nginx/sites-available/searxng
3. Install Certbot:
apt install -y certbot python3-certbot-nginx
4. Run the following command to generate a valid Let’s Encrypt certificate:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Replace SSL paths in Nginx config:
vim /etc/nginx/sites-available/searxng
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. Restart Nginx to apply the changes:
systemctl restart nginx
7. Open your browser and visit: https://yourdomain.com
Notes
- Customize SearXNG settings in
/root/searxng/core-config/. - SearXNG listens on 127.0.0.1:8080 internally.
- Nginx serves
/searxngpublicly with Basic Auth. - Docker volumes persist core data and Valkey cache.