mirror of
https://gitlab.com/SIGBUS/nyaa.git
synced 2025-01-03 05:55:40 +00:00
readme: Clean up setup instructions
This commit is contained in:
parent
ad8a5c0d1c
commit
517f5c48e6
32
README.md
32
README.md
|
@ -1,14 +1,6 @@
|
||||||
# NyaaV2
|
# NyaaV2
|
||||||
|
|
||||||
## Setup:
|
## Setup
|
||||||
|
|
||||||
- Create your virtualenv, for example with `pyvenv venv`
|
|
||||||
- Enter your virtualenv with `source venv/bin/activate`
|
|
||||||
- Install dependencies with `pip install -r requirements.txt`
|
|
||||||
- Run `python db_create.py` to create the database
|
|
||||||
- Start the dev server with `python run.py`
|
|
||||||
|
|
||||||
## Updated Setup (python 3.6.1):
|
|
||||||
|
|
||||||
- Install dependencies https://github.com/pyenv/pyenv/wiki/Common-build-problems
|
- Install dependencies https://github.com/pyenv/pyenv/wiki/Common-build-problems
|
||||||
- Install `pyenv` https://github.com/pyenv/pyenv/blob/master/README.md#installation
|
- Install `pyenv` https://github.com/pyenv/pyenv/blob/master/README.md#installation
|
||||||
|
@ -20,7 +12,7 @@
|
||||||
- Copy `config.example.py` into `config.py`
|
- Copy `config.example.py` into `config.py`
|
||||||
- Change TABLE_PREFIX to `nyaa_` or `sukebei_` depending on the site
|
- Change TABLE_PREFIX to `nyaa_` or `sukebei_` depending on the site
|
||||||
|
|
||||||
## Setting up MySQL/MariaDB database for advanced functionality
|
### Setting up MySQL/MariaDB database for advanced functionality
|
||||||
- Enable `USE_MYSQL` flag in config.py
|
- Enable `USE_MYSQL` flag in config.py
|
||||||
- Install latest mariadb by following instructions here https://downloads.mariadb.org/mariadb/repositories/
|
- Install latest mariadb by following instructions here https://downloads.mariadb.org/mariadb/repositories/
|
||||||
- Tested versions: `mysql Ver 15.1 Distrib 10.0.30-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2`
|
- Tested versions: `mysql Ver 15.1 Distrib 10.0.30-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2`
|
||||||
|
@ -35,18 +27,18 @@
|
||||||
- `CREATE DATABASE nyaav2 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;`
|
- `CREATE DATABASE nyaav2 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;`
|
||||||
- `SOURCE ~/path/to/database/nyaa_maria_vx.sql`
|
- `SOURCE ~/path/to/database/nyaa_maria_vx.sql`
|
||||||
|
|
||||||
## Finishing up
|
### Finishing up
|
||||||
- Run `python db_create.py` to create the database
|
- Run `python db_create.py` to create the database
|
||||||
- Load the .sql file
|
- Load the .sql file
|
||||||
- `mysql -u user -p nyaav2`
|
- `mysql -u user -p nyaav2`
|
||||||
- `SOURCE cocks.sql`
|
- `SOURCE cocks.sql`
|
||||||
- Remember to change the default user password to an empty string to disable logging in
|
- Remember to change the default user password to an empty string to disable logging in
|
||||||
- Start the dev server with `python run.py`
|
- Start the dev server with `python run.py`
|
||||||
- Deactivate `source deactivate`
|
- When you are finished developing, deactivate your virtualenv with `source deactivate`
|
||||||
|
|
||||||
# Enabling ElasticSearch
|
## Enabling ElasticSearch
|
||||||
|
|
||||||
## Basics
|
### Basics
|
||||||
- Install jdk `sudo apt-get install openjdk-8-jdk`
|
- Install jdk `sudo apt-get install openjdk-8-jdk`
|
||||||
- Install elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
|
- Install elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
|
||||||
- `sudo systemctl enable elasticsearch.service`
|
- `sudo systemctl enable elasticsearch.service`
|
||||||
|
@ -54,7 +46,7 @@
|
||||||
- Run `curl -XGET 'localhost:9200'` and make sure ES is running
|
- Run `curl -XGET 'localhost:9200'` and make sure ES is running
|
||||||
- Optional: install Kabana as a search frontend for ES
|
- Optional: install Kabana as a search frontend for ES
|
||||||
|
|
||||||
## Enable MySQL Binlogging
|
### Enable MySQL Binlogging
|
||||||
- Add the `[mariadb]` bin-log section to my.cnf and reload mysql server
|
- Add the `[mariadb]` bin-log section to my.cnf and reload mysql server
|
||||||
- Connect to mysql
|
- Connect to mysql
|
||||||
- `SHOW VARIABLES LIKE 'binlog_format';`
|
- `SHOW VARIABLES LIKE 'binlog_format';`
|
||||||
|
@ -62,7 +54,7 @@
|
||||||
- Connect to root user
|
- Connect to root user
|
||||||
- `GRANT REPLICATION SLAVE ON *.* TO 'test'@'localhost';` where test is the user you will be running `sync_es.py` with
|
- `GRANT REPLICATION SLAVE ON *.* TO 'test'@'localhost';` where test is the user you will be running `sync_es.py` with
|
||||||
|
|
||||||
## Setting up ES
|
### Setting up ES
|
||||||
- Run `./create_es.sh` and this creates two indicies: `nyaa` and `sukebei`
|
- Run `./create_es.sh` and this creates two indicies: `nyaa` and `sukebei`
|
||||||
- The output should show `acknowledged: true` twice
|
- The output should show `acknowledged: true` twice
|
||||||
- The safest bet is to disable the webapp here to ensure there's no database writes
|
- The safest bet is to disable the webapp here to ensure there's no database writes
|
||||||
|
@ -70,7 +62,7 @@
|
||||||
- Run `python import_to_es.py` with `SITE_FLAVOR` set to `sukebei`
|
- Run `python import_to_es.py` with `SITE_FLAVOR` set to `sukebei`
|
||||||
- These will take some time to run as it's indexing
|
- These will take some time to run as it's indexing
|
||||||
|
|
||||||
## Setting up sync_es.py
|
### Setting up sync_es.py
|
||||||
- Sync_es.py keeps the ElasticSearch index updated by reading the BinLog
|
- Sync_es.py keeps the ElasticSearch index updated by reading the BinLog
|
||||||
- Configure the MySQL options with the user where you granted the REPLICATION permissions
|
- Configure the MySQL options with the user where you granted the REPLICATION permissions
|
||||||
- Connect to MySQL, run `SHOW MASTER STATUS;`.
|
- Connect to MySQL, run `SHOW MASTER STATUS;`.
|
||||||
|
@ -78,15 +70,13 @@
|
||||||
- Set up `sync_es.py` as a service and run it, preferably as the system/root
|
- Set up `sync_es.py` as a service and run it, preferably as the system/root
|
||||||
- Make sure `sync_es.py` runs within venv with the right dependencies
|
- Make sure `sync_es.py` runs within venv with the right dependencies
|
||||||
|
|
||||||
|
Enable the `USE_ELASTIC_SEARCH` flag in `config.py`, restart the application, and you're good to go.
|
||||||
|
|
||||||
## Database migrations
|
## Database migrations
|
||||||
- Uses [flask-Migrate](https://flask-migrate.readthedocs.io/)
|
- Uses [flask-Migrate](https://flask-migrate.readthedocs.io/)
|
||||||
- Run `./db_migrate.py db migrate` to generate the migration script after database model changes.
|
- Run `./db_migrate.py db migrate` to generate the migration script after database model changes.
|
||||||
- Take a look at the result in `migrations/versions/...` to make sure nothing went wrong.
|
- Take a look at the result in `migrations/versions/...` to make sure nothing went wrong.
|
||||||
- Run `./db_migrate.py db upgrade` to upgrade your database.
|
- Run `./db_migrate.py db upgrade` to upgrade your database.
|
||||||
|
|
||||||
## Good to go!
|
|
||||||
- After that, enable the `USE_ELASTIC_SEARCH` flag and restart the webapp and you're good to go
|
|
||||||
|
|
||||||
|
|
||||||
## Code Quality:
|
## Code Quality:
|
||||||
- Remember to follow PEP8 style guidelines and run `./lint.sh` before committing.
|
- Remember to follow PEP8 style guidelines and run `./lint.sh` before committing.
|
||||||
|
|
Loading…
Reference in a new issue