sepia-search-motore-di-rice.../README.md

63 lines
1.6 KiB
Markdown

# Application behind search.joinpeertube.org
## Dev
```terminal
$ git submodule update --init --recursive
$ yarn install --pure-lockfile
```
The database (Elastic Search) is automatically created by PeerTube at startup.
Run simultaneously (for example with 3 terminals):
```terminal
$ tsc -w
```
```terminal
$ node dist/server
```
```
$ cd client && npm run dev
```
Then open http://localhost:8080.
### Add locale
Add the locale in `client/src/main.ts` and `client/gettext.config.js` and run `npm run i18n:update`.
## Production
Install dependencies:
* NodeJS (v16)
* Elastic Search
```terminal
$ git clone https://framagit.org/framasoft/peertube/search-index.git /var/www/peertube-search-index
$ cd /var/www/peertube-search-index
$ yarn install --pure-lockfile
$ npm run build
$ cp config/default.yaml config/production.yaml
$ vim config/production.yaml
$ NODE_ENV=production NODE_CONFIG_DIR=/var/www/peertube-search-index/config node dist/server.js
```
### Mapping migration
To update Elastic Search index mappings without downtime, run another instance of the search indexer
using the same configuration that the main node. You just have to update `elastic-search.indexes.*` to use new index names.
```
$ cd /var/www/peertube-search-index
$ cp config/production.yaml config/production-1.yaml
$ vim config/production-1.yaml
$ NODE_ENV=production NODE_APP_INSTANCE=1 NODE_CONFIG_DIR=/var/www/peertube-search-index/config node dist/server.js
```
After a while the new indexes will be filled. You can then stop the second indexer, update `config/production.yaml` to use
the new index names and restart the main index.