diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..7331dd6f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM ubuntu:xenial + +#Base settings +ENV HOME /root + +#Install needed packages +RUN apt update && apt install -y python3 python3-dev python3-pip tor + +#Add Onionr source +COPY . /root +VOLUME /root/data + +WORKDIR /root + +RUN pip3 install -r requirements.txt + +#Set upstart command +#CMD (! ${ENABLE_TOR} || tor&) && python zeronet.py --ui_ip 0.0.0.0 --fileserver_port 26552 +CMD bash + +#Expose ports +EXPOSE 8080 diff --git a/onionr/onionr.py b/onionr/onionr.py index 278ba60d..05f22099 100755 --- a/onionr/onionr.py +++ b/onionr/onionr.py @@ -135,18 +135,19 @@ class Onionr: self.onionrCore.createAddressDB() # Get configuration - - if not data_exists: - # Generate default config - # Hostname should only be set if different from 127.x.x.x. Important for DNS rebinding attack prevention. - if self.debug: - randomPort = 8080 - else: - while True: - randomPort = random.randint(1024, 65535) - if self.onionrUtils.checkPort(randomPort): - break - config.set('client', {'participate': True, 'hmac': base64.b16encode(os.urandom(32)).decode('utf-8'), 'port': randomPort, 'api_version': API_VERSION}, True) + if type(config.get('client.hmac')) is type(None): + config.set('client.hmac', base64.b16encode(os.urandom(32)).decode('utf-8'), savefile=True) + if type(config.get('client.port')) is type(None): + #while True: + randomPort = random.randint(1024, 65535) + # if self.onionrUtils.checkPort(randomPort): + # break + config.set('client.port', randomPort, savefile=True) + if type(config.get('client.participate')) is type(None): + config.set('client.participate', True, savefile=True) + if type(config.get('client.api_version')) is type(None): + config.set('client.api_version', API_VERSION, savefile=True) + self.cmds = { '': self.showHelpSuggestion,