The main focus of this release, apart from a boatload of minor bug fixes, is the introduction of a deploy script which I have been working on for quite a bit of time. The idea is to have a generic script (focus on generic) which allows you to setup a new VPS instance and fully and properly configure it with the steem client running, alongside with the bts_tools to monitor them behind nginx/uwsgi, automatic client restarting in case of crash, etc.
At the moment, this supports Vultr and Gandi as VPS providers, and Debian Jessie and Ubuntu 16.04 as operating systems [1]. Eventually, I plan to support more providers and OSes, please see my bounties post for more info and if you want to contribute (and win some Steem!)
Show me how it works!
Here's a minimal config file you can use to deploy a seed node from scratch: [2]
hostname: &hostname seed01
domain: steemnodes.com
os: ubuntu # debian, ubuntu. more to come...
unix_hostname: *hostname
unix_user: xxxxxxxx
unix_password: xxxxxxxx
# if true, the graphene client will be built directly on the new node,
# otherwise it gets deployed from the host currently running the install
compile_on_new_host: True
# additional keys to be installed in .ssh/authorized_keys for both root and normal user
ssh_keys:
- ssh-rsa xxxxxxxx
- ssh-rsa xxxxxxxx
# access to witness restricted APIs, used to create api_access.json
witness_api_access:
user: &witness_user bts
password: &witness_password xxxxxxxx
# config.yaml variables
config_yaml:
make_args: ['-j4']
build_environments:
steem:
cmake_args: ['-DENABLE_CONTENT_PATCHING=OFF', '-DLOW_MEMORY_NODE=ON']
clients:
steem:
data_dir: ~/.Steem_seed
run_cli_args: ['--rpc-http-allowip', '127.0.0.1']
seed_nodes: ['seed.riversteem.com:2001', 'seed.steemed.net:2001', 'steem-seed1.abit-more.com:2001',
'steem-id.altexplorer.xyz:2001', 'anyx.co:2001']
witness_user: *witness_user
witness_password: *witness_password
roles:
-
role: seed
name: *hostname
vps:
# config for vultr provider
vultr:
api_key: xxxxxxxx
name: *hostname
location: london
vps_plan: 8G # can be: 1G, 2G, 4G, etc.
ssh_keys: [xxxxxxxx, xxxxxxxx] # need to have at least the ssh key from the host performing the installation
save this as deploy_config.yaml
, then run:
$ steem deploy_node deploy_config.yaml vultr
to create and install the new instance. If you already have created a VPS instance (because you want to host it somewhere else, for instance), then you can run:
$ steem deploy_node deploy_config.yaml 123.123.123.123
(replace 123.123.123.123 with the IP address of your node, make sure to have ssh access as root there)
Please note that it's still alpha/beta quality, so feedback is very welcome!
Changelog
Full changelog follows:
0.4.2 (2016-08-09)
- [all] pre-release of "bts deploy_node" command: complete setup of a
fresh VPS node, with bts/muse/steem client, nginx/uwsgi,
supervisor, etc.- [all] added view for seed nodes of BTS, MUSE and STEEM networks
- [all] added world map view of connected peers and seed nodes along with
country detection (requires geoip2 account)- [bts] added ARS (Argentine peso) market pegged asset
- [bts] reactivated GOLD and SILVER (Yahoo issue only temporary)
- [bts] removed Yunbi and CCEDK as feed providers for BTS/BTC
- [all] internal cleanups and refactoring, innumerable minor bug fixes
Footnotes
[1] Currently Ubuntu deploy on Gandi doesn't work due to some issue with the boost package version, probably some issue with the mirrors that I couldn't figure out yet, but as this already delayed the release by more than a few days I decided to fix it in a later release
[2] A full config file with all possible options can be found here: https://github.com/wackou/bts_tools/blob/master/bts_tools/deploy_config.yaml