Typesense and docker compose with SSL certificates
I needed fast and robust search for the website I'm working on Affill.io
So I decided to go for the opensource tool Typesense, and I wanted to self host it.
I went for a small CX11 vps from Hetzner, and after following their guide on using docker compose I got it up and running. I dont have much data yet so the 2GB RAM is enough for now.
But I wanted to have my own domain for the search and get a SSL certificate from Let's encrypt.
It's been a while since I worked with linux, but the excellent howto from certbot on how to get the certificate generated helped me get up and running.
Now all that was left was to get typesense to work with my certificates, I made the docker-compose.yml
file and tried to start the container with docker compose up -d
But the server just kept on restarting
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
typesense-typesense-1 typesense/typesense:0.25.2 "/opt/typesense-serv…" typesense 41 seconds ago Restarting (1) 1 second ago
I ran docker compose logs
and could see that typesense couldnt find my certification files.
typesense-1 | E20240415 18:01:05.855815 1 http_server.cpp:1069] An error occurred while trying to load server certificate file: /cert/fullchain.pem
typesense-1 | E20240415 18:01:05.861860 1 http_server.cpp:175] Failed to listen on 0.0.0.0:8108 - No such file or directory
The error was that I tried to map the domain folder of letsencrypt
- /etc/letsencrypt/live/www.example.com:/cert
When mounting this folder the symlink wouldnt work, so I had to change the folder mount to be the /etc/letsencrypt folder instead.
This is my final docker-compose.yml file:
version: '3.4'
services:
typesense:
image: typesense/typesense:0.25.2
restart: on-failure
ports:
- "443:8108"
volumes:
- ./typesense-data:/data
- ./log:/log
- /etc/letsencrypt:/cert
command: '--data-dir /data --log-dir /log --enable-cors --ssl-certificate /cert/live/www.example.com/fullchain.pem --ssl-certificate-key /cert/live/www.example.com/privkey.pem
And now everything works!
Subscribe to my newsletter
Read articles from Stefan Skorpen directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by