1. Create dedicated user and data directory

sudo useradd -r -s /sbin/nologin meilisearch
sudo mkdir -p /var/lib/meilisearch/data
sudo chown -R meilisearch:meilisearch /var/lib/meilisearch

2. Generate a strong master key

openssl rand -base64 32

3. Create environment config

sudo cat > /etc/meilisearch.env << 'EOF'
http_addr = "127.0.0.1:7700"
env = "production"
master_key = "KHGZEHDgBw8Tz4e8ntlnqBFUzC6A3wwvkdU3qkDVl00"
db_path = "/var/lib/meilisearch/data"
max_indexing_memory = "2Gb"
sudo chmod 600 /etc/meilisearch.env
sudo chown meilisearch:meilisearch /etc/meilisearch.env
EOF

4. Create systemd unit

sudo cat > /etc/systemd/system/meilisearch.service << 'EOF'
[Unit]
Description=Meilisearch API Service
After=network.target

[Service]
Type=simple
User=meilisearch
Group=meilisearch
EnvironmentFile=/etc/meilisearch.env
ExecStart=/usr/local/bin/meilisearch 
WorkingDirectory=/var/lib/meilisearch

# Security and system limits
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

5. Start service

sudo systemctl daemon-reload
sudo systemctl enable --now meilisearch
sudo systemctl status meilisearch

6. Test

curl http://localhost:7700/health
# Expected: {"status":"available"}