Follow these steps to deploy a Vespa application on your own machine.
Alternative versions of this guide:
This is tested with vespaengine/vespa:8.620.35 container image.
Prerequisites:
$ podman machine init --memory 6000 $ podman machine start
NO_SPACE - the vespaengine/vespa container image + headroom for data requires disk space.
Read more.
Steps:
Validate the environment:
$ docker info | grep "Total Memory" or $ podman info | grep "memTotal"
Make sure you see at minimum 4 GB.
Install the Vespa CLI using Homebrew:
$ brew install vespa-cli
Windows/No Homebrew? See the Vespa CLI page to download directly.
Set local target:
$ vespa config set target local
Start a Vespa Docker container:
$ docker run --detach --name vespa --hostname vespa-container \ --publish 8080:8080 --publish 19071:19071 \ vespaengine/vespa
Alternatively, use podman in the command above.
The port 8080 is published to make the search and feed interfaces accessible from outside the container,
19071 is the deploy-endpoint.
Only one container named vespa can run at a time, so change the name if needed.
See Docker containers for more insights.
Clone a sample application:
$ vespa clone album-recommendation myapp && cd myapp
Deploy the application:
$ vespa deploy --wait 300 ./app
$ vespa feed dataset/documents.jsonl
Run queries:
$ vespa query "select * from music where album contains 'head'"
$ vespa query \
"select * from music where true" \
"ranking=rank_albums" \
"ranking.features.query(user_profile)={{cat:pop}:0.8,{cat:rock}:0.2,{cat:jazz}:0.1}"
Get documents:
$ vespa document get id:mynamespace:music::a-head-full-of-dreams
$ vespa visit
Get a document by ID, or export all documents - see /document/v1 and vespa visit.
Congratulations, you have deployed your first Vespa application!
$ docker rm -f vespa