diff --git a/daemon.py b/daemon.py index fe2752e24..312d3c754 100644 --- a/daemon.py +++ b/daemon.py @@ -7336,7 +7336,8 @@ def runDaemon(blogsInstance: bool, mediaInstance: bool, enableSharedInbox: bool, registration: bool, language: str, projectVersion: str, instanceId: str, clientToServer: bool, - baseDir: str, domain: str, onionDomain: str, + baseDir: str, domain: str, + onionDomain: str, i2pDomain: str, port=80, proxyPort=80, httpPrefix='https', fedList=[], maxMentions=10, maxEmoji=10, authenticatedFetch=False, @@ -7379,6 +7380,7 @@ def runDaemon(blogsInstance: bool, mediaInstance: bool, httpd.domainBlocklist = getDomainBlocklist(baseDir) httpd.onionDomain = onionDomain + httpd.i2pDomain = i2pDomain httpd.useBlurHash = useBlurHash httpd.mediaInstance = mediaInstance httpd.blogsInstance = blogsInstance diff --git a/epicyon.py b/epicyon.py index 9c4114472..340eb0125 100644 --- a/epicyon.py +++ b/epicyon.py @@ -97,6 +97,10 @@ parser.add_argument('-o', '--onion', dest='onion', type=str, default=None, help='Onion domain name of the server if ' + 'primarily on clearnet') +parser.add_argument('--i2pDomain', dest='i2pDomain', type=str, + default=None, + help='i2p domain name of the server if ' + + 'primarily on clearnet') parser.add_argument('-p', '--port', dest='port', type=int, default=None, help='Port number to run on') @@ -467,6 +471,16 @@ if args.onion: onionDomain = args.onion setConfigParam(baseDir, 'onion', onionDomain) +i2pDomain = None +if args.i2pDomain: + if not args.i2pDomain.endswith('.i2p'): + print(args.i2pDomain + ' does not look like an i2p domain') + sys.exit() + if '://' in args.i2pDomain: + args.onion = args.onion.split('://')[1] + i2pDomain = args.i2pDomain + setConfigParam(baseDir, 'i2pDomain', i2pDomain) + if not args.language: languageCode = getConfigParam(baseDir, 'language') if languageCode: @@ -532,6 +546,13 @@ if configOnionDomain: else: onionDomain = None +# get i2p domain name from configuration +configi2pDomain = getConfigParam(baseDir, 'i2pDomain') +if configi2pDomain: + i2pDomain = configi2pDomain +else: + i2pDomain = None + # get port number from configuration configPort = getConfigParam(baseDir, 'port') if configPort: @@ -1659,7 +1680,8 @@ runDaemon(args.blogsinstance, args.mediainstance, not args.nosharedinbox, registration, args.language, __version__, instanceId, args.client, baseDir, - domain, onionDomain, port, proxyPort, httpPrefix, + domain, onionDomain, i2pDomain, + port, proxyPort, httpPrefix, federationList, args.maxMentions, args.maxEmoji, args.authenticatedFetch, args.noreply, args.nolike, args.nopics, diff --git a/tests.py b/tests.py index 1c4ed0cba..16504d80e 100644 --- a/tests.py +++ b/tests.py @@ -273,9 +273,11 @@ def createServerAlice(path: str, domain: str, port: int, maxMentions = 10 maxEmoji = 10 onionDomain = None + i2pDomain = None print('Server running: Alice') runDaemon(False, False, 5, True, True, 'en', __version__, - "instanceId", False, path, domain, onionDomain, port, port, + "instanceId", False, path, domain, + onionDomain, i2pDomain, port, port, httpPrefix, federationList, maxMentions, maxEmoji, False, noreply, nolike, nopics, noannounce, cw, ocapAlways, useTor, maxReplies, @@ -334,9 +336,11 @@ def createServerBob(path: str, domain: str, port: int, maxMentions = 10 maxEmoji = 10 onionDomain = None + i2pDomain = None print('Server running: Bob') runDaemon(False, False, 5, True, True, 'en', __version__, - "instanceId", False, path, domain, onionDomain, port, port, + "instanceId", False, path, domain, + onionDomain, i2pDomain, port, port, httpPrefix, federationList, maxMentions, maxEmoji, False, noreply, nolike, nopics, noannounce, cw, ocapAlways, useTor, maxReplies, @@ -372,9 +376,11 @@ def createServerEve(path: str, domain: str, port: int, federationList: [], maxMentions = 10 maxEmoji = 10 onionDomain = None + i2pDomain = None print('Server running: Eve') runDaemon(False, False, 5, True, True, 'en', __version__, - "instanceId", False, path, domain, onionDomain, port, port, + "instanceId", False, path, domain, + onionDomain, i2pDomain, port, port, httpPrefix, federationList, maxMentions, maxEmoji, False, noreply, nolike, nopics, noannounce, cw, ocapAlways, useTor, maxReplies, allowDeletion, True, True, False,