Update README
Cette révision appartient à :
Parent
f398e936e4
révision
866eb647a0
|
@ -10,6 +10,7 @@ We offer two database back-end (but that might change to only postgresql later).
|
|||
> NOTE: Use the *-prod* version to deploy in production. See the section
|
||||
> [production](#production).
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
The first step depends on the back-end chosen.
|
||||
|
@ -40,6 +41,7 @@ The website will be available at [http://localhost:9999](http://localhost:9999).
|
|||
> from the version 3. If you're getting an error because your version of docker
|
||||
> is too low, you can try changing the version to '2' in the compose file.
|
||||
|
||||
|
||||
### Production
|
||||
|
||||
This is specific to the
|
||||
|
@ -53,36 +55,99 @@ postgresql in order to use this compose file.
|
|||
Set the correct database parameters in [postgres-prod.env](postgres-prod.env).
|
||||
You can then follow the steps above.
|
||||
|
||||
|
||||
### Cleaning docker containers
|
||||
|
||||
Docker can end up taking a lot of space very quickly. The script
|
||||
[prune\_docker.sh](prune_docker.sh) will get rid of unused docker images and
|
||||
volumes.
|
||||
|
||||
|
||||
## Ansible
|
||||
|
||||
> IMPORTANT: Make sure the website connects to pgpool's port. Otherwise, no
|
||||
> caching will be done. Ansible assume you have a user on the remote that has
|
||||
> sudo (no password).
|
||||
|
||||
You'll have to change a few variables in [hosts](host)
|
||||
You'll have to change a few variables in [hosts](host) and maybe tweak a few in
|
||||
[group_vars/all](group_vars/all).
|
||||
|
||||
### Setup server
|
||||
|
||||
This script is installs docker (might be dropped?). It also install postgresql
|
||||
with pgpool-ii and configure it. There is also a backup script installed that
|
||||
creates dump of the db and seeds it.
|
||||
### Setup server playbook
|
||||
|
||||
This playbook installs and configure:
|
||||
|
||||
- postgresql (It also includes pgpool for caching)
|
||||
- firewalld
|
||||
- golang
|
||||
- elasticsearch
|
||||
- backup system (uses cronjob to do daily backup of the database)
|
||||
|
||||
> NOTE: The backup script needs to have access to a GPG key to sign the dumps.
|
||||
> It also needs a file with the passphrase, see
|
||||
> [group_vars/all](group_vars/all).
|
||||
|
||||
```
|
||||
$ cd ansible/
|
||||
$ ansible-playbook -i hosts setup_server.yml
|
||||
```
|
||||
|
||||
|
||||
### Restore Database Playbook
|
||||
|
||||
This playbook restores a database from dump. The dump has to be named
|
||||
nyaa_psql.backup and needs to be placed in the toplevel project directory *on
|
||||
your local host*. The database will be copied to the remote host and then will
|
||||
be restored.
|
||||
|
||||
```
|
||||
$ ansible-playbook -i hosts restore_database.yml
|
||||
```
|
||||
|
||||
|
||||
### Create Elasticsearch Index Playbook
|
||||
|
||||
This playbook creates the elasticsearch index for our database from
|
||||
[ansible/roles/elasticsearch/files/elasticsearch_settings.yml](ansible/roles/elasticsearch/files/elasticsearch_settings.yml)
|
||||
|
||||
```
|
||||
$ ansible-playbook -i hosts create_elasticsearch_index.yml
|
||||
```
|
||||
|
||||
|
||||
### Populate Elasticsearch Index Playbook
|
||||
|
||||
This playbook uses a python script to populate the elasticsearch index from all
|
||||
the data inside the database.
|
||||
|
||||
> WARNING: Make sure the python script is in sync with the mapping defined in
|
||||
> the elasticsearch index configuration.
|
||||
|
||||
```
|
||||
$ ansible-playbook -i hosts populate_elasticsearch_index.yml
|
||||
```
|
||||
|
||||
## Playbook Testing
|
||||
|
||||
You can easily test these playbooks by using vagrant. Once you have vagrant
|
||||
installed:
|
||||
|
||||
```
|
||||
# Download centos/7 image
|
||||
$ vagrant init centos/7
|
||||
|
||||
# Create and boot the vm
|
||||
$ vagrant up
|
||||
$ vagrant ssh
|
||||
```
|
||||
|
||||
Now you have to setup your host to be able to connect to the vm using ssh. One
|
||||
way is to copy your public ssh key to the `~/.ssh/authorized_keys` file. Once
|
||||
that is done, your local host should be able to connect to the vm using ssh.
|
||||
|
||||
You can now tests the playbooks.
|
||||
|
||||
## TODOs
|
||||
- Delete .torrents after X days
|
||||
- Add public keys to db (?)
|
||||
- Show public keys and link to .torrents on the website
|
||||
- Tuning elasticsearch indexing / analyzer
|
||||
|
|
Référencer dans un nouveau ticket