Kenn
12/01/2024, 6:57 PMuser_data = <<-EOF
# download & unarchive typesense
curl -O <https://dl.typesense.org/releases/${var.typesense_version}/typesense-server-${var.typesense_version}-linux-arm64.tar.gz>
tar -xzf typesense-server-${var.typesense_version}-linux-arm64.tar.gz -C /opt/typesense
# remove archive
rm typesense-server-${var.typesense_version}-linux-arm64.tar.gz
# get instance private IP
EC2_INSTANCE_IP=$(curl -s <http://instance-data/latest/meta-data/local-ipv4>)
# create typesense folders
mkdir -p /opt/typesense/data
mkdir -p /opt/typesense/log
# create the nodes file
echo "$EC2_INSTANCE_IP:${var.peering_port}:${var.app_port}" > /opt/typesense/nodes
# create typesense server config file
echo "[server]
api-key = ""
data-dir = /opt/typesense/data
log-dir = /opt/typesense/log
enable-cors = true
api-port = ${var.app_port}
peering-port = ${var.peering_port}
peering-address = $EC2_INSTANCE_IP
nodes = /opt/typesense/nodes" > /opt/typesense/typesense.ini
# create typesense service
echo "[Unit]
Description=Typesense service
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=5
User=ec2-user
ExecStart=/opt/typesense/typesense-server --config=/opt/typesense/typesense.ini
[Install]
WantedBy=default.target" > /etc/systemd/system/typesense.service
# start typesense service
systemctl start typesense
# enable typesense daemon
systemctl enable typesense
EOF