141 lines
4.4 KiB
Markdown
141 lines
4.4 KiB
Markdown
# 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 <IP_adresa_Mastodon_serveru> 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. |