# Deploying the oracle ## Prerequisites * nginx * the Rust toolchain * `bitcoind` running on the same machine optional: * tor ## Compile and install ```shell cargo build --release -p txood sudo cp target/release/txood /usr/local/bin/ ``` ## Setup with local webserver Ensure that `bitcoind` is running on the same machine and user (e.g. `bitcoind --daemon --testnet`). ### Configure web directory ```shell sudo mkdir /var/www/html/txoo sudo chown $USER /var/www/html/txoo ``` ### Optional - allow directory listing Apply the following configuration to nginx: ``` location /txoo { autoindex on; } ``` ### Running manually ```shell txood --network testnet ``` Note: if your `bitcoind` doesn't use cookie authentication, you can specify the RPC URL with `-r`, e.g. `-r http://user:pass@localhost:18332/`. You also have to change `txood-testnet.service` if you are using systemd. ### Sync the web directory manually ```shell ./contrib/sync-txoo-local ``` ## Configure clients The oracle public key can be obtained at `http://localhost/txoo/testnet/config`. ## Configure with `systemd` Instead of running manually as described above, you can use `systemd` to run `bitcoind` and `txood` as a service: ```shell sudo cp contrib/{bitcoind-testnet,txood-testnet}.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable txood-testnet sudo systemctl start txood-testnet sudo systemctl enable bitcoind-testnet sudo systemctl start bitcoind-testnet systemctl status txood-testnet bitcoind-testnet journalctl -u txood-testnet ``` Syncing the web directory can be done using a cron job with `contrib/sync-txoo-local`: ```shell crontab -e ``` ``` * * * * * cd /home/bitcoin/txoo && ./contrib/sync-txoo-local ``` ## Setup with Tor TBD