# Meilisearch Deploy and manage Meilisearch on a fully managed infrastructure. Get instant access to fast, typo-tolerant search with zero operational overhead. ## Supported Versions Currently supported Meilisearch versions: Import configuration version: ## Service Configuration Our Meilisearch implementation runs as a **single-node** setup, as Meilisearch does not currently support cluster configurations. ### Environment Modes :::note Environment mode affects the availability of certain features and can impact your application's security. Choose carefully based on your use case. ::: #### Production Mode (Default) - Optimized for performance and security - Search Preview (Mini-dashboard) disabled - Recommended for production deployments #### Development Mode - Includes Search Preview (Mini-dashboard) - Enhanced debugging capabilities - Suitable for development and testing To switch between modes: 1. Navigate to the **Environment variables** section in the Meilisearch service detail and scroll to the **Generated Variables** 2. Set the `environment` variable to either: - `production` - for production mode (default) - `development` - for development mode with Mini-dashboard 3. Restart the service to apply changes ### API Key Management The service provides three pre-configured API keys, each with specific access levels: #### `masterKey` - Root access to your Meilisearch instance - Use only for initial setup and key management - **Never expose in application code or frontend** #### `defaultSearchKey` - Read-only search operations across all indices - Safe for frontend implementations - **Can be exposed in client-side code** #### `defaultAdminKey` - Full administrative access to all indices - For backend operations and index management - **Keep secure in backend services only** [Custom API keys](https://www.meilisearch.com/docs/reference/api/keys) provide fine-grained access control for specific use cases. For example, you might create: - Search-only keys for specific indices - Temporary keys with expiration dates - Keys with restricted actions for third-party integrations ## Network Architecture & Access ### Access Methods #### Public HTTPS Access When enabled, access via [Zerops subdomain](/references/networking/public-access#zerops-subdomain-access). #### Internal Project Access Services within the same project can reach Meilisearch directly: ``` http://{hostname}:7700 ``` ## Backup Meilisearch backups are created using native dump commands: - **Format**: `.dump` (standard Meilisearch dump) - **Tooling**: Native dump command - **Content**: Contains index data and settings For backup configuration, scheduling, retention policies, and management options, see the [Zerops Backups](/features/backup) documentation. ### Restoring Backups To restore a Meilisearch backup: 1. **Download** the backup file (`.dump`) from the Zerops UI 2. **Prepare** your target environment (clean existing indices or use a new instance) 3. **Restore** using the Meilisearch API. Use the dump import endpoint to restore your data. Follow the [official Meilisearch documentation](https://www.meilisearch.com/docs/learn/data_backup/dumps#importing-a-dump-in-self-hosted-instances) for detailed restore procedures. For assistance with the restoration process, contact Zerops support. ## Quick Start Example Here's a minimal example of implementing search in a React application: ```javascript const MEILISEARCH_URL = process.env.zeropsSubdomain; const SEARCH_KEY = process.env.defaultSearchKey; function SearchComponent() { const [results, setResults] = useState([]); const handleSearch = async (query) => { const response = await fetch(`/indexes/products/search`, { method: 'POST', headers: { 'Authorization': `Bearer `, 'Content-Type': 'application/json' }, body: JSON.stringify({ q: query, limit: 10 }) }); const data = await response.json(); setResults(data.hits); }; return (