RPC proxy for running a public server for the Twister P2P microblogging platform.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
digital dreamer ad429f6c63 Handle the Listen EAccess error 8 years ago
.gitignore Initial commit 10 years ago
LICENSE Initial commit 10 years ago
README.md fix ports < 1024 9 years ago
package.json Raise minor version number 9 years ago
settings.json List all RPC functions in settings 9 years ago
twister-proxy.js Handle the Listen EAccess error 8 years ago

README.md

twister-proxy

Version 0.1.1

This is an RPC proxy for running a public server for the Twister P2P microblogging network. Public servers allow anyone to easily read news posted on Twister from the web. If a user wants to become active on the network, he/she is directed to instructions on how to install the app. Twister proxy needs twister-core to be able to access the network.

Twister is in alpha phase, it's still under construction. It is already being used, but it may be unstable, and difficult to compile. This is the project website http://twister.net.co/

Twister is open source, the source code is available here: https://github.com/miguelfreitas/twister-core

Running a public server

1 - install Twister

instructions can be found here: http://twister.net.co/?page_id=23

2 - install node.js

it's available for all major platforms from here: http://nodejs.org/

3 - install twister-proxy

clone it from the repository

git clone https://github.com/digital-dreamer/twister-proxy.git

install it

cd twister-proxy

npm install

4 - run twisterd

go to your twister-core folder and run twisterd with the following options:

./twisterd -daemon -rpcallowip=127.0.0.1 -public_server_mode=1

This will run twister server in background, allow RPC calls, but only from the same computer, and put it in "public server mode", which is designed for this purpose.

5 - run twister-proxy

go to the twister-proxy folder and run

node twister-proxy.js &

(If you use ports lower that 1024 you need to use sudo - sudo node twister-proxy.js &) this will launch a public server on default http port 80. If you need to change any settings, you can edit the settings.json file.

If you type your server's URL into a web browser, you should see the twister web application. It is now functional, but if you care about privacy for your users, I highly recommend taking one more step and enabling SSL.

Enable SSL

1 - upgrade OpenSSL to the latest version to protect your server from Heartbleed

Visit http://heartbleed.com/ if you want to know more about this issue.

2 - generate a key and certificate request

openssl genrsa -des3 -out server-key.pem 2048

openssl req -new -key server-key.pem -out request.csr

Keep the generated server-key.pem safe.

If you want to know more about keys: https://www.openssl.org/docs/HOWTO/keys.txt

3 - request a certificate

You now give the request.csr file to a Certification Authority (CA) - a company that will generate a certificate and give it back to you.

This guide shows where to get a certificate cheap or for free:

http://webdesign.about.com/od/ssl/tp/cheapest-ssl-certificates.htm

4 - enable SSL in twister-proxy

Edit the settings.json file

  • In "ssl_key_file", specify a path to the server-key.pem file that you generated.
  • In "ssl_certificate_file", specify a path to the file that you received from your Certificate Authority.
  • Change "enable_https" from false to true.

That's it. If you now run twister-proxy, it will use secure https connections.

Production

1 - To keep a log, redirect twister proxy output to a file

Example:

node twister-proxy.js > output.log &

2 - You can use the "forever" module to keep the proxy server running

A guide can be found here:

https://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever/

Troubleshooting

Cannot connect to twisterd

Twister must be running and accepting RPC calls, run it with these parameters:

./twisterd -daemon -rpcallowip=127.0.0.1 -public_server_mode=1

If you changed the RPC port, username or password in twister.conf, you need to change it in settings.json too.

Configuration file settings.json couldn't be parsed

You probably damaged settings.json when editing it. If you can spot what went wrong, you can correct it, if not, download the default settings.json and redo your customization.

If you get stuck, and need some help setting up a public Twister server, you can ask in the issue section, even if it is not an actual issue with the code.