Typesense en un servidor Ubuntu con Let's Encrypt SSL Setup

Configurar servidor

Primero, configure su servidor en su proveedor de nube favorito. Evt. Configure claves SSH, en lugar de autenticación de contraseña de root

Instalar Typesense

Al momento de escribir, estos son los pasos de instalación:

# x64 curl -O https://dl.typesense.org/releases/0.25.2/typesense-server-0.25.2-amd64.deb sudo apt install ./typesense-server-0.25.2-amd64.deb # arm64 curl -O https://dl.typesense.org/releases/0.25.2/typesense-server-0.25.2-arm64.deb sudo apt install ./typesense-server-0.25.2-arm64.deb # Iniciar Typesense sudo systemctl iniciar tiposense-server.service

Puede encontrar los pasos más actualizados aquí: https://typesense.org/docs/guide/install-typesense.html#deb-package-on-ubuntu-debian .

Vincula un dominio vía DNS a la IP de tu servidor

Enlace a su dominio a través de un registro DNS A:

A tudominiodebusqueda.com IPOFYTUSERVIDOR

Publicar sin un certificado SSL

Puede obtener su clave API del archivo: /etc/typesense/typesense-server.ini. Si es necesario, puede ajustar esta clave.

Si instalara Typesense en Laravel Scout, PHP u otro proveedor, ya podría funcionar ahora. Cuando usas estas variables en .env o en scout.php:

TYPESENSE_HOST=tudominiodebúsqueda.com // o IPOFYOURSERVER
TYPESENSE_PORT=8108
TYPESENSE_PROTOCOL=http
TYPESENSE_API_KEY=TU CLAVE

Por ejemplo, cuando intentas Laravel Scout para importar datos, debería funcionar.

Pero, para hacerlo más seguro, es mejor utilizar SSL para proteger los datos.

Instalar SSL con Certbot

Por el momento ejecuta:

núcleo de instalación sudo snap; sudo snap refresco core # si ejecutó certbot antes, desinstálelo primero (tenga en cuenta el hecho de que los certificados SSL anteriores pueden desconectarse) # sudo apt remove certbot # habilite el puerto 443 si el firewall está activo sudo ufw enable 443 # podría ser eso El puerto 80 también es necesario para certbot sudo ufw permitir 80 sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot

Gracias a Océano digital para obtener la guía para instalar Certbot en modo clásico.

Recibirá los archivos del certificado como resultado. Por ejemplo:

Certificado recibido exitosamente. El certificado se guarda en: /etc/letsencrypt/live/yourdomain.com/fullchain.pem La clave se guarda en: /etc/letsencrypt/live/yourdomain.com/privkey.pem...

Edite este archivo: /etc/typesense/typesense-server.ini y agregue las ubicaciones de los certificados:

ssl-certificate=/etc/letsencrypt/live/yourdomain.com/fullchain.pem ssl-certificate-key=/etc/letsencrypt/live/yourdomain.com/privkey.pem

Cambiar la siguiente variable

puerto API = 8108

A:

puerto API = 443

Vaya a: https://tudominio.com/salud

Debería mostrar:

{"bien": verdadero}

Configurar cortafuegos

Pruebe el estado de Sudo ufw. Probablemente esté abierto a todo el tráfico. Asegúrese de que solo haya unos pocos puertos disponibles, probablemente el 443 y su puerto ssh (probablemente el puerto 22) y si ufw no está habilitado:

sudo ufw permitir 443 sudo ufw permitir 22 # o cualquier otro puerto ssh

Asegúrese de que estos puertos sean correctos, puede deshabilitar el acceso a su VPS/servidor completo. Después de eso, habilite el Firewall:

habilitar sudo ufw

Configure el archivo de configuración de Typesense:

Por cierto, seleccione la última versión de Typesense al configurar la configuración del servidor. Puede agregar parámetros adicionales en el archivo: /etc/typesense/typesense-server.ini .

https://typesense.org/docs/0.25.2/api/server-configuration.html

Configurar CORS

También puede configurar cors-domains, de modo que las llamadas de JavaScript solo se permitan desde ciertos dominios en /etc/typesense/typesense-server.ini :

enable-cors=true cors-domains=https://tudominio1.com,https://tudominio2.com

Opcional: cree una copia de seguridad periódica

Por ejemplo, puede crear una instantánea todos los días y crear una copia de seguridad con tarsnap y actos.

Cree un archivo de shell llamado make-snapshot.sh. Reemplace las variables e inserte la URL (y el puerto) de su instancia de Typesense y elija la ruta de instantánea correcta.

#!/bin/bash curl "http://localhost:8108/operaciones/snapshot?snapshot_path=/tmp/typesense-data-snapshot" -X POST \ -H "Tipo de contenido: aplicación/json" \ -H " X-TYPESENSE-API-KEY: ${TYPESENSE_API_KEY}"

Asegúrate de que esté modificado correctamente.

Luego asegúrese de que se realice una copia de seguridad del contenido de este directorio con frecuencia.

Más información en: https://typesense.org/docs/guide/backups.html .

Opcional: Instale un servidor de monitoreo o un paquete de hospedaje para monitorear el servidor.

Acabamos de lanzar un paquete propio y sencillo, llamado PHPTypesenseAdmin, que monitorea su instancia recién creada a través de una sencilla interfaz web en PHP.

Panel de administración de PHPTypesense

Guías más útiles:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESEspañol
Ir arriba