diff --git a/docs/pages/docs/extras/ssl-certificate-for-local-development/index.md b/docs/pages/docs/extras/ssl-certificate-for-local-development/index.md new file mode 100644 index 0000000000000000000000000000000000000000..b4495877fbd2c229ac365e6c1b2683618421b86c --- /dev/null +++ b/docs/pages/docs/extras/ssl-certificate-for-local-development/index.md @@ -0,0 +1,142 @@ +--- +collections: + - documents +layout: dm:document +parent: docs/extras/index +title: SSL Certificate for Local Development +description: > + Learn how to create a self-signed SSL Certificate that can be used with + Swoole HTTP Server. +--- + +# SSL Certificate for Local Development + +Some browser features require SSL to work (for example +[SharedArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer)) +or service workers, so you might want to use self-signed SSL certificate for +local development. + +## Setup + +Using those five simple steps you should be able to have a usable self-signed certificate: + +1. Copy `localhost.ext` and `Makefile` anywhere and put them in the same directory. +2. Adjust `SUBJ` and `PASSWD` variables in the `Makefile` to suit your needs. +3. Invoke make install as root (`sudo make install`). +4. Now it should be possible to import `/etc/ssl/certs/localhostCA.crt` into your browser as an Authority certificate (use your browser GUI). +5. You can use `/etc/ssl/certs/localhost.crt` and `/etc/ssl/private/localhost.key` in the {{docs/features/http/server}}. + +## Files + +```ini file:localhost.ext +authorityKeyIdentifier=keyid,issuer +basicConstraints=CA:FALSE +keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment +subjectAltName = @alt_names +[alt_names] +DNS.1 = localhost +``` + +```makefile file:Makefile +PASS=yourcertificatemasterpassword +SUBJ=/C=PL/ST=MyState/L=MyLocation/O=MyOrganization/OU=MyOrganisationUnit/CN=localhost/emailAddress=admin@localhost + +# Targets + +localhostCA.crt: localhostCA.pem + openssl x509 \ + -in localhostCA.pem \ + -inform PEM \ + -out localhostCA.crt + +localhostCA.key: + openssl genrsa \ + -des3 \ + -out localhostCA.key \ + -passout pass:$(PASS) \ + 2048 + +localhostCA.pem: localhostCA.key + openssl req \ + -x509 \ + -new \ + -nodes \ + -key localhostCA.key \ + -sha256 \ + -days 825 \ + -out localhostCA.pem \ + -passin pass:$(PASS) \ + -subj "$(SUBJ)" + +localhost.key: + openssl genrsa -out localhost.key 2048 + +localhost.csr: localhost.key + openssl req \ + -new \ + -key localhost.key \ + -out localhost.csr \ + -subj "$(SUBJ)" + +localhost.crt localhostCA.srl: localhost.csr localhost.ext localhostCA.pem localhostCA.key + openssl x509 \ + -req \ + -in localhost.csr \ + -CA localhostCA.pem \ + -CAkey localhostCA.key \ + -CAcreateserial \ + -out localhost.crt \ + -days 825 \ + -sha256 \ + -passin pass:$(PASS) \ + -extfile localhost.ext + +/etc/ssl/certs/localhost.crt: localhost.crt + install localhost.crt /etc/ssl/certs/localhost.crt + +/etc/ssl/certs/localhostCA.crt: localhostCA.crt + install localhostCA.crt /etc/ssl/certs/localhostCA.crt + +/etc/ssl/private/localhostCA.key: localhostCA.key + install localhostCA.key /etc/ssl/private/localhostCA.key + +/etc/ssl/private/localhost.key: localhost.key + install localhost.key /etc/ssl/private/localhost.key + +/etc/nginx/dhparam.pem: /etc/ssl/certs/localhost.crt /etc/ssl/private/localhost.key /etc/ssl/certs/localhostCA.crt /etc/ssl/private/localhostCA.key + openssl dhparam -out /etc/nginx/dhparam.pem 4096 + +/usr/local/share/ca-certificates/localhostCA.crt: localhostCA.crt + install localhostCA.crt /usr/local/share/ca-certificates/localhostCA.crt + +/usr/local/share/ca-certificates/localhost.crt: localhost.crt + install localhost.crt /usr/local/share/ca-certificates/localhost.crt + +# PHONY targets + +.PHONY: clean +clean: + rm -f localhost.crt + rm -f localhost.csr + rm -f localhost.key + rm -f localhostCA.crt + rm -f localhostCA.key + rm -f localhostCA.pem + rm -f localhostCA.srl + +.PHONY: install +install: /etc/ssl/certs/localhost.crt /etc/ssl/certs/localhostCA.crt /etc/ssl/private/localhost.key /etc/ssl/private/localhostCA.key + +.PHONY: uninstall +uninstall: + rm -f /etc/ssl/certs/localhost.crt + rm -f /etc/ssl/certs/localhostCA.crt + rm -f /etc/ssl/private/localhost.key + rm -f /etc/ssl/private/localhostCA.key + rm -f /usr/local/share/ca-certificates/localhost.crt + rm -f /usr/local/share/ca-certificates/localhostCA.crt + +.PHONY: update-ca-certificates +update-ca-certificates: /usr/local/share/ca-certificates/localhost.crt /usr/local/share/ca-certificates/localhostCA.crt + /usr/sbin/update-ca-certificates +``` diff --git a/docs/pages/tutorials/retrieval-augmented-generation-with-resonance-and-rubixml/index.md b/docs/pages/tutorials/retrieval-augmented-generation-with-resonance-and-rubixml/index.md new file mode 100644 index 0000000000000000000000000000000000000000..85ef9b9861500f51fb68db6648aff309bd69440d --- /dev/null +++ b/docs/pages/tutorials/retrieval-augmented-generation-with-resonance-and-rubixml/index.md @@ -0,0 +1,19 @@ +--- +collections: + - tutorials +draft: true +layout: dm:tutorial +parent: tutorials/index +tags: + - llama.cpp + - RubixML + - Static Site Generator +title: Semantic Search with Resonance and RubixML +description: > + Learn how to implement a semantic search using KNN search. +--- + +## Overview + +To achieve the semantic search index, we will go through the following steps: +1. Prepare the training data (cleaning up, chunking)