From Bitcoin Wiki
Revision as of 09:14, 2 April 2011 by Jpsoto (talk | contribs) (Example of an Apache HTTPD Configuration for Bitcoin JS Remote)
Jump to: navigation, search

A user interface for Bitcoin written in JavaScript.

For SSL support a small server side script is included.

This software is released under the MIT/X11 License.

External Links

Example of an Apache HTTPD Configuration for Bitcoin JS Remote

[I am assuming a little knowledge about Apache httpd. You had better read on Apache httpd directives: Of course, this is only an example of many other configurations]

Assuming your bitcoin.conf file includes:


First, generate a suitable file for Basic Authentification. See man htpasswd or execute

 htpasswd -b -c my_prefer_filename myuser mypass

Set following Apache directives in the proper context, i.e. server or virtual host configuration:

   AuthType Basic
   AuthName "Bitcoin Access"
   AuthUserFile my_prefer_filename
   Require user myuser
   Order deny,allow
   Allow from all

Assuming you want to access Bitcoin JS Remote with http://mydomain/jbc

 Alias /jbc pathabs_to_bitcoin-js-remote
 ProxyPass /lbc/
 # ProxyPassReverse is not required because bitcoind talks pure
 # JSON, i.e no HTTP Headers with URIs are generated by bitcoind
 # ProxyPassReverse /lbc/

Above ProxyPass directive is asuming you are set the RPC.url field to "/lbc/" into "settings.json" file, located in the bitcoin-js-remote directory. See the settings.json_sample file for proper syntax.

A variety of configurations are feasible:

 # If RPC.url is an absolute path (i.e. RPC.url : /lbc/),
 # bitcoind at shall be accessed by http://mydomain/jbc/
 ProxyPass /lbc/
 # If RPC.url is a relative path (i.e. RPC.url : lbc/),
 # bitcoind at shall be accessed by http://mydomain/jbc/lbc/
 ProxyPass lbc/
 # Apache can also proxy your access to any other IP by
 # accessing to http://mydomain/jbc
 ProxyPass /lbc/

User and Password will be required when accessing with http://mydomain/jbc. Alternatively, they can be set into your “settings.json” file

 RPC.user : myuser
 RPC.password : mypass

That's all. Restart your Apache web server.

Other interesting Apache directives:

To redirect all HTTP to HTTPS (of course, you need a well-configured ssl site). !!! SSL access is extremely recommended to protect your Bitcoin data.

 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

To avoid your log file from flooding

 SetEnvIf Request_URI "^/jbc/" dontlog
 SetEnvIf Request_URI "^/lbc/" dontlog
 CustomLog myfile.log combined env=!dontlog

Finally, if you go in trouble, check proper access to bitcoin daemon with curl:

 curl --trace-time --trace-ascii - \
      --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' \
      --header 'content-type: text/plain;'\