From 3d49a00edb79b737a751311ec4343493fd9bb31e Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 19 Jan 2022 16:20:12 +0530 Subject: [PATCH 01/38] Added Virtual Environment to flo-token-tracking and flo-api --- .gitignore | 3 +++ .idea/.gitignore | 3 +++ Dockerfile | 5 +++++ 3 files changed, 11 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b358f20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +*.iml +*.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Dockerfile b/Dockerfile index 15e1c4f..77faeb3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,7 @@ WORKDIR ../ # Setup of Flo Token Tracker RUN git clone https://github.com/vivekteega/ftt-docker +RUN apt install python3.8-venv WORKDIR ftt-docker #RUN python3.9 -m venv ftt #RUN . ftt/bin/activate @@ -35,6 +36,8 @@ RUN python3 -m pip install chardet RUN python3 -m pip install arrow RUN python3 -m pip install socketio RUN python3 -m pip install requests +RUN python3 -m venv env +RUN source env/bin/activate RUN sed -i "s|chardet==4.0.0|chardet|g" /ftt-docker/requirements.txt RUN touch config.ini RUN echo "[DEFAULT] \n\ @@ -52,6 +55,8 @@ RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \n\ RUN git clone https://github.com/ranchimall/ranchimallflo-api WORKDIR ranchimallflo-api RUN python3 -m pip install --upgrade pip setuptools wheel +RUN python3 -m venv env +RUN source env/bin/activate RUN python3 -m pip install -r requirements.txt RUN pip3 install apscheduler RUN touch config.py From ed76a1e585f477f9eb9b2d7b94ee1f2d03d67c34 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 25 Jan 2022 23:15:39 +0530 Subject: [PATCH 02/38] added some newlines, will update this commit later --- Dockerfile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 77faeb3..90da2bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,8 @@ RUN apt-get -y install git RUN apt-get -y install python-chardet python3.9 python3.9-venv RUN apt-get -y install libsecp256k1-dev libssl-dev build-essential automake pkg-config libtool libffi-dev libgmp-dev libyaml-cpp-dev RUN apt-get install supervisor - +RUN echo_supervisord_conf +RUN echo_supervisord_conf > /etc/supervisord.conf # Installation of Pybtc, currently named as Pyflo WORKDIR ../ @@ -28,7 +29,7 @@ WORKDIR ../ # Setup of Flo Token Tracker RUN git clone https://github.com/vivekteega/ftt-docker -RUN apt install python3.8-venv +RUN apt install python3.8-venv WORKDIR ftt-docker #RUN python3.9 -m venv ftt #RUN . ftt/bin/activate @@ -73,6 +74,13 @@ RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \n\ # Supervisor configurations ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ +RUN touch supervisord.conf +RUN echo "[supervisord] \n\ + nodaemon=true\n\ + [program:sshd]\n\ + command=/usr/sbin/sshd -D\n\ + [program:apache2]\n\ + command=/bin/bash -c 'source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND' ">> supervisord.conf RUN touch ranchimallflo-api.conf RUN echo "[program:ranchimallflo-api]\n\ directory=/ranchimallflo-api\n\ From 56d03a87500a67baf5f13c69582fe117af39af45 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 25 Jan 2022 23:32:08 +0530 Subject: [PATCH 03/38] Removed line 6 and added some more lines Docker container is finally not closing on its own and is running properly --- Dockerfile | 49 +++++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index 90da2bb..36f27a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,11 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive -SHELL ["/bin/bash", "-c"] LABEL ranchimall="ranchimallfze@gmail.com" -CMD { "echo", "Ranchi Mall" } +# CMD { "echo", "Ranchi Mall" } -## for apt to be noninteractive +# for apt to be noninteractive ENV DEBIAN_FRONTEND noninteractive ENV DEBCONF_NONINTERACTIVE_SEEN true @@ -38,7 +37,6 @@ RUN python3 -m pip install arrow RUN python3 -m pip install socketio RUN python3 -m pip install requests RUN python3 -m venv env -RUN source env/bin/activate RUN sed -i "s|chardet==4.0.0|chardet|g" /ftt-docker/requirements.txt RUN touch config.ini RUN echo "[DEFAULT] \n\ @@ -57,7 +55,6 @@ RUN git clone https://github.com/ranchimall/ranchimallflo-api WORKDIR ranchimallflo-api RUN python3 -m pip install --upgrade pip setuptools wheel RUN python3 -m venv env -RUN source env/bin/activate RUN python3 -m pip install -r requirements.txt RUN pip3 install apscheduler RUN touch config.py @@ -72,33 +69,13 @@ RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \n\ # Supervisor configurations +## Flo token tracking configuration ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ -RUN touch supervisord.conf +RUN touch ftt-ranchimallflo.conf RUN echo "[supervisord] \n\ nodaemon=true\n\ - [program:sshd]\n\ - command=/usr/sbin/sshd -D\n\ - [program:apache2]\n\ - command=/bin/bash -c 'source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND' ">> supervisord.conf -RUN touch ranchimallflo-api.conf -RUN echo "[program:ranchimallflo-api]\n\ - directory=/ranchimallflo-api\n\ - command=/ranchimallflo-api/py3.7/bin/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\n\ - user=root\n\ - autostart=true\n\ - autorestart=true\n\ - stopasgroup=true\n\ - killasgroup=true\n\ - stderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \n\ - stdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ranchimallflo-api.conf -RUN mkdir /var/log/ranchimallflo-api/ -RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log -RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log - -## Flo token tracking configuration -RUN touch ftt.conf -RUN echo "[program:ftt-docker]\n\ + [program:ftt-docker]\n\ directory=ftt-docker\n\ command=tracktokens-smartcontracts.py\n\ user=root\n\ @@ -107,10 +84,22 @@ RUN echo "[program:ftt-docker]\n\ stopasgroup=true\n\ killasgroup=true\n\ stderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\n\ - stdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log" >> ftt.conf + stdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n\ + [program:ranchimallflo-api]\n\ + directory=/ranchimallflo-api\n\ + command=/ranchimallflo-api/env/bin/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\n\ + user=root\n\ + autostart=true\n\ + autorestart=true\n\ + stopasgroup=true\n\ + killasgroup=true\n\ + stderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \n\ + stdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log +RUN mkdir /var/log/ranchimallflo-api/ +RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log +RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -# Run supervisor RUN service supervisor restart \ No newline at end of file From e16381ec732058304e4658222ef32f43836c6358 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Fri, 28 Jan 2022 17:34:40 +0530 Subject: [PATCH 04/38] Added Mongoose binary file into floscout --- Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Dockerfile b/Dockerfile index 36f27a3..15fd0ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,7 +66,19 @@ RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \n\ # Setup of Floscout +RUN git clone https://github.com/ranchimall/floscout.git +WORKDIR floscout +RUN git clone https://github.com/Dbhardwaj99/mongoose-server-files.git +WORKDIR mongoose-server-files +RUN mv example ~/floscout +WORKDIR ../ +WORKDIR ../ +# setup of mongoose server +# RUN git clone https://github.com/cesanta/mongoose.git +# WORKDIR mongoose +# RUN sudo simplest_web_server.c +# WORKDIR ../ # Supervisor configurations ## Flo token tracking configuration From 7be6a7eab076f1c5db10103e3248c77bef074675 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Fri, 28 Jan 2022 23:54:38 +0530 Subject: [PATCH 05/38] Exposing port --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 15fd0ea..14c8a45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive +EXPOSE 6200 LABEL ranchimall="ranchimallfze@gmail.com" From 6caa6044d0cf96f9647ce7011a65948a385b0c5f Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:38:29 +0530 Subject: [PATCH 06/38] Updates FLO-api ports --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 14c8a45..058b448 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive EXPOSE 6200 +EXPOSE 5009 LABEL ranchimall="ranchimallfze@gmail.com" @@ -27,12 +28,11 @@ RUN apt-get install -y pkg-config RUN python3 setup.py install WORKDIR ../ + # Setup of Flo Token Tracker RUN git clone https://github.com/vivekteega/ftt-docker RUN apt install python3.8-venv WORKDIR ftt-docker -#RUN python3.9 -m venv ftt -#RUN . ftt/bin/activate RUN python3 -m pip install chardet RUN python3 -m pip install arrow RUN python3 -m pip install socketio @@ -52,6 +52,7 @@ RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \n\ # Setup of RanchimallFlo API +WORKDIR ../ RUN git clone https://github.com/ranchimall/ranchimallflo-api WORKDIR ranchimallflo-api RUN python3 -m pip install --upgrade pip setuptools wheel @@ -67,6 +68,7 @@ RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \n\ # Setup of Floscout +WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout RUN git clone https://github.com/Dbhardwaj99/mongoose-server-files.git From 57c2ecb88cbb4b1420b19279d293666510ab09db Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Fri, 18 Feb 2022 22:33:50 +0530 Subject: [PATCH 07/38] removed indentation and added some newer version --- Dockerfile | 56 ++++++++++++++++++------------------------------------ run.sh | 4 ++++ 2 files changed, 23 insertions(+), 37 deletions(-) create mode 100644 run.sh diff --git a/Dockerfile b/Dockerfile index 058b448..85fd83c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ RUN apt-get -y install python3-pip RUN apt-get -y install git RUN apt-get -y install python-chardet python3.9 python3.9-venv RUN apt-get -y install libsecp256k1-dev libssl-dev build-essential automake pkg-config libtool libffi-dev libgmp-dev libyaml-cpp-dev -RUN apt-get install supervisor +RUN python3 -m pip install supervisor RUN echo_supervisord_conf RUN echo_supervisord_conf > /etc/supervisord.conf @@ -35,20 +35,16 @@ RUN apt install python3.8-venv WORKDIR ftt-docker RUN python3 -m pip install chardet RUN python3 -m pip install arrow +RUN python3 -m pip install sqlalchemy RUN python3 -m pip install socketio RUN python3 -m pip install requests RUN python3 -m venv env RUN sed -i "s|chardet==4.0.0|chardet|g" /ftt-docker/requirements.txt RUN touch config.ini -RUN echo "[DEFAULT] \n\ - NET = testnet \n\ - FLO_CLI_PATH = /usr/local/bin/flo-cli \n\ - START_BLOCK = 740400" >> /ftt-docker/config.ini +RUN echo "[DEFAULT] \nNET = testnet \nFLO_CLI_PATH = /usr/local/bin/flo-cli \nSTART_BLOCK = 740400" >> /ftt-docker/config.ini RUN touch config.py -RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \n\ - sseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \n\ - privKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /ftt-docker/config.py +RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /ftt-docker/config.py # Setup of RanchimallFlo API @@ -60,11 +56,7 @@ RUN python3 -m venv env RUN python3 -m pip install -r requirements.txt RUN pip3 install apscheduler RUN touch config.py -RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \n\ - sse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \n\ - apiUrl = 'https://flosight.duckdns.org/api/' \n\ - apilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \n\ - FLO_DATA_DIR = '/home/production/.flo' " >> /config.py +RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \nsse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \napiUrl = 'https://flosight.duckdns.org/api/' \napilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \nFLO_DATA_DIR = '/home/production/.flo' " >> /ranchimallflo-api/config.py # Setup of Floscout @@ -80,7 +72,7 @@ WORKDIR ../ # setup of mongoose server # RUN git clone https://github.com/cesanta/mongoose.git # WORKDIR mongoose -# RUN sudo simplest_web_server.c +# RUN simplest_web_server.c # WORKDIR ../ # Supervisor configurations @@ -88,28 +80,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \n\ - nodaemon=true\n\ - [program:ftt-docker]\n\ - directory=ftt-docker\n\ - command=tracktokens-smartcontracts.py\n\ - user=root\n\ - autostart=true\n\ - autorestart=true\n\ - stopasgroup=true\n\ - killasgroup=true\n\ - stderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\n\ - stdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n\ - [program:ranchimallflo-api]\n\ - directory=/ranchimallflo-api\n\ - command=/ranchimallflo-api/env/bin/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\n\ - user=root\n\ - autostart=true\n\ - autorestart=true\n\ - stopasgroup=true\n\ - killasgroup=true\n\ - stderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \n\ - stdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:ftt-docker]\ndirectory=ftt-docker\ncommand=python3 tracktokens-smartcontracts.py\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=/ranchimallflo-api/env/bin/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log @@ -117,4 +88,15 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -RUN service supervisor restart \ No newline at end of file +# RUN service supervisor restart + +WORKDIR ../ +WORKDIR ../ +WORKDIR ../ +RUN touch run.sh +RUN echo "#!/bin/bash\nexec python3 ftt-docker/tracktokens-smartcontracts.py" >> run.sh +RUN chmod a+x run.sh +# CMD ["./run.sh"] +WORKDIR ranchimallflo-api +# RUN hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app +# RUN python3 tracktokens-smartcontracts.py \ No newline at end of file diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..40c0213 --- /dev/null +++ b/run.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +exec python3 /ftt-docker/tracktokens-smartcontracts.py & +exec python3 /ranchimallflo-api/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app \ No newline at end of file From cd1eb7dfd34ae5565d5be8fe6ef665f9e303805e Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Thu, 3 Mar 2022 12:47:36 +0530 Subject: [PATCH 08/38] Added supervisor configs again --- Dockerfile | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85fd83c..e3e840e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,21 +30,21 @@ WORKDIR ../ # Setup of Flo Token Tracker -RUN git clone https://github.com/vivekteega/ftt-docker +RUN git clone --branch token-swap https://github.com/ranchimall/flo-token-tracking.git RUN apt install python3.8-venv -WORKDIR ftt-docker +WORKDIR flo-token-tracking RUN python3 -m pip install chardet RUN python3 -m pip install arrow RUN python3 -m pip install sqlalchemy RUN python3 -m pip install socketio RUN python3 -m pip install requests RUN python3 -m venv env -RUN sed -i "s|chardet==4.0.0|chardet|g" /ftt-docker/requirements.txt +RUN sed -i "s|chardet==4.0.0|chardet|g" /flo-token-tracking/requirements.txt RUN touch config.ini -RUN echo "[DEFAULT] \nNET = testnet \nFLO_CLI_PATH = /usr/local/bin/flo-cli \nSTART_BLOCK = 740400" >> /ftt-docker/config.ini +RUN echo "[DEFAULT] \nNET = testnet \nFLO_CLI_PATH = /usr/local/bin/flo-cli \nSTART_BLOCK = 740400" >> /flo-token-tracking/config.ini RUN touch config.py -RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /ftt-docker/config.py +RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /flo-token-tracking/config.py # Setup of RanchimallFlo API @@ -88,15 +88,4 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -# RUN service supervisor restart - -WORKDIR ../ -WORKDIR ../ -WORKDIR ../ -RUN touch run.sh -RUN echo "#!/bin/bash\nexec python3 ftt-docker/tracktokens-smartcontracts.py" >> run.sh -RUN chmod a+x run.sh -# CMD ["./run.sh"] -WORKDIR ranchimallflo-api -# RUN hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app -# RUN python3 tracktokens-smartcontracts.py \ No newline at end of file +RUN service supervisor restart \ No newline at end of file From 818841d1ae86332e9bdf669c630d333e47e24b17 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Thu, 3 Mar 2022 15:01:18 +0530 Subject: [PATCH 09/38] minor fixes --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e3e840e..f8e1c56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,7 +80,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:ftt-docker]\ndirectory=ftt-docker\ncommand=python3 tracktokens-smartcontracts.py\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=/ranchimallflo-api/env/bin/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:ftt-docker]\ndirectory=ftt-docker\ncommand=python3 tracktokens-smartcontracts.py\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=/ranchimallflo-api/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log @@ -88,4 +88,4 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -RUN service supervisor restart \ No newline at end of file +RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file From 77f33f9cc3c268608f7b4d0eb2e157fab284776c Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Fri, 4 Mar 2022 20:00:33 +0530 Subject: [PATCH 10/38] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f8e1c56..3aca551 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,4 +88,4 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file +#RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf From aca75649d8af628190a9dd86163c08aa56dbc910 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sun, 6 Mar 2022 14:18:53 +0530 Subject: [PATCH 11/38] updated config.ini in the ftt-docker program --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index f8e1c56..4dca12a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,7 +41,7 @@ RUN python3 -m pip install requests RUN python3 -m venv env RUN sed -i "s|chardet==4.0.0|chardet|g" /flo-token-tracking/requirements.txt RUN touch config.ini -RUN echo "[DEFAULT] \nNET = testnet \nFLO_CLI_PATH = /usr/local/bin/flo-cli \nSTART_BLOCK = 740400" >> /flo-token-tracking/config.ini +RUN echo "[DEFAULT]\nNET = testnet\nFLO_CLI_PATH = /usr/local/bin/flo-cli\nSTART_BLOCK = 740400\nFLOSIGHT_NETURL = http://0.0.0.0:9000/\nTESTNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9000/, https://testnet-flosight.duckdns.org/\nMAINNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9495/, https://flosight.duckdns.org/\nTOKENAPI_SSE_URL = https://ranchimallflo-testnet.duckdns.org\nIGNORE_BLOCK_LIST = 902446\nIGNORE_TRANSACTION_LIST = b4ac4ddb51188b28b39bcb3aa31357d5bfe562c21e8aaf8dde0ec560fc893174" >> /flo-token-tracking/config.ini RUN touch config.py RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /flo-token-tracking/config.py @@ -80,7 +80,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:ftt-docker]\ndirectory=ftt-docker\ncommand=python3 tracktokens-smartcontracts.py\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=/ranchimallflo-api/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log @@ -88,4 +88,4 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log -RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file +# RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file From d6547f9afa3a51796669ece5d49d188e6b9f80e5 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sun, 6 Mar 2022 14:19:51 +0530 Subject: [PATCH 12/38] Create .name --- .idea/.name | 1 + 1 file changed, 1 insertion(+) create mode 100644 .idea/.name diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..1d1fe94 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Dockerfile \ No newline at end of file From a25bc6859206743eab7f83cd33f17dffda44ad2c Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 8 Mar 2022 00:23:02 +0530 Subject: [PATCH 13/38] minor changes --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ebb87ec..a8713c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,7 +56,7 @@ RUN python3 -m venv env RUN python3 -m pip install -r requirements.txt RUN pip3 install apscheduler RUN touch config.py -RUN echo "dbfolder = '/home/production/dev/shivam/ranchimallflo-api' \nsse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \napiUrl = 'https://flosight.duckdns.org/api/' \napilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \nFLO_DATA_DIR = '/home/production/.flo' " >> /ranchimallflo-api/config.py +RUN echo "dbfolder = '/home/production/dev/ranchimallflo-api' \nsse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \napiUrl = 'https://flosight.duckdns.org/api/' \napilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \nFLO_DATA_DIR = '/home/production/.flo' " >> /ranchimallflo-api/config.py # Setup of Floscout From 28b8605b8155e053fa651aef358e9a828c9ac1fd Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sun, 1 May 2022 20:20:43 +0530 Subject: [PATCH 14/38] added volumes and scripts to automate it --- Dockerfile | 13 ++++++++----- README.md | 17 +++++++++++++++-- run.sh | 5 +++-- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index a8713c0..d84d555 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,11 +69,11 @@ RUN mv example ~/floscout WORKDIR ../ WORKDIR ../ -# setup of mongoose server -# RUN git clone https://github.com/cesanta/mongoose.git -# WORKDIR mongoose -# RUN simplest_web_server.c -# WORKDIR ../ + setup of mongoose server + RUN git clone https://github.com/cesanta/mongoose.git + WORKDIR mongoose + RUN simplest_web_server.c + WORKDIR ../ # Supervisor configurations ## Flo token tracking configuration @@ -88,4 +88,7 @@ RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log +COPY run.sh . +RUN chmod +x run.sh +CMD ["/etc/supervisor/conf.d/run.sh"] # RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf diff --git a/README.md b/README.md index e07084c..dddb9b4 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,21 @@ RanchiMall wants to made things easy for you by packing all the three systems to ## How do I use this? -Clone the repository and then run +Clone the repository and then crete a docker volume + +``` +docker volume inspect ranchimall-flo-volume +``` + +Build the docker image by the following command ``` sudo docker build . -``` \ No newline at end of file +``` + +Run the docker container with exposing all the port and mounting the volume + +``` +docker run -d -p 5009:5009 6200:6200 -v ranchimall-flo-volume 147fcf811419 +``` + diff --git a/run.sh b/run.sh index 40c0213..1d4485d 100644 --- a/run.sh +++ b/run.sh @@ -1,4 +1,5 @@ #!/bin/bash +cd /etc/supervisor/conf.d/ -exec python3 /ftt-docker/tracktokens-smartcontracts.py & -exec python3 /ranchimallflo-api/hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app \ No newline at end of file +echo "running..." +supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file From 4df8df21146af08ee0fd6916207bbb6eaf06b239 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sun, 1 May 2022 20:29:34 +0530 Subject: [PATCH 15/38] fixed the indentation error --- Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index d84d555..d23a6c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,11 +69,11 @@ RUN mv example ~/floscout WORKDIR ../ WORKDIR ../ - setup of mongoose server - RUN git clone https://github.com/cesanta/mongoose.git - WORKDIR mongoose - RUN simplest_web_server.c - WORKDIR ../ +# setup of mongoose server +RUN git clone https://github.com/cesanta/mongoose.git +WORKDIR mongoose +RUN simplest_web_server.c +WORKDIR ../ # Supervisor configurations ## Flo token tracking configuration From 68c45e37ba970dc0aeee2d95d9498e2461b83a4d Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sun, 1 May 2022 20:32:49 +0530 Subject: [PATCH 16/38] commented out the mongoose server will fix it later --- Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index d23a6c3..a9295db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,11 +69,11 @@ RUN mv example ~/floscout WORKDIR ../ WORKDIR ../ -# setup of mongoose server -RUN git clone https://github.com/cesanta/mongoose.git -WORKDIR mongoose -RUN simplest_web_server.c -WORKDIR ../ +## setup of mongoose server +#RUN git clone https://github.com/cesanta/mongoose.git +#WORKDIR mongoose +##RUN simplest_web_server.c +#WORKDIR ../ # Supervisor configurations ## Flo token tracking configuration From 9b83a6d4150697edaf936b3c54b95ae7587dbb11 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Mon, 16 May 2022 18:30:43 +0530 Subject: [PATCH 17/38] Added binary from cecanta mongoose --- Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a9295db..356af63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,16 +63,17 @@ RUN echo "dbfolder = '/home/production/dev/ranchimallflo-api' \nsse_pubKey = '02 WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout -RUN git clone https://github.com/Dbhardwaj99/mongoose-server-files.git -WORKDIR mongoose-server-files -RUN mv example ~/floscout +RUN git clone https://github.com/cesanta/mongoose +WORKDIR mongoose/examples/http-server +RUN make example +RUN mv example /floscout WORKDIR ../ WORKDIR ../ ## setup of mongoose server #RUN git clone https://github.com/cesanta/mongoose.git #WORKDIR mongoose -##RUN simplest_web_server.c +#RUN simplest_web_server.c #WORKDIR ../ # Supervisor configurations From cde6bdbbec8b31f7a15b771f09c983aba13e6374 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 17 May 2022 15:50:40 +0530 Subject: [PATCH 18/38] mongoose server setup comeplete and added the command into supervisor --- Dockerfile | 19 ++++++------------- example | Bin 0 -> 145588 bytes 2 files changed, 6 insertions(+), 13 deletions(-) create mode 100755 example diff --git a/Dockerfile b/Dockerfile index 356af63..b43f572 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive -EXPOSE 6200 +EXPOSE 8000 EXPOSE 5009 LABEL ranchimall="ranchimallfze@gmail.com" @@ -63,31 +63,24 @@ RUN echo "dbfolder = '/home/production/dev/ranchimallflo-api' \nsse_pubKey = '02 WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout -RUN git clone https://github.com/cesanta/mongoose -WORKDIR mongoose/examples/http-server -RUN make example -RUN mv example /floscout +COPY example . WORKDIR ../ -WORKDIR ../ - -## setup of mongoose server -#RUN git clone https://github.com/cesanta/mongoose.git -#WORKDIR mongoose -#RUN simplest_web_server.c -#WORKDIR ../ # Supervisor configurations ## Flo token tracking configuration ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log" >> ftt-ranchimallflo.conf +RUN echo "[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log RUN mkdir /var/log/ranchimallflo-api/ RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.err.log RUN touch /var/log/ranchimallflo-api/ranchimallflo-api.out.log +RUN mkdir /var/log/floscout/ +RUN touch /var/log/floscout/floscout.err.log +RUN touch /var/log/floscout/floscout.out.log COPY run.sh . RUN chmod +x run.sh diff --git a/example b/example new file mode 100755 index 0000000000000000000000000000000000000000..55835d62c1ad51a959ffb04a303f98f24254e211 GIT binary patch literal 145588 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 BO=AE6 literal 0 HcmV?d00001 From a95d3fa84bc35436a49f1f77d7282140b4ac2bab Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Tue, 17 May 2022 16:17:44 +0530 Subject: [PATCH 19/38] added some changes into supervisord config --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index b43f572..e81f088 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,6 @@ EXPOSE 5009 LABEL ranchimall="ranchimallfze@gmail.com" -# CMD { "echo", "Ranchi Mall" } - # for apt to be noninteractive ENV DEBIAN_FRONTEND noninteractive ENV DEBCONF_NONINTERACTIVE_SEEN true @@ -71,7 +69,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From 3967ee33127a131d26728a5a4a47c0567ac22830 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:00:20 +0530 Subject: [PATCH 20/38] added a shell script to run mongoose server Hope this works --- Dockerfile | 3 ++- mongoose.sh | 5 +++++ run.sh | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100755 mongoose.sh diff --git a/Dockerfile b/Dockerfile index e81f088..caac1de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,6 +62,7 @@ WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout COPY example . +COPY mongoose.sh . WORKDIR ../ # Supervisor configurations @@ -69,7 +70,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log diff --git a/mongoose.sh b/mongoose.sh new file mode 100755 index 0000000..36aca1a --- /dev/null +++ b/mongoose.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd /floscout + +echo "mongoose server is up..." +./example \ No newline at end of file diff --git a/run.sh b/run.sh index 1d4485d..ac9e649 100644 --- a/run.sh +++ b/run.sh @@ -2,4 +2,5 @@ cd /etc/supervisor/conf.d/ echo "running..." -supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file +supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf +./floscout/example \ No newline at end of file From 837ed928044b640c69bb6ebea798081aa79c3bdd Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:01:17 +0530 Subject: [PATCH 21/38] removed an error --- run.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/run.sh b/run.sh index ac9e649..1d4485d 100644 --- a/run.sh +++ b/run.sh @@ -2,5 +2,4 @@ cd /etc/supervisor/conf.d/ echo "running..." -supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf -./floscout/example \ No newline at end of file +supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file From 71020a00aa71e65e8e70800fcd2d71466876a99b Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:11:09 +0530 Subject: [PATCH 22/38] .... --- Dockerfile | 2 +- mongoose.sh | 2 +- run.sh | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index caac1de..d0a6e96 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log diff --git a/mongoose.sh b/mongoose.sh index 36aca1a..e90b018 100755 --- a/mongoose.sh +++ b/mongoose.sh @@ -2,4 +2,4 @@ cd /floscout echo "mongoose server is up..." -./example \ No newline at end of file +./example diff --git a/run.sh b/run.sh index 1d4485d..c44c5ce 100644 --- a/run.sh +++ b/run.sh @@ -2,4 +2,5 @@ cd /etc/supervisor/conf.d/ echo "running..." -supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf \ No newline at end of file +supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf +#./floscout/example \ No newline at end of file From 26359162edfedf1cf92fed3bcde740c642608ddd Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:14:33 +0530 Subject: [PATCH 23/38] made it executable --- mongoose.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongoose.sh b/mongoose.sh index e90b018..a64a132 100755 --- a/mongoose.sh +++ b/mongoose.sh @@ -1,5 +1,5 @@ #!/bin/bash cd /floscout -echo "mongoose server is up..." +echo "mongoose server is up...." ./example From 4b2f736fc2ef10ca3e270a3c7bc965b25d49df39 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:16:58 +0530 Subject: [PATCH 24/38] changed the command --- Dockerfile | 2 +- run.sh | 0 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 run.sh diff --git a/Dockerfile b/Dockerfile index d0a6e96..4b2c17e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 From c72ce7f091dfb6651b0c1b9473fba5b172b109e5 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:22:01 +0530 Subject: [PATCH 25/38] changed the command --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4b2c17e..d0a6e96 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From eb125fb1bb612b590bbf6749ce2a41e785d3d0db Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:25:10 +0530 Subject: [PATCH 26/38] made it executable --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index d0a6e96..abe24db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,6 +63,7 @@ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout COPY example . COPY mongoose.sh . +RUN chmod +x mongoose.sh WORKDIR ../ # Supervisor configurations From f0a74213c8b834820a3b9c6847fcce33f9f0f303 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:29:04 +0530 Subject: [PATCH 27/38] small stuff --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index abe24db..7ddb709 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,7 +71,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From a2e51e9e7033a06b140a6237a1417437e0f9c544 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:31:46 +0530 Subject: [PATCH 28/38] small stuff --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7ddb709..6354c71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,7 +71,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=./floscout/mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=.example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From 11b627c9925565cd41a7162ecdb5c18eedde72c7 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 18 May 2022 23:36:38 +0530 Subject: [PATCH 29/38] small stuff --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6354c71..2ccd620 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,7 +71,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=.example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From 4a5fac3013eb2d287a17e266dfb50d9c16ae2d32 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Mon, 23 May 2022 22:04:42 +0530 Subject: [PATCH 30/38] small stuff --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2ccd620..944661c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,7 +71,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=mongoose.sh\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log From 10425c51fce152773881ae303764eed85f5dec38 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Mon, 23 May 2022 22:43:26 +0530 Subject: [PATCH 31/38] trying on aws --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 944661c..f649083 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,8 +62,8 @@ WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout COPY example . -COPY mongoose.sh . -RUN chmod +x mongoose.sh +#COPY mongoose.sh . +#RUN chmod +x mongoose.sh WORKDIR ../ # Supervisor configurations @@ -84,5 +84,5 @@ RUN touch /var/log/floscout/floscout.out.log COPY run.sh . RUN chmod +x run.sh -CMD ["/etc/supervisor/conf.d/run.sh"] +#CMD ["/etc/supervisor/conf.d/run.sh"] # RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf From bceb1d5f777e056a9c7c4123d525d2c7538d343d Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Wed, 25 May 2022 18:50:14 +0530 Subject: [PATCH 32/38] mongoose server up and running... --- Dockerfile | 7 ++----- README.md | 2 +- example | Bin 145588 -> 133936 bytes 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index f649083..84b71e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive -EXPOSE 8000 +EXPOSE 6200 EXPOSE 5009 LABEL ranchimall="ranchimallfze@gmail.com" @@ -62,8 +62,6 @@ WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout COPY example . -#COPY mongoose.sh . -#RUN chmod +x mongoose.sh WORKDIR ../ # Supervisor configurations @@ -84,5 +82,4 @@ RUN touch /var/log/floscout/floscout.out.log COPY run.sh . RUN chmod +x run.sh -#CMD ["/etc/supervisor/conf.d/run.sh"] -# RUN supervisord -c /etc/supervisor/conf.d/ftt-ranchimallflo.conf +CMD ["/etc/supervisor/conf.d/run.sh"] \ No newline at end of file diff --git a/README.md b/README.md index dddb9b4..9e75e5a 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,6 @@ sudo docker build . Run the docker container with exposing all the port and mounting the volume ``` -docker run -d -p 5009:5009 6200:6200 -v ranchimall-flo-volume 147fcf811419 +docker run -d -p 5009:5009 -p 6200:6200 -v ranchimall-flo-volume ``` diff --git a/example b/example index 55835d62c1ad51a959ffb04a303f98f24254e211..281d2a71e9fcb66d994961e2947d2973eea1106f 100755 GIT binary patch literal 133936 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�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 X1o2lAKG(Pr|Nbp6)j!G@u*822X=0r} literal 145588 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 BO=AE6 From 4fee0e06ea188bace503c73e90327cf5cc877981 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Thu, 9 Jun 2022 02:35:34 +0530 Subject: [PATCH 33/38] Made small changes to the config.py of flo-api Added a new index file for floscout Minor changes also made --- Dockerfile | 6 +- README.md | 5 + index.html | 2886 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2896 insertions(+), 1 deletion(-) create mode 100644 index.html diff --git a/Dockerfile b/Dockerfile index 84b71e0..42ad7f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive EXPOSE 6200 EXPOSE 5009 +EXPOSE 6900 LABEL ranchimall="ranchimallfze@gmail.com" @@ -11,6 +12,7 @@ ENV DEBCONF_NONINTERACTIVE_SEEN true RUN apt-get update RUN apt-get -y install python3-pip +RUN apt-get -y install nano RUN apt-get -y install git RUN apt-get -y install python-chardet python3.9 python3.9-venv RUN apt-get -y install libsecp256k1-dev libssl-dev build-essential automake pkg-config libtool libffi-dev libgmp-dev libyaml-cpp-dev @@ -54,13 +56,15 @@ RUN python3 -m venv env RUN python3 -m pip install -r requirements.txt RUN pip3 install apscheduler RUN touch config.py -RUN echo "dbfolder = '/home/production/dev/ranchimallflo-api' \nsse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \napiUrl = 'https://flosight.duckdns.org/api/' \napilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \nFLO_DATA_DIR = '/home/production/.flo' " >> /ranchimallflo-api/config.py +RUN echo "dbfolder = '/flo-token-tracking' \nsse_pubKey = '02b68a7ba52a499b4cb664033f511a14b0b8b83cd3b2ffcc7c763ceb9e85caabcf' \napiUrl = 'https://flosight.duckdns.org/api/' \napilayerAccesskey = '3abc51aa522420e4e185ac22733b0f30' \nFLO_DATA_DIR = '/home/production/.flo' " >> /ranchimallflo-api/config.py # Setup of Floscout WORKDIR ../ RUN git clone https://github.com/ranchimall/floscout.git WORKDIR floscout +RUN rm index.html +COPY index.html . COPY example . WORKDIR ../ diff --git a/README.md b/README.md index 9e75e5a..41cb819 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,8 @@ Run the docker container with exposing all the port and mounting the volume docker run -d -p 5009:5009 -p 6200:6200 -v ranchimall-flo-volume ``` +To Check if FLO-API is running + +``` +0.0.0.0:5009/api/v1.0/getSystemData +``` diff --git a/index.html b/index.html new file mode 100644 index 0000000..88ba1cd --- /dev/null +++ b/index.html @@ -0,0 +1,2886 @@ + + + + + + + FLO Scout + + + + +
    + Copied +
    +
    + + Loading + + +

    Loading

    +
    +
    +
    +

    Search

    + + close + + + +
    + +
    +
    +
    + + + +
    + +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file From 2dc06fa7c3d03ddc610516df59c6cbb08addf076 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Thu, 9 Jun 2022 03:02:27 +0530 Subject: [PATCH 34/38] Made changes for usinf different ports --- Dockerfile | 7 +++---- example | Bin 133936 -> 130080 bytes index.html | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 42ad7f5..7ff2f84 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive -EXPOSE 6200 -EXPOSE 5009 -EXPOSE 6900 +EXPOSE 4256 +EXPOSE 6012 LABEL ranchimall="ranchimallfze@gmail.com" @@ -73,7 +72,7 @@ WORKDIR ../ ## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf -RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:5009 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf +RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:6012 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf RUN mkdir /var/log/flo-token-tracking RUN touch /var/log/flo-token-tracking/flo-token-tracking.err.log RUN touch /var/log/flo-token-tracking/flo-token-tracking.out.log diff --git a/example b/example index 281d2a71e9fcb66d994961e2947d2973eea1106f..7e89e872783a78702fc9a4014dc2d6b65c1a6c0b 100755 GIT binary patch delta 46773 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 IhTD_>4+c*KS^xk5 delta 44387 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 From b685af0062e04e6d9f6cbfdee24f4a4074f731ab Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Thu, 9 Jun 2022 23:23:04 +0530 Subject: [PATCH 35/38] Update README.md --- README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 41cb819..2f7ca3f 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,7 @@ RanchiMall wants to made things easy for you by packing all the three systems to ## How do I use this? -Clone the repository and then crete a docker volume - -``` -docker volume inspect ranchimall-flo-volume -``` - -Build the docker image by the following command +Clone the repository and Build the docker image by the following command ``` sudo docker build . @@ -28,11 +22,11 @@ sudo docker build . Run the docker container with exposing all the port and mounting the volume ``` -docker run -d -p 5009:5009 -p 6200:6200 -v ranchimall-flo-volume +docker run -d -p 4256:4256 -p 6012:6012 ``` To Check if FLO-API is running ``` -0.0.0.0:5009/api/v1.0/getSystemData +0.0.0.0:6012/api/v1.0/getSystemData ``` From 0dc1399d6b27f524594f12f129d63c5ac4b56423 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sat, 11 Jun 2022 15:37:26 +0530 Subject: [PATCH 36/38] FLOSCOUT binary issue fixed, All changes in readme are made --- Dockerfile | 2 +- README.md | 18 +++++++++--------- example | Bin 130080 -> 133936 bytes 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7ff2f84..ba2c4e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive -EXPOSE 4256 +EXPOSE 6200 EXPOSE 6012 LABEL ranchimall="ranchimallfze@gmail.com" diff --git a/README.md b/README.md index 41cb819..298b9fa 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,7 @@ RanchiMall wants to made things easy for you by packing all the three systems to ## How do I use this? -Clone the repository and then crete a docker volume - -``` -docker volume inspect ranchimall-flo-volume -``` - -Build the docker image by the following command +Clone the repository and build the docker image by the following command ``` sudo docker build . @@ -28,11 +22,17 @@ sudo docker build . Run the docker container with exposing all the port and mounting the volume ``` -docker run -d -p 5009:5009 -p 6200:6200 -v ranchimall-flo-volume +docker run -d -p 4256:6200 -p 6012:6012 ``` To Check if FLO-API is running ``` -0.0.0.0:5009/api/v1.0/getSystemData +http://0.0.0.0:5009/api/v1.0/getSystemData ``` + +To Check if FLOSCOUT is running + +``` +http://0.0.0.0:4256 +``` \ No newline at end of file diff --git a/example b/example index 7e89e872783a78702fc9a4014dc2d6b65c1a6c0b..281d2a71e9fcb66d994961e2947d2973eea1106f 100755 GIT binary patch delta 44387 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 IhTD_>4+c*KS^xk5 From c0655df6e52a0d2189dceaf67f5bc36bc2dd6a6e Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sat, 11 Jun 2022 15:42:31 +0530 Subject: [PATCH 37/38] All changes in readme are made --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f7ca3f..d3b3206 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ RanchiMall wants to made things easy for you by packing all the three systems to ## How do I use this? -Clone the repository and Build the docker image by the following command +Clone the repository and build the docker image by the following command ``` sudo docker build . @@ -22,11 +22,17 @@ sudo docker build . Run the docker container with exposing all the port and mounting the volume ``` -docker run -d -p 4256:4256 -p 6012:6012 +docker run -d -p 6012:6012 -p 4256:6200 ``` To Check if FLO-API is running ``` -0.0.0.0:6012/api/v1.0/getSystemData +http://0.0.0.0:5009/api/v1.0/getSystemData ``` + +To Check if FLOSCOUT is running + +``` +http://0.0.0.0:4256 +``` \ No newline at end of file From e8cc3d459a871410cd2c80e3e308bc5f996308d7 Mon Sep 17 00:00:00 2001 From: Divyansh Bhardwaj <87605149+Dbhardwaj99@users.noreply.github.com> Date: Sat, 18 Jun 2022 17:17:40 +0530 Subject: [PATCH 38/38] Added if else for network change --- Dockerfile | 17 +++++++++++------ flo.sh | 1 + mongoose.sh | 5 ----- run.sh | 1 + 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 flo.sh delete mode 100755 mongoose.sh diff --git a/Dockerfile b/Dockerfile index ba2c4e5..60c2e41 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive EXPOSE 6200 EXPOSE 6012 +ARG net LABEL ranchimall="ranchimallfze@gmail.com" @@ -40,12 +41,12 @@ RUN python3 -m pip install requests RUN python3 -m venv env RUN sed -i "s|chardet==4.0.0|chardet|g" /flo-token-tracking/requirements.txt RUN touch config.ini -RUN echo "[DEFAULT]\nNET = testnet\nFLO_CLI_PATH = /usr/local/bin/flo-cli\nSTART_BLOCK = 740400\nFLOSIGHT_NETURL = http://0.0.0.0:9000/\nTESTNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9000/, https://testnet-flosight.duckdns.org/\nMAINNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9495/, https://flosight.duckdns.org/\nTOKENAPI_SSE_URL = https://ranchimallflo-testnet.duckdns.org\nIGNORE_BLOCK_LIST = 902446\nIGNORE_TRANSACTION_LIST = b4ac4ddb51188b28b39bcb3aa31357d5bfe562c21e8aaf8dde0ec560fc893174" >> /flo-token-tracking/config.ini - RUN touch config.py -RUN echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /flo-token-tracking/config.py +RUN if [[ $net=='test' ]] ; then echo "[DEFAULT]\nNET = testnet\nFLO_CLI_PATH = /usr/local/bin/flo-cli\nSTART_BLOCK = 740400\nFLOSIGHT_NETURL = http://0.0.0.0:9000/\nTESTNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9000/, https://testnet-flosight.duckdns.org/\nMAINNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9495/, https://flosight.duckdns.org/\nTOKENAPI_SSE_URL = https://ranchimallflo-testnet.duckdns.org\nIGNORE_BLOCK_LIST = 902446\nIGNORE_TRANSACTION_LIST = b4ac4ddb51188b28b39bcb3aa31357d5bfe562c21e8aaf8dde0ec560fc893174" >> /flo-token-tracking/config.ini ; else echo "[DEFAULT]\nNET = testnet\nFLO_CLI_PATH = /usr/local/bin/flo-cli\nSTART_BLOCK = 740400\nFLOSIGHT_NETURL = http://0.0.0.0:9000/\nTESTNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9000/, https://testnet-flosight.duckdns.org/\nMAINNET_FLOSIGHT_SERVER_LIST = http://0.0.0.0:9495/, https://flosight.duckdns.org/\nTOKENAPI_SSE_URL = https://ranchimallflo-testnet.duckdns.org\nIGNORE_BLOCK_LIST = 902446\nIGNORE_TRANSACTION_LIST = b4ac4ddb51188b28b39bcb3aa31357d5bfe562c21e8aaf8dde0ec560fc893174" >> /flo-token-tracking/config.ini ; fi +RUN if [[ $net=='test' ]] ; then echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /flo-token-tracking/config.py ; else echo "committeeAddressList = ['oVwmQnQGtXjRpP7dxJeiRGd5azCrJiB6Ka'] \nsseAPI_url = 'https://ranchimallflo-testnet.duckdns.org/' \nprivKey = 'RG6Dni1fLqeT2TEFbe7RB9tuw53bDPDXp8L4KuvmYkd5JGBam6KJ' " >> /flo-token-tracking/config.py ; fi + # Setup of RanchimallFlo API WORKDIR ../ RUN git clone https://github.com/ranchimall/ranchimallflo-api @@ -65,11 +66,15 @@ WORKDIR floscout RUN rm index.html COPY index.html . COPY example . +RUN sed -i "s|window.tokenapiUrl = 'http://0.0.0.0:6012'|window.tokenapiUrl = $FLOAPIURL|" /floscout/index.html WORKDIR ../ +##clientside changes +#COPY flo.sh . +#RUN chmod +x flo.sh +#RUN #flo.sh + # Supervisor configurations -## Flo token tracking configuration -## Ranchimallflo configuration WORKDIR /etc/supervisor/conf.d/ RUN touch ftt-ranchimallflo.conf RUN echo "[supervisord] \nnodaemon=true\n[program:flo-token-tracking]\ndirectory=/flo-token-tracking\ncommand=python3 tracktokens_smartcontracts.py --reset\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/flo-token-tracking/flo-token-tracking.err.log\nstdout_logfile=/var/log/flo-token-tracking/flo-token-tracking.out.log\n[program:ranchimallflo-api]\ndirectory=/ranchimallflo-api\ncommand=hypercorn -w 1 -b 0.0.0.0:6012 wsgi:app\nuser=root\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.err.log \nstdout_logfile=/var/log/ranchimallflo-api/ranchimallflo-api.out.log\n[program:floscout]\ndirectory=/floscout\ncommand=/floscout/example\nuser=root\nautostart=true\nautorestart=false\nstopasgroup=true\nkillasgroup=true\nstderr_logfile=/var/log/floscout/floscout.err.log\nstdout_logfile=/var/log/floscout/floscout.out.log" >> ftt-ranchimallflo.conf @@ -85,4 +90,4 @@ RUN touch /var/log/floscout/floscout.out.log COPY run.sh . RUN chmod +x run.sh -CMD ["/etc/supervisor/conf.d/run.sh"] \ No newline at end of file +#CMD ["/etc/supervisor/conf.d/run.sh"] \ No newline at end of file diff --git a/flo.sh b/flo.sh new file mode 100644 index 0000000..780563e --- /dev/null +++ b/flo.sh @@ -0,0 +1 @@ +sed -i "s|window.tokenapiUrl = 'http://0.0.0.0:6012'|window.tokenapiUrl = '$FLOAPIURL'|" /floscout/index.html diff --git a/mongoose.sh b/mongoose.sh deleted file mode 100755 index a64a132..0000000 --- a/mongoose.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -cd /floscout - -echo "mongoose server is up...." -./example diff --git a/run.sh b/run.sh index c44c5ce..ac8ae23 100755 --- a/run.sh +++ b/run.sh @@ -1,4 +1,5 @@ #!/bin/bash +#sed -i "s|window.tokenapiUrl = 'http://0.0.0.0:6012'|window.tokenapiUrl = '$FLOAPIURL'|" /floscout/index.html cd /etc/supervisor/conf.d/ echo "running..."