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.
Guías más útiles:
- Configurar Typesense a través de una imagen de Docker: Guía de ServiceStack
- Crear PHPTypesenseAdmin para monitorear algunas variables