diff --git a/HTTPSEverywhere.url b/HTTPSEverywhere.url deleted file mode 100644 index 84202f4..0000000 --- a/HTTPSEverywhere.url +++ /dev/null @@ -1 +0,0 @@ -https://addons.mozilla.org/firefox/downloads/file/3809748/2021.7.13/https-everywhere-eff@eff.org.xpi diff --git a/Makefile b/Makefile index d2e9a9a..78a25e6 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ help: .version @echo "$(MAJOR).$(MINOR).$(BUILD)" @echo "$(preset)" -prep: profile.tgz app-profile.tgz profile build/licenses build/I2P build/I2P/config launchers +prep: profile.tgz app-profile.tgz build/licenses build/I2P build/I2P/config launchers cp src/nsis/*.nsi build cp src/nsis/*.nsh build cp src/icons/*.ico build @@ -92,12 +92,16 @@ build/licenses: build unix2dos build/licenses/LICENSE.index clean: - rm -rf build app-profile-*.tgz profile-*.tgz I2P-Profile-Installer-*.exe *.deb src/I2P/config *.su3 .version + rm -rf build app-profile-*.tgz profile-*.tgz I2P-Profile-Installer-*.exe *.deb src/I2P/config/* *.su3 .version build: @echo "creating build directory" mkdir -p build +portable-profile: .version I2P build/I2P + make profile.tgz + cp -rv build/profile build/portable-profile + profile: build/profile/user.js build/profile/prefs.js build/profile/bookmarks.html build/profile/storage-sync.sqlite copy-xpi profile.tgz: .version profile @@ -124,6 +128,10 @@ copy-xpi: build/NoScript.xpi build/HTTPSEverywhere.xpi build/i2ppb@eyedeekay.git cp build/HTTPSEverywhere.xpi "build/profile/extensions/https-everywhere-eff@eff.org.xpi" cp build/i2ppb@eyedeekay.github.io.xpi build/profile/extensions/i2ppb@eyedeekay.github.io.xpi +portable-app-profile: .version I2P build/I2P + make app-profile.tgz + cp -rv build/app-profile build/portable-app-profile + app-profile: .version build/app-profile/user.js build/app-profile/prefs.js build/app-profile/chrome/userChrome.css build/app-profile/bookmarks.html build/app-profile/storage-sync.sqlite copy-app-xpi app-profile.tgz: app-profile diff --git a/NoScript.url b/NoScript.url deleted file mode 100644 index 73fb92c..0000000 --- a/NoScript.url +++ /dev/null @@ -1 +0,0 @@ -https://addons.mozilla.org/firefox/downloads/file/3534184/11.2.11/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi diff --git a/README.md b/README.md index 4b3ab32..1b1ca74 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,10 @@ with `sudo service i2p start` then you can run the script: Including a jpackaged I2P Router(EXPERIMENTAL) ---------------------------------------------- +It is strongly advised that you use an up-to-date JDK 17 to build your +jpackage! Releases will be built with an up-to-date OpenJDK LTS. Builds occur +on a Windows 10 laptop, hashed, and transferred to a Linux laptop for signing. + In order to include a jpackaged(dependency-free) I2P router in the Profile Bundle you will need to build the jpackaged I2P router as an "App Image" on a Windows system and place it into a directory called `I2P` in your `i2p.firefox` diff --git a/i2psetproxy.url b/i2psetproxy.url deleted file mode 100644 index 9e98787..0000000 --- a/i2psetproxy.url +++ /dev/null @@ -1 +0,0 @@ -https://addons.mozilla.org/firefox/downloads/file/3821635/0.112.1/i2ppb@eyedeekay.github.io.xpi diff --git a/src/I2P/portable/addressbook/config.txt b/src/I2P/portable/addressbook/config.txt new file mode 100644 index 0000000..c7d1ab0 --- /dev/null +++ b/src/I2P/portable/addressbook/config.txt @@ -0,0 +1,11 @@ +should_publish=false +proxy_host=127.0.0.1 +proxy_port=4444 +update_delay=1 +log=../log/addrbook_log.txt +last_modified=../log/addrbook_last_modified.txt +etags=../log/addrbook_etags.txt +subscriptions=subscriptions.txt +local_addressbook=userhosts.txt +router_addressbook=../hosts.txt +published_addressbook=../eepsite/hosts.txt diff --git a/src/I2P/portable/clients.config b/src/I2P/portable/clients.config new file mode 100644 index 0000000..196d625 --- /dev/null +++ b/src/I2P/portable/clients.config @@ -0,0 +1,15 @@ +clientApp.0.main=net.i2p.router.web.RouterConsoleRunner +clientApp.0.name=I2P Router Console +clientApp.0.args=7657 127.0.0.1 ./webapps/ +clientApp.0.delay=0 +clientApp.0.startOnLoad=true +clientApp.1.main=net.i2p.i2ptunnel.TunnelControllerGroup +clientApp.1.name=Application tunnels +clientApp.1.args=i2ptunnel.config +clientApp.1.delay=120 +clientApp.1.startOnLoad=true +clientApp.2.main=net.i2p.apps.systray.UrlLauncher +clientApp.2.name=Open Router Console in web browser at startup +clientApp.2.args=http://127.0.0.1:7657/index.jsp +clientApp.2.delay=15 +clientApp.2.startOnLoad=true \ No newline at end of file diff --git a/src/I2P/portable/i2ptunnel.config b/src/I2P/portable/i2ptunnel.config new file mode 100644 index 0000000..8bc025d --- /dev/null +++ b/src/I2P/portable/i2ptunnel.config @@ -0,0 +1,119 @@ +tunnel.0.description=HTTP proxy for browsing eepsites and the web +tunnel.0.i2cpHost=127.0.0.1 +tunnel.0.i2cpPort=7654 +tunnel.0.interface=127.0.0.1 +tunnel.0.listenPort=4444 +tunnel.0.name=I2P HTTP Proxy +tunnel.0.option.i2cp.closeIdleTime=1800000 +tunnel.0.option.i2cp.closeOnIdle=false +tunnel.0.option.i2cp.delayOpen=false +tunnel.0.option.i2cp.newDestOnResume=false +tunnel.0.option.i2cp.reduceIdleTime=900000 +tunnel.0.option.i2cp.reduceOnIdle=false +tunnel.0.option.i2cp.reduceQuantity=1 +tunnel.0.option.i2p.streaming.connectDelay=1000 +tunnel.0.option.inbound.backupQuantity=1 +tunnel.0.option.inbound.length=2 +tunnel.0.option.inbound.lengthVariance=0 +tunnel.0.option.inbound.nickname=shared clients +tunnel.0.option.inbound.quantity=2 +tunnel.0.option.outbound.backupQuantity=1 +tunnel.0.option.outbound.length=2 +tunnel.0.option.outbound.lengthVariance=0 +tunnel.0.option.outbound.nickname=shared clients +tunnel.0.option.outbound.quantity=2 +tunnel.0.option.persistentClientKey=false +tunnel.0.proxyList=false.i2p,blue.proxynet.i2p +tunnel.0.sharedClient=true +tunnel.0.startOnLoad=true +tunnel.0.type=httpclient +tunnel.1.description=IRC proxy to access the anonymous IRC network +tunnel.1.i2cpHost=127.0.0.1 +tunnel.1.i2cpPort=7654 +tunnel.1.interface=127.0.0.1 +tunnel.1.listenPort=6668 +tunnel.1.name=IRC Proxy +tunnel.1.option.i2cp.closeIdleTime=1200000 +tunnel.1.option.i2cp.closeOnIdle=false +tunnel.1.option.i2cp.delayOpen=true +tunnel.1.option.i2cp.newDestOnResume=false +tunnel.1.option.i2cp.reduceIdleTime=600000 +tunnel.1.option.i2cp.reduceOnIdle=true +tunnel.1.option.i2cp.reduceQuantity=1 +tunnel.1.option.i2p.streaming.connectDelay=1000 +tunnel.1.option.inbound.backupQuantity=0 +tunnel.1.option.inbound.length=2 +tunnel.1.option.inbound.lengthVariance=0 +tunnel.1.option.inbound.nickname=IRC Proxy +tunnel.1.option.inbound.quantity=2 +tunnel.1.option.outbound.backupQuantity=0 +tunnel.1.option.outbound.length=2 +tunnel.1.option.outbound.lengthVariance=0 +tunnel.1.option.outbound.nickname=IRC Proxy +tunnel.1.option.outbound.quantity=2 +tunnel.1.option.persistentClientKey=false +tunnel.1.privKeyFile=i2ptunnel1-privKeys.dat +tunnel.1.sharedClient=false +tunnel.1.startOnLoad=true +tunnel.1.targetDestination=irc.postman.i2p,irc.freshcoffee.i2p +tunnel.1.type=ircclient +tunnel.2.description=smtp server +tunnel.2.i2cpHost=127.0.0.1 +tunnel.2.i2cpPort=7654 +tunnel.2.interface=127.0.0.1 +tunnel.2.listenPort=7659 +tunnel.2.name=smtp.postman.i2p +tunnel.2.option.i2cp.closeIdleTime=1800000 +tunnel.2.option.i2cp.closeOnIdle=false +tunnel.2.option.i2cp.delayOpen=true +tunnel.2.option.i2cp.newDestOnResume=false +tunnel.2.option.i2cp.reduceIdleTime=900000 +tunnel.2.option.i2cp.reduceOnIdle=true +tunnel.2.option.i2cp.reduceQuantity=1 +tunnel.2.option.i2p.streaming.connectDelay=1000 +tunnel.2.option.inbound.backupQuantity=1 +tunnel.2.option.inbound.length=2 +tunnel.2.option.inbound.lengthVariance=0 +tunnel.2.option.inbound.nickname=shared clients +tunnel.2.option.inbound.quantity=2 +tunnel.2.option.outbound.backupQuantity=1 +tunnel.2.option.outbound.length=2 +tunnel.2.option.outbound.lengthVariance=0 +tunnel.2.option.outbound.nickname=shared clients +tunnel.2.option.outbound.quantity=2 +tunnel.2.option.persistentClientKey=false +tunnel.2.privKeyFile=i2ptunnel4-privKeys.dat +tunnel.2.sharedClient=true +tunnel.2.startOnLoad=true +tunnel.2.targetDestination=smtp.postman.i2p +tunnel.2.type=client +tunnel.3.description=pop3 server +tunnel.3.i2cpHost=127.0.0.1 +tunnel.3.i2cpPort=7654 +tunnel.3.interface=127.0.0.1 +tunnel.3.listenPort=7660 +tunnel.3.name=pop3.postman.i2p +tunnel.3.option.i2cp.closeIdleTime=1800000 +tunnel.3.option.i2cp.closeOnIdle=false +tunnel.3.option.i2cp.delayOpen=false +tunnel.3.option.i2cp.newDestOnResume=false +tunnel.3.option.i2cp.reduceIdleTime=900000 +tunnel.3.option.i2cp.reduceOnIdle=true +tunnel.3.option.i2cp.reduceQuantity=1 +tunnel.3.option.i2p.streaming.connectDelay=1000 +tunnel.3.option.inbound.backupQuantity=1 +tunnel.3.option.inbound.length=2 +tunnel.3.option.inbound.lengthVariance=0 +tunnel.3.option.inbound.nickname=shared clients +tunnel.3.option.inbound.quantity=2 +tunnel.3.option.outbound.backupQuantity=1 +tunnel.3.option.outbound.length=2 +tunnel.3.option.outbound.lengthVariance=0 +tunnel.3.option.outbound.nickname=shared clients +tunnel.3.option.outbound.quantity=2 +tunnel.3.option.persistentClientKey=false +tunnel.3.privKeyFile=i2ptunnel5-privKeys.dat +tunnel.3.sharedClient=true +tunnel.3.startOnLoad=true +tunnel.3.targetDestination=pop.postman.i2p +tunnel.3.type=client diff --git a/src/I2P/portable/logger.config b/src/I2P/portable/logger.config new file mode 100644 index 0000000..6f73c8e --- /dev/null +++ b/src/I2P/portable/logger.config @@ -0,0 +1,10 @@ +logger.format=d p [t] c: m +logger.dateFormat=HH:mm:ss.SSS +logger.displayOnScreen=TRUE +logger.logFileName=logs/log-#.txt +logger.logFileSize=10m +logger.logRotationLimit=2 +logger.defaultLevel=WARN +logger.minimumOnScreenLevel=CRIT +logger.consoleBufferSize=20 +# log limit overrides: diff --git a/src/I2P/portable/router.config b/src/I2P/portable/router.config new file mode 100644 index 0000000..18cd968 --- /dev/null +++ b/src/I2P/portable/router.config @@ -0,0 +1,27 @@ +# NOTE: This I2P config file must use UTF-8 encoding +i2np.bandwidth.inboundBurstKBytes=22520 +i2np.bandwidth.inboundBurstKBytesPerSecond=128 +i2np.bandwidth.inboundKBytesPerSecond=128 +i2np.bandwidth.outboundBurstKBytes=22520 +i2np.bandwidth.outboundBurstKBytesPerSecond=128 +i2np.bandwidth.outboundKBytesPerSecond=128 +i2np.laptopMode=false +i2np.ntcp.autoip=true +i2np.ntcp.enable=true +i2np.udp.addressSources=local,upnp,ssu +i2np.upnp.enable=true +i2p.dir.config=. +prng.buffers=16 +router.dynamicKeys=false +router.maxParticipatingTunnels=150 +router.newsRefreshFrequency=86400000 +router.sharePercentage=80 +router.updatePolicy=notify +router.updateProxyHost=127.0.0.1 +router.updateProxyPort=4444 +router.updateThroughProxy=true +router.updateURL=http://echelon.i2p/i2p/i2pupdate.sud,http://stats.i2p/i2p/i2pupdate.sud,http://www.i2p2.i2p/_static/i2pupdate.sud,http://update.postman.i2p/i2pupdate.sud +router.updateUnsigned=false +routerconsole.lang=en +routerconsole.summaryRefresh=30 +time.disabled=false diff --git a/src/I2P/portable/systray.config b/src/I2P/portable/systray.config new file mode 100644 index 0000000..062e3e3 --- /dev/null +++ b/src/I2P/portable/systray.config @@ -0,0 +1,14 @@ +# NOTE: The system tray control currently only works on Windows and KDE. + +# The filename (with full path if needed) of the browser to be used by the +# system tray control to launch the router console. You may also append command +# line parameters like so: +# +# browser=/usr/bin/opera -newpage +# +# If you set this value to 'default', systray will attempt to identify and use +# your system's default browser. +browser=default + +# The port the router console listens on. +port=7657 diff --git a/src/I2P/portable/webapps.config b/src/I2P/portable/webapps.config new file mode 100644 index 0000000..ea96501 --- /dev/null +++ b/src/I2P/portable/webapps.config @@ -0,0 +1,4 @@ +# NOTE: This I2P config file must use UTF-8 encoding +webapps.addressbook.startOnLoad=true +webapps.i2ptunnel.startOnLoad=true +webapps.routerconsole.startOnLoad=true diff --git a/src/I2P/portable/wrapper.config b/src/I2P/portable/wrapper.config new file mode 100644 index 0000000..afa59de --- /dev/null +++ b/src/I2P/portable/wrapper.config @@ -0,0 +1,145 @@ +wrapper.java.command=java +wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp + +# Java Classpath (include wrapper.jar) Add class path elements as +# needed starting from 1 +wrapper.java.classpath.1=lib/*.jar +# uncomment this to use the system classpath as well (e.g. to get tools.jar) +#wrapper.java.classpath.2=%CLASSPATH% + +# Java Library Path (location of Wrapper.DLL or libwrapper.so) +wrapper.java.library.path.1=lib + +# Java Additional Parameters +# Numbers must be consecutive (except for stripquotes) +wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt +wrapper.java.additional.2=-Di2p.dir.base=. +wrapper.java.additional.2.stripquotes=TRUE + +# Prevent the JVM from exporting stats (and thereby causing hundreds of +# ms long pauses during GC) +# http://www.evanjones.ca/jvm-mmap-pause.html +#wrapper.java.additional.3=-XX:+PerfDisableSharedMem + +# PORTABLE installation: +# uncomment the following +wrapper.java.additional.3=-Di2p.dir.pid=logs +wrapper.java.additional.3.stripquotes=TRUE +wrapper.java.additional.4=-Di2p.dir.temp=tmp +wrapper.java.additional.4.stripquotes=TRUE +wrapper.java.additional.5=-Di2p.dir.config=. +wrapper.java.additional.5.stripquotes=TRUE + +# Uncomment this for better performance. +# If it doesn't work, server mode is not available in your JVM. +# This may not be required if your machine is already "server-class". +# See http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html +#wrapper.java.additional.6=-server + +# Initial Java Heap Size (in MB) +#wrapper.java.initmemory=4 + +# Maximum Java Heap Size (in MB) +# The JVM's default is 64MB, and I2P can work fine in that, but to handle +# lots of I2PSnark activity in the same JVM, increasing the default max heap +# size should help. Feel free to reduce this if not using I2PSnark in the jvm +# High-bandwidth routers may need to increase to 256 or more. +# +# WARNING - for any changes to take effect, you must completely +# stop the router and the wrapper. Clicking 'Restart' on your +# router console will NOT reread this file! You must +# click "Shutdown", wait 11 minutes, then start i2p. +# +wrapper.java.maxmemory=64 + +# Application parameters. Add parameters as needed starting from 1 +wrapper.app.parameter.1=net.i2p.router.Router + +#******************************************************************** +# Wrapper Logging Properties +#******************************************************************** +# Format of output for the console. (See docs for formats) +wrapper.console.format=PM + +# Log Level for console output. (See docs for log levels) +wrapper.console.loglevel=INFO + +# Log file to use for wrapper output logging. +# You may wish to change this on linux so the log is +# preserved across OS restarts. +# If you do change it, add the following line above to +# tell the router where to find the wrapper log +# (change X to the next available number) +wrapper.logfile=logs\wrapper.log + +# Format of output for the log file. +# The format consists of the tokens 'L' for log level, 'P' for prefix, 'D' for thread, +# 'T' for time, 'Z' for millisecond time, and 'M' for message +# Unfortunately the log timezone cannot be changed, see +# http://www.nabble.com/Log-message-timezone-td23651317.html +wrapper.logfile.format=TM + +# Log Level for log file output. (See docs for log levels) +wrapper.logfile.loglevel=NOTICE + +# Maximum size that the log file will be allowed to grow to before +# the log is rolled. Size is specified in bytes. The default value +# of 0, disables log rolling. May abbreviate with the 'k' (kb) or +# 'm' (mb) suffix. For example: 10m = 10 megabytes. +wrapper.logfile.maxsize=1m + +# Maximum number of rolled log files which will be allowed before old +# files are deleted. The default value of 0 implies no limit. +wrapper.logfile.maxfiles=2 + +# Log Level for sys/event log output. (See docs for log levels) +wrapper.syslog.loglevel=NONE + +# choose what to do if the JVM kills itself based on the exit code +wrapper.on_exit.default=SHUTDOWN +wrapper.on_exit.0=SHUTDOWN +wrapper.on_exit.1=SHUTDOWN +# OOM +wrapper.on_exit.10=RESTART +# graceful shutdown +wrapper.on_exit.2=SHUTDOWN +# hard shutdown +wrapper.on_exit.3=SHUTDOWN +# hard restart +wrapper.on_exit.4=RESTART +# hard restart +wrapper.on_exit.5=RESTART + +# the router may take a few seconds to save state, etc +wrapper.jvm_exit.timeout=30 + +# give the OS 60s to clear all the old sockets / etc before restarting +# Let's change the default from 60 to 15 seconds and see if anyone moans.. +wrapper.restart.delay=5 + +wrapper.ping.interval=300 +# The ping timeout must be at least 5 seconds longer than the value of wrapper.ping.interval. +# Extend this if you are getting 'JVM appears hung' shutdowns. +wrapper.ping.timeout=320 + +# use the wrapper's internal timer thread. otherwise this would +# force a restart of the router during daylight savings time as well +# as any time that the OS clock changes +wrapper.use_system_time=false + +# pid file for the JVM +# If you plan to have multiple wrappers running on the same machine, +# you should copy this file, change the location or file name, +# and edit the i2prouter script to change the WRAPPER_CONF setting +# to point to the new wrapper.config location. +wrapper.java.pidfile=logs\routerjvm.pid +# This means i2prouter looks for './i2p.pid'. +# See comments above for wrapper.java.pidfile +# PORTABLE installation: +# Use the following instead. +wrapper.pidfile=logs/i2p.pid + +#******************************************************************** +# Wrapper NT Service Properties +#******************************************************************** +# Not useful for portable version - BOOM