Browse Source

supervisord implemented

master^2
deacix 8 years ago
parent
commit
bd94152cdd
  1. 3
      .gitignore
  2. 33
      docker/Dockerfile
  3. 36
      docker/Dockerfile~
  4. 6
      docker/docker-compose.yml
  5. 737
      docker/settings.json
  6. 19
      docker/supervisord.conf
  7. 3
      docker/twister.conf

3
.gitignore vendored

@ -1,2 +1,3 @@
/build-buffer /build-buffer
node_modules node_modules
.idea

33
docker/Dockerfile

@ -2,35 +2,44 @@
# Dockerfile for building Twister peer-to-peer micro-blogging # Dockerfile for building Twister peer-to-peer micro-blogging
# #
FROM ubuntu:14.04 FROM ubuntu:14.04
# Install twister-core WORKDIR /opt
USER root
RUN apt-get update RUN apt-get update
RUN apt-get install -y git autoconf libtool build-essential libboost-all-dev libssl-dev libdb++-dev libminiupnpc-dev && apt-get clean RUN apt-get install -y git autoconf libtool build-essential libboost-all-dev libssl-dev libdb++-dev libminiupnpc-dev \
supervisor nodejs nodejs-legacy npm && \
apt-get clean
RUN git clone https://github.com/miguelfreitas/twister-core.git RUN git clone https://github.com/miguelfreitas/twister-core.git
RUN cd twister-core && \ RUN cd twister-core && \
./bootstrap.sh && \ ./bootstrap.sh && \
make make
RUN mkdir ~/.twister
RUN echo -e "rpcuser=user\nrpcpassword=pwd\nhtmldir=~/twister-react" > ~/.twister/twister.conf
RUN chmod 600 ~/.twister/twister.conf
RUN git clone https://github.com/Tschaul/twister-react.git RUN git clone https://github.com/Tschaul/twister-react.git
RUN git clone https://github.com/Tschaul/twister-lib-js.git RUN git clone https://github.com/Tschaul/twister-lib-js.git
RUN git clone https://github.com/digital-dreamer/twister-proxy.git RUN git clone https://github.com/digital-dreamer/twister-proxy.git
RUN apt-get install -y nodejs nodejs-legacy npm
RUN npm install -g browserify react-tools RUN npm install -g browserify react-tools
RUN cd twister-lib-js \ npm install RUN cd twister-lib-js \ npm install
RUN cd twister-react \ npm install \ npm run pull-lib-and-build RUN cd twister-proxy && npm install
RUN cd twister-proxy \ npm install RUN mv twister-react/index.html twister-react/home.html
COPY settings.json twister-proxy/ COPY settings.json twister-proxy/
CMD cd twister-core \ ./twisterd & \ cd ../twister-proxy \ node twister-proxy.js & RUN mkdir -p /root/.twister
COPY twister.conf /root/.twister/twister.conf
RUN chmod 600 /root/.twister/twister.conf
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
VOLUME ["/root/.twister"]
CMD ["/usr/bin/supervisord"]
ENTRYPOINT []
EXPOSE 80

36
docker/Dockerfile~

@ -1,36 +0,0 @@
#
# Dockerfile for building Twister peer-to-peer micro-blogging
#
FROM ubuntu:14.04
# Install twister-core
RUN apt-get update
RUN apt-get install -y git autoconf libtool build-essential libboost-all-dev libssl-dev libdb++-dev libminiupnpc-dev && apt-get clean
RUN git clone https://github.com/miguelfreitas/twister-core.git
RUN cd twister-core && \
./bootstrap.sh && \
make
RUN mkdir ~/.twister
RUN echo -e "rpcuser=user\nrpcpassword=pwd\nhtmldir=~/twister-react" > ~/.twister/twister.conf
RUN chmod 600 ~/.twister/twister.conf
RUN git clone https://github.com/Tschaul/twister-react.git
RUN git clone https://github.com/Tschaul/twister-lib-js.git
RUN git clone https://github.com/digital-dreamer/twister-proxy.git
RUN apt-get install -y nodejs nodejs-legacy npm
RUN npm install -g browserify react-tools
RUN cd twister-lib-js \ npm install
RUN cd twister-react \ npm install \ npm run pull-lib-and-build
RUN cd twister-proxy \ npm install
COPY settings.json twister-proxy/

6
docker/docker-compose.yml

@ -0,0 +1,6 @@
version: "2"
services:
twister:
build: .
ports:
- 80

737
docker/settings.json

@ -1,377 +1,368 @@
{ {
"Server": "Server": {
{ "ssl_key_file": "insert/path/to/your/server-key-file",
"ssl_key_file": "/etc/letsencrypt/live/example.com/privkey.pem", "ssl_certificate_file": "insert/path/to/your/ssl-certificate",
"ssl_certificate_file": "/etc/letsencrypt/live/example.com/cert.pem", "enable_https": false,
"ssl_chain_file": "/etc/letsencrypt/live/example.com/chain.pem",
"ssl_fullchain_file": "/etc/letsencrypt/live/example.com/fullchain.pem",
"enable_https": true,
"https_port": 443,
"http_port": 0
},
"RPC":
{
"host": "localhost",
"port": 28332,
"user": "user",
"password": "pwd"
},
"CallLimits": "https_port": 443,
[ "http_port": 80
{ },
"name": "getbestblockhash", "RPC": {
"maxPerMinute": null, "host": "localhost",
"maxPerMinutePerIP": null "port": 28332,
}, "user": "user",
{ "password": "pwd"
"name": "getinfo", },
"maxPerMinute": 999, "CallLimits": [
"maxPerMinutePerIP": 999 {
}, "name": "getbestblockhash",
{ "maxPerMinute": null,
"name": "listwalletusers", "maxPerMinutePerIP": null
"maxPerMinute": null, },
"maxPerMinutePerIP": null {
}, "name": "getinfo",
{ "maxPerMinute": 999,
"name": "getblock", "maxPerMinutePerIP": 999
"maxPerMinute": null, },
"maxPerMinutePerIP": null {
}, "name": "listwalletusers",
{ "maxPerMinute": null,
"name": "dhtget", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "getblock",
{ "maxPerMinute": null,
"name": "listusernamespartial", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "dhtget",
{ "maxPerMinute": 99999,
"name": "gettrendinghashtags", "maxPerMinutePerIP": 99999
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "listusernamespartial",
{ "maxPerMinute": 99999,
"name": "stop", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "gettrendinghashtags",
{ "maxPerMinute": 99999,
"name": "getblockcount", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "stop",
{ "maxPerMinute": 0,
"name": "getconnectioncount", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getblockcount",
{ "maxPerMinute": 0,
"name": "getpeerinfo", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getconnectioncount",
{ "maxPerMinute": 0,
"name": "addnode", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getpeerinfo",
{ "maxPerMinute": 0,
"name": "adddnsseed", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "addnode",
{ "maxPerMinute": 0,
"name": "getaddednodeinfo", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "adddnsseed",
{ "maxPerMinute": 0,
"name": "getdifficulty", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getaddednodeinfo",
{ "maxPerMinute": 0,
"name": "getgenerate", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getdifficulty",
{ "maxPerMinute": 0,
"name": "setgenerate", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getgenerate",
{ "maxPerMinute": 0,
"name": "gethashespersec", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "setgenerate",
{ "maxPerMinute": 0,
"name": "getmininginfo", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "gethashespersec",
{ "maxPerMinute": 0,
"name": "createwalletuser", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getmininginfo",
{ "maxPerMinute": 0,
"name": "backupwallet", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "createwalletuser",
{ "maxPerMinute": 0,
"name": "walletpassphrase", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "backupwallet",
{ "maxPerMinute": 0,
"name": "walletpassphrasechange", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "walletpassphrase",
{ "maxPerMinute": 0,
"name": "walletlock", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "walletpassphrasechange",
{ "maxPerMinute": 0,
"name": "encryptwallet", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "walletlock",
{ "maxPerMinute": 0,
"name": "getrawmempool", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "encryptwallet",
{ "maxPerMinute": 0,
"name": "getblockhash", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getrawmempool",
{ "maxPerMinute": 0,
"name": "gettransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getblockhash",
{ "maxPerMinute": 0,
"name": "listtransactions", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "gettransaction",
{ "maxPerMinute": 0,
"name": "signmessage", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "listtransactions",
{ "maxPerMinute": 0,
"name": "verifymessage", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "signmessage",
{ "maxPerMinute": 0,
"name": "getwork", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "verifymessage",
{ "maxPerMinute": 0,
"name": "getblocktemplate", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getwork",
{ "maxPerMinute": 0,
"name": "submitblock", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getblocktemplate",
{ "maxPerMinute": 0,
"name": "listsinceblock", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "submitblock",
{ "maxPerMinute": 0,
"name": "dumpprivkey", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "listsinceblock",
{ "maxPerMinute": 0,
"name": "dumppubkey", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "dumpprivkey",
{ "maxPerMinute": 0,
"name": "testvector", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "dumppubkey",
{ "maxPerMinute": 99999,
"name": "dumpwallet", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "testvector",
{ "maxPerMinute": 0,
"name": "importprivkey", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "dumpwallet",
{ "maxPerMinute": 0,
"name": "importwallet", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "importprivkey",
{ "maxPerMinute": 0,
"name": "getrawtransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "importwallet",
{ "maxPerMinute": 0,
"name": "createrawtransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getrawtransaction",
{ "maxPerMinute": 0,
"name": "decoderawtransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "createrawtransaction",
{ "maxPerMinute": 0,
"name": "sendrawtransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "decoderawtransaction",
{ "maxPerMinute": 0,
"name": "sendnewusertransaction", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "sendrawtransaction",
{ "maxPerMinute": 0,
"name": "verifychain", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "sendnewusertransaction",
{ "maxPerMinute": 0,
"name": "getlastsoftcheckpoint", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "verifychain",
{ "maxPerMinute": 0,
"name": "dhtput", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getlastsoftcheckpoint",
{ "maxPerMinute": 0,
"name": "dhtputraw", "maxPerMinutePerIP": null
"maxPerMinute": 999, },
"maxPerMinutePerIP": 999 {
}, "name": "dhtput",
{ "maxPerMinute": 0,
"name": "newpostmsg", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "dhtputraw",
{ "maxPerMinute": 999,
"name": "newpostraw", "maxPerMinutePerIP": 999
"maxPerMinute": 999, },
"maxPerMinutePerIP": 999 {
}, "name": "newpostmsg",
{ "maxPerMinute": 0,
"name": "newdirectmsg", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "newpostraw",
{ "maxPerMinute": 999,
"name": "newrtmsg", "maxPerMinutePerIP": 999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "newdirectmsg",
{ "maxPerMinute": 0,
"name": "getposts", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "newrtmsg",
{ "maxPerMinute": 0,
"name": "getdirectmsgs", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getposts",
{ "maxPerMinute": 99999,
"name": "getmentions", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getdirectmsgs",
{ "maxPerMinute": 0,
"name": "setspammsg", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getmentions",
{ "maxPerMinute": 0,
"name": "getspammsg", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "setspammsg",
{ "maxPerMinute": 0,
"name": "follow", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "getspammsg",
{ "maxPerMinute": 0,
"name": "unfollow", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "follow",
{ "maxPerMinute": 99999,
"name": "getfollowing", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "unfollow",
{ "maxPerMinute": 0,
"name": "getlasthave", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "getfollowing",
{ "maxPerMinute": 0,
"name": "getnumpieces", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getlasthave",
{ "maxPerMinute": 99999,
"name": "rescandirectmsgs", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getnumpieces",
{ "maxPerMinute": 0,
"name": "recheckusertorrent", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "rescandirectmsgs",
{ "maxPerMinute": 0,
"name": "getspamposts", "maxPerMinutePerIP": null
"maxPerMinute": 99999, },
"maxPerMinutePerIP": 99999 {
}, "name": "recheckusertorrent",
{ "maxPerMinute": 0,
"name": "torrentstatus", "maxPerMinutePerIP": null
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
}, "name": "getspamposts",
{ "maxPerMinute": 99999,
"name": "search", "maxPerMinutePerIP": 99999
"maxPerMinute": 0, },
"maxPerMinutePerIP": null {
} "name": "torrentstatus",
], "maxPerMinute": 0,
"maxPerMinutePerIP": null
"LogAsAttackThreshold": },
{ {
"callsOverLimits": 30, "name": "search",
"invalidRequests": 30, "maxPerMinute": 0,
"forbiddenCalls": 30 "maxPerMinutePerIP": null
} }
],
"LogAsAttackThreshold": {
"callsOverLimits": 30,
"invalidRequests": 30,
"forbiddenCalls": 30
}
} }

19
docker/supervisord.conf

@ -0,0 +1,19 @@
[supervisord]
nodaemon=true
[program:twisterd]
command=/opt/twister-core/twisterd
user=root
redirect_stderr=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
priority=1
[program:twister-proxy]
command=node twister-proxy.js
user=root
directory=/opt/twister-proxy
redirect_stderr=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
priority=2

3
docker/twister.conf

@ -0,0 +1,3 @@
rpcuser=user
rpcpassword=pwd
htmldir=/opt/twister-react
Loading…
Cancel
Save