Julian Steinwachs
8 years ago
committed by
GitHub
7 changed files with 415 additions and 422 deletions
@ -1,2 +1,3 @@ |
|||||||
/build-buffer |
/build-buffer |
||||||
node_modules |
node_modules |
||||||
|
.idea |
||||||
|
@ -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/ |
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@ |
|||||||
|
version: "2" |
||||||
|
services: |
||||||
|
twister: |
||||||
|
build: . |
||||||
|
ports: |
||||||
|
- 80 |
@ -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 |
||||||
|
} |
||||||
} |
} |
@ -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 |
Loading…
Reference in new issue