# Instalace Elasticsearch pro Mastodo# Instalace Elasticsearch pro Mastodon Tento repozitář obsahuje instrukce a konfigurace pro instalaci a nastavení Elasticsearch serveru, který je určen pro použití s Mastodon instancí na serveru Ubuntu 22.04. ## Požadavky - Ubuntu 22.04 - OpenJDK 11 ## Instalace Elasticsearch 1. **Aktualizace systému** ```bash sudo apt update ``` 2. Instalace OpenJDK 11 ```bash sudo apt install openjdk-11-jre ``` 3. Přidání Elasticsearch repozitáře ```bash wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt- key add - sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list' sudo apt update ``` 4. Instalace Elasticsearch ```bash sudo apt install elasticsearch ``` ¨ 5. Zapnutí a spuštění služby Elasticsearch ```bash sudo service elasticsearch start sudo systemctl enable elasticsearch ``` ## Nastavení bezpečnosti 1. Konfigurace firewallu Povolte přístup pouze z IP adresy serveru s Mastodon instancí: ```bash sudo ufw allow from to any port 9200 ``` # Nastavení uživatele pro Elasticsearch a konfigurace zabezpečení Tento návod popisuje kroky pro nastavení zabezpečeného uživatele v Elasticsearch a konfiguraci přístupu Mastodonu k Elasticsearch. ## Povolení zabezpečení v Elasticsearch 1. **Editace konfiguračního souboru Elasticsearch** - Otevřete konfigurační soubor `elasticsearch.yml`, který se obvykle nachází v `/etc/elasticsearch/`: ```bash sudo nano /etc/elasticsearch/elasticsearch.yml ``` - Vyhledejte následující řádek a odstraňte z něj komentář: ```yaml #xpack.security.enabled: true ``` - Změňte ho na: ```yaml xpack.security.enabled: true ``` 2. **Restartování Elasticsearch** - Po uložení změn v konfiguračním souboru restartujte Elasticsearch, aby se změny projevily: ```bash sudo systemctl restart elasticsearch ``` ## Nastavení uživatele v Elasticsearch 1. **Vytvoření nového uživatele** - Spusťte následující příkaz pro vytvoření nového uživatele s názvem `mastodon_user`: ```bash curl -u "admin:admin_password" -X POST "http://localhost:9200/_security/user/mastodon_user" -H 'Content-Type: application/json' -d' { "password" : "mastodon_password", "roles" : ["superuser"], "full_name" : "Mastodon User", "email" : "user@example.com" } ``` ## Konfigurace Mastodonu pro přístup k Elasticsearch 1. **Editace `.env.production` souboru v Mastodonu** - Přejděte do kořenového adresáře Mastodonu a otevřete `.env.production` pro editaci: ```bash nano .env.production ``` - Přidejte nebo upravte následující řádky, aby odrážely informace o Elasticsearch serveru: ```bash #Configuring full-text search ES_ENABLED=true ES_HOST=ip_adresa_serveru_elesticsearch ES_PORT=9200 ES_PRESET=single_node_cluster # single_node_cluster, small_cluster or large_cluster #ES_USER= #ES_PASS= ``` 2. **Restartování Mastodonu** - Restartujte Mastodon, aby se změny projevily: ```bash systemctl restart mastodon-*.service ``` ## Ověření funkčnosti - Po restartu služeb zkontrolujte, že Mastodon správně komunikuje s Elasticsearch. 1. Zkontrolovat stav Elasticsearch v Mastodonu -Mastodon poskytuje Rake úlohu, která umožňuje ověřit, zda je Elasticsearch dostupný a správně funguje s vaší Mastodon instancí. Můžete spustit následující příkaz z kořenového adresáře vaší Mastodon instance: ```bash RAILS_ENV=production bin/tootctl search status ``` 2. Znovu indexovat obsah pro Elasticsearch -Pokud jste právě povolili Elasticsearch nebo změnili některé konfigurace a potřebujete, aby všechny stávající příspěvky byly znovu indexovány, můžete spustit následující příkaz: ```bash RAILS_ENV=production bin/tootctl search deploy ``` Tento příkaz provede znovu indexaci všech veřejných příspěvků a dalších relevantních dat v Elasticsearch, což je užitečné po jakýchkoli změnách v konfiguraci nebo pro začlenění minulých dat do nově nastaveného Elasticsearch.