forked from I2P_Developers/i2p.i2p
Compare commits
39 Commits
test-net.i
...
build-debi
| Author | SHA1 | Date | |
|---|---|---|---|
| f1d6fc7a68 | |||
| 36bbe6cb69 | |||
| 0d89f24965 | |||
| 14dd91f17e | |||
| c19df57e48 | |||
| 6ab0bd2f89 | |||
| 2cc26762b4 | |||
| bb52124f98 | |||
| aace7f6914 | |||
| c9a7ddef44 | |||
| ad347cada7 | |||
| 6c2759dda7 | |||
| 75e81b7aca | |||
| e3208c982b | |||
| 2dcffc6f29 | |||
|
|
29cbac6a41 | ||
|
|
e48ba4b83c | ||
|
|
1dfdf79d15 | ||
| b2f4445f50 | |||
| acbb8d1a24 | |||
| bd1017ba92 | |||
|
|
cb22f31d96 | ||
|
|
451e53a674 | ||
|
|
9f7b0390a3 | ||
|
|
c400232cdf | ||
| c87e74ea1d | |||
|
|
c95430f33b | ||
| 4a9131c39d | |||
| b47269f14e | |||
| fb317b44ba | |||
| e64e12b3fb | |||
|
|
08c46e55f5 | ||
|
|
5e5886395c | ||
| 4776080ce6 | |||
| 79a868b8fe | |||
|
|
c79e6455fd | ||
|
|
b7262aa592 | ||
| 596f6e01cc | |||
|
|
d95c85cdbe |
31
.dockerignore
Normal file
31
.dockerignore
Normal file
@@ -0,0 +1,31 @@
|
||||
.idea
|
||||
.git
|
||||
Dockerfile
|
||||
|
||||
|
||||
# Gradle
|
||||
.gradle
|
||||
build
|
||||
apps/BOB/build
|
||||
apps/addressbook/build
|
||||
apps/desktopgui/build
|
||||
apps/i2pcontrol/build
|
||||
apps/i2psnark/build
|
||||
apps/i2ptunnel/build
|
||||
apps/imagegen/build
|
||||
apps/jetty/build
|
||||
apps/jrobin/build
|
||||
apps/ministreaming/java/build
|
||||
apps/ministreaming/build
|
||||
apps/routerconsole/build
|
||||
apps/sam/build
|
||||
apps/streaming/build
|
||||
apps/susidns/build
|
||||
apps/susimail/build
|
||||
apps/systray/build
|
||||
core/java/build
|
||||
core/build
|
||||
installer/build
|
||||
router/java/build
|
||||
router/build
|
||||
|
||||
@@ -2,6 +2,7 @@ image: openjdk:8-alpine
|
||||
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
|
||||
cache:
|
||||
key: ${CI_COMMIT_REF_SLUG}
|
||||
@@ -20,5 +21,85 @@ test:
|
||||
# The actual output that will be parsed by the code coverage
|
||||
- grep -oP "Total.*?%" build/reports/jacoco/html/index.html
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
- tags
|
||||
|
||||
# Make sure we can build a docker image
|
||||
# It's cached for later jobs
|
||||
build_docker:
|
||||
stage: build
|
||||
image: docker:19.03.12
|
||||
services:
|
||||
- docker:19.03.12-dind
|
||||
script:
|
||||
# Try to load latest branch image from local tar or from registry
|
||||
- docker load -i ci-exports/$CI_COMMIT_REF_SLUG.tar || docker pull $CI_REGISTRY_IMAGE:latest || true
|
||||
- docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:latest .
|
||||
- mkdir -p ci-exports/
|
||||
- docker save $CI_REGISTRY_IMAGE:latest > ci-exports/$CI_COMMIT_REF_SLUG.tar
|
||||
variables:
|
||||
# When using dind service, we need to instruct docker to talk with
|
||||
# the daemon started inside of the service. The daemon is available
|
||||
# with a network connection instead of the default
|
||||
# /var/run/docker.sock socket. Docker 19.03 does this automatically
|
||||
# by setting the DOCKER_HOST in
|
||||
# https://github.com/docker-library/docker/blob/d45051476babc297257df490d22cbd806f1b11e4/19.03/docker-entrypoint.sh#L23-L29
|
||||
#
|
||||
# The 'docker' hostname is the alias of the service container as described at
|
||||
# https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services.
|
||||
#
|
||||
# Specify to Docker where to create the certificates, Docker will
|
||||
# create them automatically on boot, and will create
|
||||
# `/certs/client` that will be shared between the service and job
|
||||
# container, thanks to volume mount from config.toml
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
|
||||
DOCKER_HOST: tcp://docker:2376
|
||||
cache:
|
||||
# The same key should be used across branches
|
||||
key: "$CI_COMMIT_REF_SLUG"
|
||||
paths:
|
||||
- ci-exports/
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
- tags
|
||||
|
||||
|
||||
.build_debian:
|
||||
image: debian:buster-slim
|
||||
stage: build
|
||||
variables:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
before_script:
|
||||
# Workaround for installing openjdk-11-jre-headless
|
||||
- mkdir -p /usr/share/man/man1
|
||||
- apt-get update
|
||||
- apt-get -qqqy install debhelper ant debconf gettext libgmp-dev po-debconf fakeroot
|
||||
build-essential quilt dh-apparmor libservice-wrapper-java libjson-simple-java
|
||||
devscripts libjetty9-java libtomcat9-java libtaglibs-standard-jstlel-java libgetopt-java
|
||||
default-jdk-headless bash-completion
|
||||
script:
|
||||
- ant debian
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
- tags
|
||||
|
||||
build_debian:buster:
|
||||
extends: .build_debian
|
||||
|
||||
build_debian:bullseye:
|
||||
image: debian:bullseye-slim
|
||||
extends: .build_debian
|
||||
|
||||
build_ubuntu-bionic:
|
||||
image: ubuntu:bionic
|
||||
extends: .build_debian
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get -qqqy install debhelper ant debconf gettext libgmp-dev po-debconf fakeroot
|
||||
build-essential quilt dh-apparmor libservice-wrapper-java libjson-simple-java
|
||||
devscripts libjetty9-java libtomcat9-java libtaglibs-standard-jstlel-java libgetopt-java
|
||||
bash-completion default-jdk-headless
|
||||
|
||||
10
.tx/config
10
.tx/config
@@ -595,8 +595,10 @@ source_lang = en
|
||||
;;trans.ar = installer/resources/eepsite/docroot/help/index_ar.html
|
||||
trans.az = installer/resources/eepsite/docroot/help/index_az.html
|
||||
trans.de = installer/resources/eepsite/docroot/help/index_de.html
|
||||
trans.el = installer/resources/eepsite/docroot/help/index_el.html
|
||||
;; not yet translated on TX, use old page
|
||||
;;trans.es = installer/resources/eepsite/docroot/help/index_es.html
|
||||
trans.fa = installer/resources/eepsite/docroot/help/index_fa.html
|
||||
trans.fr = installer/resources/eepsite/docroot/help/index_fr.html
|
||||
trans.hu = installer/resources/eepsite/docroot/help/index_hu.html
|
||||
;; Java converts id to in
|
||||
@@ -608,11 +610,10 @@ trans.pl = installer/resources/eepsite/docroot/help/index_pl.html
|
||||
trans.pt = installer/resources/eepsite/docroot/help/index_pt.html
|
||||
trans.ro = installer/resources/eepsite/docroot/help/index_ro.html
|
||||
trans.ru_RU = installer/resources/eepsite/docroot/help/index_ru.html
|
||||
;; not yet translated on TX, use old page
|
||||
;;trans.sv_SE = installer/resources/eepsite/docroot/help/index_sv.html
|
||||
trans.sv_SE = installer/resources/eepsite/docroot/help/index_sv.html
|
||||
trans.tr_TR = installer/resources/eepsite/docroot/help/index_tr.html
|
||||
;; not yet translated on TX, use old page
|
||||
;;trans.zh_CN = installer/resources/eepsite/docroot/help/index_zh.html
|
||||
trans.uk_UA = installer/resources/eepsite/docroot/help/index_uk.html
|
||||
trans.zh_CN = installer/resources/eepsite/docroot/help/index_zh.html
|
||||
|
||||
[I2P.readme]
|
||||
;;
|
||||
@@ -633,6 +634,7 @@ trans.pt = apps/routerconsole/resources/docs/readme_pt.html
|
||||
trans.ro = apps/routerconsole/resources/docs/readme_ro.html
|
||||
trans.ru_RU = apps/routerconsole/resources/docs/readme_ru.html
|
||||
trans.tr_TR = apps/routerconsole/resources/docs/readme_tr.html
|
||||
trans.uk_UA = apps/routerconsole/resources/docs/readme_uk.html
|
||||
trans.zh_CN = apps/routerconsole/resources/docs/readme_zh.html
|
||||
|
||||
[main]
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
export JAVA_HOME=/opt/jdk/jre
|
||||
|
||||
# Ensure user rights
|
||||
chown -R i2p:nobody /opt/i2p
|
||||
chmod -R u+rwx /opt/i2p
|
||||
|
||||
gosu i2p /opt/i2p/i2psvc /opt/i2p/wrapper.config wrapper.pidfile=/var/tmp/i2p.pid \
|
||||
wrapper.name=i2p \
|
||||
wrapper.displayname="I2P Service" \
|
||||
wrapper.statusfile=/var/tmp/i2p.status \
|
||||
wrapper.java.statusfile=/var/tmp/i2p.java.status \
|
||||
wrapper.logfile=/var/tmp/wrapper.log
|
||||
87
Dockerfile
87
Dockerfile
@@ -1,62 +1,47 @@
|
||||
FROM meeh/java8server:latest
|
||||
# Docker image based on Alpine with Java.
|
||||
# Use a multi-stage build to reduce the size of the resulting image
|
||||
# We need alpine >v3 in order to install an apache-ant > 1.9
|
||||
FROM alpine:3 as builder
|
||||
ENV I2P_PREFIX="/opt/i2p"
|
||||
|
||||
# We use Oracle Java to run I2P, but uses the openjdk to build it.
|
||||
WORKDIR /tmp/build
|
||||
COPY . ./
|
||||
|
||||
# Build installer
|
||||
RUN apk --no-cache add build-base gettext tar bzip2 apache-ant openjdk8 expect
|
||||
RUN echo "noExe=true" >> build.properties
|
||||
RUN ant installer-linux
|
||||
RUN mkdir -p /opt
|
||||
RUN mv i2pinstall*.jar /tmp/i2pinstall.jar
|
||||
|
||||
MAINTAINER Mikal Villa <mikal@sigterm.no>
|
||||
# Install i2p using the installer into I2P_PREFIX
|
||||
RUN expect -f ./Docker.expt
|
||||
RUN cd ${I2P_PREFIX}
|
||||
RUN rm -fr man docs *.bat *.command *.app
|
||||
|
||||
ENV GIT_BRANCH="master"
|
||||
# Second stage only using the installer from the last stage
|
||||
# ---------------------------------------------------------
|
||||
# We can't use alpine here as the java service wrapper is built with glibc
|
||||
# alpine uses musl
|
||||
FROM openjdk:11.0-jre-slim
|
||||
|
||||
ARG I2P_UID=1000
|
||||
ARG I2P_USER=i2p
|
||||
ENV I2P_PREFIX="/opt/i2p"
|
||||
ENV PATH=${I2P_PREFIX}/bin:$PATH
|
||||
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
|
||||
|
||||
ENV GOSU_VERSION=1.7
|
||||
ENV GOSU_SHASUM="34049cfc713e8b74b90d6de49690fa601dc040021980812b2f1f691534be8a50 /usr/local/bin/gosu"
|
||||
# "install" i2p by copying over installed files
|
||||
COPY --from=builder /opt/i2p ${I2P_PREFIX}
|
||||
COPY docker/* /opt/i2p/
|
||||
|
||||
RUN mkdir /user && adduser -S -h /user i2p && chown -R i2p:nobody /user
|
||||
# Setup user and fix permissions in
|
||||
RUN adduser --system --uid ${I2P_UID} --home /user ${I2P_USER} \
|
||||
&& chown -R ${I2P_USER} /user \
|
||||
&& chown -R ${I2P_USER} ${I2P_PREFIX} \
|
||||
&& chmod -R u+rwx ${I2P_PREFIX}
|
||||
|
||||
# Adding files first, since Docker.expt is required for installation
|
||||
ADD Docker.expt /tmp/Docker.expt
|
||||
ADD Docker.entrypoint.sh /entrypoint.sh
|
||||
EXPOSE 7654 7656 7657 7658 4444 6668 8998 7659 7660 4445
|
||||
|
||||
# Required for wget https
|
||||
RUN apk add --no-cache openssl
|
||||
# Gosu is a replacement for su/sudo in docker and not a backdoor :) See https://github.com/tianon/gosu
|
||||
RUN wget -O /usr/local/bin/gosu https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64 \
|
||||
&& echo "${GOSU_SHASUM}" | sha256sum -c && chmod +x /usr/local/bin/gosu
|
||||
|
||||
#
|
||||
# Each RUN is a layer, adding the dependencies and building i2pd in one layer takes around 8-900Mb, so to keep the
|
||||
# image under 200mb we need to remove all the build dependencies in the same "RUN" / layer.
|
||||
#
|
||||
|
||||
# The main layer
|
||||
RUN apk --no-cache add build-base git gettext tar bzip2 apache-ant openjdk8 expect \
|
||||
&& mkdir -p /usr/src/build \
|
||||
&& cd /usr/src/build \
|
||||
&& git clone -b ${GIT_BRANCH} https://github.com/i2p/i2p.i2p.git \
|
||||
&& cd /usr/src/build/i2p.i2p \
|
||||
&& echo "noExe=true" >> build.properties \
|
||||
&& ant installer-linux \
|
||||
&& cp i2pinstall*.jar /tmp/i2pinstall.jar \
|
||||
&& mkdir -p /opt \
|
||||
&& chown i2p:root /opt \
|
||||
&& chmod u+rw /opt \
|
||||
&& gosu i2p expect -f /tmp/Docker.expt \
|
||||
&& cd ${I2P_PREFIX} \
|
||||
&& rm -fr man docs *.bat *.command *.app /tmp/i2pinstall.jar /tmp/Docker.expt \
|
||||
&& rm -fr /usr/src/build \
|
||||
&& apk --purge del build-base apache-ant expect tcl expat git openjdk8 openjdk8-jre openjdk8-jre-base openjdk8-jre-lib bzip2 tar \
|
||||
binutils-libs binutils pkgconfig libcurl libc-dev musl-dev g++ make fortify-headers pkgconf giflib libssh2 libxdmcp libxcb \
|
||||
libx11 pcre alsa-lib libxi libxrender libxml2 readline bash openssl \
|
||||
&& rm -fr /usr/lib/jvm/default-jre \
|
||||
&& ln -sf /opt/jdk/jre /usr/lib/jvm/default-jre \
|
||||
&& chmod a+x /entrypoint.sh
|
||||
|
||||
|
||||
|
||||
EXPOSE 7654 7656 7657 7658 4444 6668 8998 7659 7660 4445 15000-20000
|
||||
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
USER i2p
|
||||
ENTRYPOINT [ "/opt/i2p/i2psvc" ]
|
||||
CMD [ "/opt/i2p/wrapper.config", "wrapper.pidfile=/var/tmp/i2p.pid", "wrapper.name=i2p", "wrapper.displayname=\"I2P Service\"" , "wrapper.statusfile=/var/tmp/i2p.status", "wrapper.java.statusfile=/var/tmp/i2p.java.status", "wrapper.logfile=/var/tmp/wrapper.log" ]
|
||||
|
||||
|
||||
132
Makefile.gcj
132
Makefile.gcj
@@ -1,132 +0,0 @@
|
||||
# Makefile for building native I2P binaries and libraries with GCJ
|
||||
#
|
||||
# WARNING: Do not use this yet, as it may explode (etc).
|
||||
#
|
||||
GCJ=gcj #/usr/local/gcc-4.0.2/bin/gcj
|
||||
EXTRA_LD_PATH= #/usr/local/gcc-4.0.2/lib
|
||||
ANT=ant #/opt/apache-ant-1.6.5/bin/ant
|
||||
ANT_TARGET=build2
|
||||
NATIVE_DIR=native
|
||||
|
||||
##
|
||||
# Define what jar files get into libi2p.so. The current setup is
|
||||
# *incredibly* lazy, throwing everything in the .so, rather than
|
||||
# give each .jar file its own .so.
|
||||
# i2p.jar: base SDK
|
||||
# mstreaming.jar: streaming API
|
||||
# streaming.jar: full streaming lib implementation
|
||||
# i2ptunnel.jar: I2PTunnel proxy
|
||||
# sam.jar: SAM bridge and API
|
||||
# i2psnark.jar: bittorrent client
|
||||
# router.jar: full I2P router
|
||||
# jbigi.jar: collection of native optimized GMP routines for crypto
|
||||
JAR_BASE=i2p.jar mstreaming.jar streaming.jar
|
||||
JAR_CLIENTS=i2ptunnel.jar sam.jar
|
||||
JAR_ROUTER=router.jar
|
||||
JAR_JBIGI=jbigi.jar
|
||||
JAR_CONSOLE=\
|
||||
javax.servlet.jar \
|
||||
commons-el.jar \
|
||||
commons-logging.jar \
|
||||
jasper-runtime.jar \
|
||||
jasper-compiler.jar \
|
||||
org.mortbay.jetty.jar \
|
||||
routerconsole.jar
|
||||
LIBI2P_JARS=${JAR_BASE} ${JAR_CLIENTS} ${JAR_ROUTER} ${JAR_JBIGI}
|
||||
LIBSAM_JARS=${JAR_BASE} sam.jar
|
||||
LIBROUTER_JARS=i2p.jar ${JAR_ROUTER} ${JAR_JBIGI}
|
||||
LIBCONSOLE_JARS=${LIBROUTER_JARS} ${JAR_CONSOLE}
|
||||
LIBSNARK_JARS=${LIBROUTER_JARS} i2psnark.jar
|
||||
# update:
|
||||
# similar error with gcj 4.3.3.
|
||||
#
|
||||
# unfortunately, its not quite ready for most end users, as the
|
||||
# ${JAR_CONSOLE} fails to compile with:
|
||||
# org/apache/commons/logging/impl/LogKitLogger.java: In class 'org.apache.commons.logging.impl.LogKitLogger':
|
||||
# .../LogKitLogger.java: In constructor '(java.lang.String)':
|
||||
# .../LogKitLogger.java:91: error: cannot find file for class org.apache.log.Hierarchy
|
||||
# .../LogKitLogger.java:91: error: cannot find file for class org.apache.log.Hierarchy
|
||||
# .../LogKitLogger.java:104: error: cannot find file for class org.apache.log.Hierarchy
|
||||
# .../LogKitLogger.java:104: confused by earlier errors, bailing out
|
||||
|
||||
#${JAR_CONSOLE}\
|
||||
#${JAR_XML} \
|
||||
#${JAR_SUCKER}
|
||||
#${JAR_CONSOLE}
|
||||
|
||||
SYSTEM_PROPS=-DloggerFilenameOverride=logs/log-router-@.txt \
|
||||
-Dorg.mortbay.http.Version.paranoid=true \
|
||||
-Dorg.mortbay.util.FileResource.checkAliases=false \
|
||||
-Dorg.mortbay.xml.XmlParser.NotValidating=true
|
||||
#SYSTEM_PROPS=-Di2p.weakPRNG=true
|
||||
OPTIMIZE=-O2
|
||||
#OPTIMIZE=-O3
|
||||
|
||||
LD_LIBRARY_PATH=${EXTRA_LD_PATH}:.
|
||||
|
||||
all: jars native
|
||||
@echo "* Build complete"
|
||||
|
||||
jars:
|
||||
@${ANT} ${ANT_TARGET}
|
||||
|
||||
clean: native_clean
|
||||
|
||||
native: native_clean native_shared
|
||||
@echo "* Native code build in ${NATIVE}"
|
||||
|
||||
native_clean:
|
||||
@rm -rf ${NATIVE_DIR}
|
||||
@mkdir ${NATIVE_DIR}
|
||||
|
||||
native_shared: libi2p.so
|
||||
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2p_dsa --main=net.i2p.crypto.DSAEngine
|
||||
@echo "* i2p_dsa is a simple test app with the DSA engine and Fortuna PRNG to make sure crypto is working"
|
||||
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/prng --main=gnu.crypto.prng.FortunaStandalone
|
||||
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2ptunnel --main=net.i2p.i2ptunnel.I2PTunnel
|
||||
@echo "* i2ptunnel is mihi's I2PTunnel CLI"
|
||||
@echo " run it as ./i2ptunnel -cli to avoid awt complaints"
|
||||
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2ptunnelctl --main=net.i2p.i2ptunnel.TunnelControllerGroup
|
||||
@echo "* i2ptunnelctl is a controller for I2PTunnel, reading i2ptunnel.config"
|
||||
@echo " and launching the appropriate proxies"
|
||||
#@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2psnark --main=org.klomp.snark.Snark
|
||||
#@echo "* i2psnark is an anonymous bittorrent client"
|
||||
@cd build ; ${GCJ} ${OPTIMIZE} -fjni -L../${NATIVE_DIR} -li2p ${SYSTEM_PROPS} -o ../${NATIVE_DIR}/i2prouter --main=net.i2p.router.Router
|
||||
@echo "* i2prouter is the main I2P router"
|
||||
@echo " it can be used, and while the router console won't load,"
|
||||
@echo " i2ptunnel will, so it will start all the proxies defined in i2ptunnel.config"
|
||||
|
||||
libi2p.so:
|
||||
@echo "* Building $@"
|
||||
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBI2P_JARS} ; cd .. )
|
||||
@ls -l ${NATIVE_DIR}/$@
|
||||
@echo "* $@ built"
|
||||
|
||||
sam: jars libi2psam.so
|
||||
|
||||
libi2psam.so:
|
||||
@echo "* Building $@"
|
||||
@rm -f ${NATIVE_DIR}/$@
|
||||
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBSAM_JARS} ; cd .. )
|
||||
@ls -l ${NATIVE_DIR}/$@
|
||||
@echo "* $@ built"
|
||||
|
||||
router: jars libi2prouter.so
|
||||
|
||||
libi2prouter.so:
|
||||
@echo "* Building $@"
|
||||
@rm -f ${NATIVE_DIR}/$@
|
||||
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBROUTER_JARS} ; cd .. )
|
||||
@ls -l ${NATIVE_DIR}/$@
|
||||
@echo "* $@ built"
|
||||
|
||||
console: jars libi2pconsole.so
|
||||
|
||||
# doesn't work, see above
|
||||
libi2pconsole.so:
|
||||
@echo "* Building $@"
|
||||
@rm -f ${NATIVE_DIR}/$@
|
||||
@(cd build ; time ${GCJ} ${OPTIMIZE} -fPIC -fjni -shared -o ../${NATIVE_DIR}/$@ ${LIBCONSOLE_JARS} ; cd .. )
|
||||
@ls -l ${NATIVE_DIR}/$@
|
||||
@echo "* $@ built"
|
||||
|
||||
@@ -5,18 +5,9 @@
|
||||
body {
|
||||
color: #31334f;
|
||||
font: 9pt "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Bitstream Vera Sans", Verdana, "Lucida Grande", Helvetica, sans-serif;
|
||||
background: linear-gradient(135deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
background: -webkit-linear-gradient(-45deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
|
||||
margin: 3px 4px;
|
||||
}
|
||||
|
||||
/* preload top navigation mouseovers */
|
||||
body {
|
||||
background: linear-gradient(135deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
background: -webkit-linear-gradient(-45deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
}
|
||||
|
||||
@supports (text-justify: auto) { /* only Firefox 55 or newer */
|
||||
body {
|
||||
background-attachment: fixed;
|
||||
@@ -2597,6 +2588,7 @@ input[type="submit"] {
|
||||
font-size: 12pt !important;
|
||||
padding: 4px 1px 3px !important;
|
||||
min-width: 300px;
|
||||
border-radius: 0px 0px 6px 6px;
|
||||
}
|
||||
|
||||
.snarkTorrentStatus b {
|
||||
@@ -2633,6 +2625,7 @@ input[type="submit"] {
|
||||
.snarkConfigTitle a {
|
||||
font-size: 12.5pt !important;
|
||||
margin-top: 0 !important;
|
||||
border-radius: 0px 0px 6px 6px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -298,7 +298,7 @@ public abstract class LocalHTTPServer {
|
||||
.append(conURL).append("help.jsp\">").append(_t("Help")).append("</a>");
|
||||
if (pm.isRegistered(PortMapper.SVC_SUSIDNS)) {
|
||||
buf.append(" <a href=\"").append(conURL).append("susidns/index\">")
|
||||
.append(_t("Addressbook")).append("</a>\n");
|
||||
.append(_t("Address book")).append("</a>\n");
|
||||
}
|
||||
buf.append("</div>" +
|
||||
"<div class=warning id=warning>\n" +
|
||||
@@ -368,13 +368,13 @@ public abstract class LocalHTTPServer {
|
||||
"<a href=\"" + conURL + "\" title=\"" + _t("Router Console") + "\"><img src=\"http://proxy.i2p/themes/console/images/i2plogo.png\" alt=\"I2P Router Console\" border=\"0\"></a><hr>\n" +
|
||||
"<a href=\"" + conURL + "config\">" + _t("Configuration") + "</a> <a href=\"" + conURL + "help.jsp\">" + _t("Help") + "</a>").getBytes("UTF-8"));
|
||||
if (pm.isRegistered(PortMapper.SVC_SUSIDNS))
|
||||
out.write((" <a href=\"" + conURL + "susidns/index\">" + _t("Addressbook") + "</a>\n").getBytes("UTF-8"));
|
||||
out.write((" <a href=\"" + conURL + "susidns/index\">" + _t("Address Book") + "</a>\n").getBytes("UTF-8"));
|
||||
out.write(("</div>" +
|
||||
"<div class=warning id=warning>\n" +
|
||||
"<h3>" +
|
||||
(success ?
|
||||
_t("Saved {0} to the {1} addressbook, redirecting now.", host, tbook) :
|
||||
_t("Failed to save {0} to the {1} addressbook, redirecting now.", host, tbook)) +
|
||||
_t("Saved {0} to the {1} address book, redirecting now.", host, tbook) :
|
||||
_t("Failed to save {0} to the {1} address book, redirecting now.", host, tbook)) +
|
||||
"</h3>\n<p><a href=\"" + url + "\">" +
|
||||
_t("Click here if you are not redirected automatically.") +
|
||||
"</a></p></div>").getBytes("UTF-8"));
|
||||
@@ -402,7 +402,7 @@ public abstract class LocalHTTPServer {
|
||||
"<a href=\"" + conURL + "\" title=\"" + _t("Router Console") + "\"><img src=\"http://proxy.i2p/themes/console/images/i2plogo.png\" alt=\"I2P Router Console\" border=\"0\"></a><hr>\n" +
|
||||
"<a href=\"" + conURL + "config\">" + _t("Configuration") + "</a> <a href=\"" + conURL + "help.jsp\">" + _t("Help") + "</a>").getBytes("UTF-8"));
|
||||
if (pm.isRegistered(PortMapper.SVC_SUSIDNS))
|
||||
out.write((" <a href=\"" + conURL + "susidns/index\">" + _t("Addressbook") + "</a>\n").getBytes("UTF-8"));
|
||||
out.write((" <a href=\"" + conURL + "susidns/index\">" + _t("Address Book") + "</a>\n").getBytes("UTF-8"));
|
||||
out.write(("</div>" +
|
||||
"<div class=warning id=warning>\n" +
|
||||
"<h3>" +
|
||||
|
||||
@@ -962,7 +962,7 @@
|
||||
<b><%=intl._t("Per Client")%>
|
||||
</b>
|
||||
</td><td>
|
||||
<input type="text" name="postMax" title="<%=intl._t("Maximum number of post requests permitted for a unique client for the configured timespan")%>" value="<%=editBean.getPostMax(curTunnel)%>" class="freetext quantity"/>
|
||||
<input type="text" name="postMax" title="<%=intl._t("Maximum number of post requests permitted for a unique client for the configured time span")%>" value="<%=editBean.getPostMax(curTunnel)%>" class="freetext quantity"/>
|
||||
</td><td colspan="2">
|
||||
<input type="text" name="postBanTime" title="<%=intl._t("If a client exceeds the maximum number of post requests per allocated period, enforce a ban for this number of minutes")%>" value="<%=editBean.getPostBanTime(curTunnel)%>" class="freetext period"/>
|
||||
<%=intl._t("minutes")%>
|
||||
@@ -972,7 +972,7 @@
|
||||
<b><%=intl._t("Total")%>
|
||||
</b>
|
||||
</td><td>
|
||||
<input type="text" name="postTotalMax" title="<%=intl._t("Total number of post requests permitted for the configured timespan")%>" value="<%=editBean.getPostTotalMax(curTunnel)%>" class="freetext quantity"/>
|
||||
<input type="text" name="postTotalMax" title="<%=intl._t("Total number of post requests permitted for the configured time span")%>" value="<%=editBean.getPostTotalMax(curTunnel)%>" class="freetext quantity"/>
|
||||
</td><td colspan="2">
|
||||
<input type="text" name="postTotalBanTime" title="<%=intl._t("If the maximum number of post requests per allocated period is exceeded, enforce a global access ban for this number of minutes")%>" value="<%=editBean.getPostTotalBanTime(curTunnel)%>" class="freetext period"/>
|
||||
<%=intl._t("minutes")%>
|
||||
@@ -982,7 +982,7 @@
|
||||
<b><%=intl._t("POST limit period")%>
|
||||
</b>
|
||||
</td><td colspan="2">
|
||||
<input type="text" name="postCheckTime" title="<%=intl._t("Timespan for the maximum number of post requests to be reached before a ban is triggered")%>" value="<%=editBean.getPostCheckTime(curTunnel)%>" class="freetext period"/>
|
||||
<input type="text" name="postCheckTime" title="<%=intl._t("Time span for the maximum number of post requests to be reached before a ban is triggered")%>" value="<%=editBean.getPostCheckTime(curTunnel)%>" class="freetext period"/>
|
||||
<%=intl._t("minutes")%>
|
||||
</td><td></td><td class="blankColumn"></td>
|
||||
</tr>
|
||||
|
||||
@@ -9,8 +9,6 @@ body {
|
||||
font-family: "Droid Sans", "Noto Sans", "Ubuntu", "Segoe UI", Verdana, Helvetica, sans-serif;
|
||||
color: #33333f;
|
||||
font-size: 9pt;
|
||||
background: linear-gradient(135deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
background: -webkit-linear-gradient(-45deg, #9dabd5 0%,#265ea7 53%,#222187 76%,#323638 100%);
|
||||
}
|
||||
|
||||
body.iframed {
|
||||
@@ -248,7 +246,6 @@ a.control {
|
||||
|
||||
.panel {
|
||||
width: calc(100% - 14px);
|
||||
max-width: 1400px;
|
||||
margin: 8px auto;
|
||||
min-width: 580px;
|
||||
overflow: hidden;
|
||||
@@ -258,7 +255,6 @@ a.control {
|
||||
box-shadow: inset 0 0 1px #999;
|
||||
background: #fff;
|
||||
background: linear-gradient(to right, #fff 0%, rgba(247, 248, 255, 0.5), #fff), linear-gradient(to bottom, #efefff, #fff, #efefff);
|
||||
border: 1px solid #447;
|
||||
filter: drop-shadow(0 0 1px #777);
|
||||
}
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
<%=intl._t("Websites outside I2P can also be reached if an HTTP proxy within I2P is known.")%>
|
||||
</td></tr>
|
||||
<tr><td>IRC</td><td>
|
||||
<%=intl._t("Customised client tunnel specific for IRC connections.")%>
|
||||
<%=intl._t("Customized client tunnel specific for IRC connections.")%>
|
||||
<%=intl._t("With this tunnel type, your IRC client will be able to connect to an IRC network inside I2P.")%>
|
||||
<%=intl._t("Each IRC network in I2P that you wish to connect to will require its own tunnel. (See Also, SOCKS IRC)")%>
|
||||
</td></tr>
|
||||
@@ -148,7 +148,7 @@
|
||||
<%=intl._t("This enables both TCP and UDP connections to be made through a SOCKS outproxy within I2P.")%>
|
||||
</td></tr>
|
||||
<tr><td>SOCKS IRC</td><td>
|
||||
<%=intl._t("A client tunnel implementing the SOCKS protocol, which is customised for connecting to IRC networks.")%>
|
||||
<%=intl._t("A client tunnel implementing the SOCKS protocol, which is customized for connecting to IRC networks.")%>
|
||||
<%=intl._t("With this tunnel type, IRC networks in I2P can be reached by typing the I2P address into your IRC client, and configuring the IRC client to use this SOCKS tunnel.")%>
|
||||
<%=intl._t("This means that only one I2P tunnel is required rather than a separate tunnel per IRC network.")%>
|
||||
<%=intl._t("IRC networks outside I2P can also be reached if a SOCKS outproxy within I2P is known, though it depends on whether or not the outproxy has been blocked by the IRC network.")%>
|
||||
@@ -160,11 +160,11 @@
|
||||
<%=intl._t("Try this if none of the tunnel types below fit your requirements, or you don't know what type of tunnel you need.")%>
|
||||
</td></tr>
|
||||
<tr><td>HTTP</td><td>
|
||||
<%=intl._t("A server tunnel that is customised for HTTP connections.")%>
|
||||
<%=intl._t("A server tunnel that is customized for HTTP connections.")%>
|
||||
<%=intl._t("Use this tunnel type if you want to host an I2P Site.")%>
|
||||
</td></tr>
|
||||
<tr><td>IRC</td><td>
|
||||
<%=intl._t("A customised server tunnel for hosting IRC networks inside I2P.")%>
|
||||
<%=intl._t("A customized server tunnel for hosting IRC networks inside I2P.")%>
|
||||
<%=intl._t("Usually, a separate tunnel needs to be created for each IRC server that is to be accessible inside I2P.")%>
|
||||
</td></tr><%
|
||||
}
|
||||
@@ -408,7 +408,7 @@
|
||||
<td>
|
||||
<p>
|
||||
<%=intl._t("The I2P router can automatically start this tunnel for you when the router is started.")%>
|
||||
<%=intl._t("This can be useful for frequently-used tunnels (especially server tunnels), but for tunnels that are only used occassionally it would mean that the I2P router is creating and maintaining unnecessary tunnels.")%>
|
||||
<%=intl._t("This can be useful for frequently-used tunnels (especially server tunnels), but for tunnels that are only used occasionally it would mean that the I2P router is creating and maintaining unnecessary tunnels.")%>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -172,7 +172,7 @@ public class ErrorServlet extends HttpServlet {
|
||||
*/
|
||||
protected void outputMessage(PrintWriter out, int errorCode, String errorMsg, String errorURI, Throwable errorCause) {
|
||||
if (errorCode == 404) {
|
||||
out.println(_t("Sorry! You appear to be requesting a non-existent Router Console page or resource."));
|
||||
out.println(_t("Sorry! You appear to be requesting a nonexistent Router Console page or resource."));
|
||||
out.println("<hr>");
|
||||
out.println(_t("Error {0}", 404) + ": " + errorURI + " " + _t("not found"));
|
||||
} else if (errorCode == 403 || errorCode >= 500 || errorCause != null) {
|
||||
|
||||
@@ -246,7 +246,7 @@ public class ConfigClientsHelper extends HelperBase {
|
||||
else if (app.equals("imagegen"))
|
||||
desc = _t("Identification Image Generator");
|
||||
else if (app.equals("susidns"))
|
||||
desc = _t("Addressbook");
|
||||
desc = _t("Address Book");
|
||||
else if (app.equals("susimail"))
|
||||
desc = _t("Email");
|
||||
else
|
||||
|
||||
@@ -160,7 +160,7 @@ public class ConfigKeyringHandler extends FormHandler {
|
||||
_context.netDb().setBlindData(bdout);
|
||||
addFormNotice(_t("Key for {0} added to keyring", bdout.toBase32()));
|
||||
if (_mode == 6 || _mode == 7) {
|
||||
addFormNotice(_t("Send key to server opererator.") + ' ' + pk.toPublic().toBase64());
|
||||
addFormNotice(_t("Send key to server operator.") + ' ' + pk.toPublic().toBase64());
|
||||
}
|
||||
} catch (IllegalArgumentException iae) {
|
||||
addFormError(_t("Invalid destination") + ": " + iae.getLocalizedMessage());
|
||||
|
||||
@@ -45,7 +45,7 @@ public class HomeHelper extends HelperBase {
|
||||
_x("Hidden Services Manager") + S + _x("Control your client and server tunnels") + S + "/i2ptunnelmgr" + S + I + "server_32x32.png" + S +
|
||||
_x("Torrents") + S + _x("Built-in anonymous BitTorrent Client") + S + "/torrents" + S + I + "i2psnark.png" + S +
|
||||
_x("Web Server") + S + _x("Local web server for hosting your own content on I2P") + S + "http://127.0.0.1:7658/" + S + I + "server_32x32.png" + S +
|
||||
_x("Addressbook") + S + _x("Manage your I2P hosts file here (I2P domain name resolution)") + S + "/dns" + S + I + "book_addresses.png" + S +
|
||||
_x("Address Book") + S + _x("Manage your I2P hosts file here (I2P domain name resolution)") + S + "/dns" + S + I + "book_addresses.png" + S +
|
||||
"";
|
||||
|
||||
/** @since 0.9.44 */
|
||||
|
||||
@@ -540,9 +540,9 @@ class NetDbRenderer {
|
||||
String b32 = key.toBase32();
|
||||
buf.append("<a href=\"http://").append(b32).append("\">").append(b32).append("</a></td>");
|
||||
if (linkSusi && !unpublished && host == null) {
|
||||
buf.append("<td class=\"addtobook\" colspan=\"2\">").append("<a title=\"").append(_t("Add to addressbook"))
|
||||
buf.append("<td class=\"addtobook\" colspan=\"2\">").append("<a title=\"").append(_t("Add to address book"))
|
||||
.append("\" href=\"/susidns/addressbook.jsp?book=private&destination=")
|
||||
.append(dest.toBase64()).append("#add\">").append(_t("Add to local addressbook")).append("</a></td>");
|
||||
.append(dest.toBase64()).append("#add\">").append(_t("Add to local address book")).append("</a></td>");
|
||||
} // else probably a client
|
||||
}
|
||||
} else {
|
||||
@@ -563,9 +563,9 @@ class NetDbRenderer {
|
||||
buf.append(" colspan=\"2\"");
|
||||
buf.append("><a href=\"http://").append(b32).append("\">").append(b32).append("</a></td>\n");
|
||||
if (linkSusi && dest != null) {
|
||||
buf.append("<td class=\"addtobook\"><a title=\"").append(_t("Add to addressbook"))
|
||||
buf.append("<td class=\"addtobook\"><a title=\"").append(_t("Add to address book"))
|
||||
.append("\" href=\"/susidns/addressbook.jsp?book=private&destination=")
|
||||
.append(dest.toBase64()).append("#add\">").append(_t("Add to local addressbook")).append("</a></td>");
|
||||
.append(dest.toBase64()).append("#add\">").append(_t("Add to local address book")).append("</a></td>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,8 +258,8 @@ public class PeerHelper extends HelperBase {
|
||||
.append("<tr><td><b id=\"def.up\">").append(_t("Up")).append("</b></td><td>").append(_t("How long ago this connection was established")).append("</td></tr>\n")
|
||||
.append("<tr><td><b id=\"def.skew\">").append(_t("Skew")).append("</b></td><td>").append(_t("The difference between the peer's clock and your own")).append("</td></tr>\n");
|
||||
if (isAdvanced()) {
|
||||
buf.append("<tr><td><b id=\"def.cwnd\">CWND</b></td><td>").append(_t("The congestion window, which is how many bytes can be sent without an acknowledgement")).append(" /<br>\n")
|
||||
.append(_t("The number of sent messages awaiting acknowledgement")).append(" /<br>\n")
|
||||
buf.append("<tr><td><b id=\"def.cwnd\">CWND</b></td><td>").append(_t("The congestion window, which is how many bytes can be sent without an acknowledgment")).append(" /<br>\n")
|
||||
.append(_t("The number of sent messages awaiting acknowledgment")).append(" /<br>\n")
|
||||
.append(_t("The maximum number of concurrent messages to send")).append(" /<br>\n")
|
||||
.append(_t("The number of pending sends which exceed congestion window")).append("</td></tr>\n")
|
||||
.append("<tr><td><b id=\"def.ssthresh\">SST</b></td><td>").append(_t("The slow start threshold")).append("</td></tr>\n")
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
package net.i2p.router.web.helpers;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.router.RouterAddress;
|
||||
import net.i2p.data.router.RouterInfo;
|
||||
import net.i2p.data.Signature;
|
||||
import net.i2p.router.web.HelperBase;
|
||||
|
||||
/**
|
||||
* Sign a statement about this router.
|
||||
* @since 0.9.8
|
||||
*/
|
||||
public class ProofHelper extends HelperBase {
|
||||
|
||||
public String getProof() {
|
||||
StringBuilder buf = new StringBuilder(512);
|
||||
RouterInfo us = _context.router().getRouterInfo();
|
||||
buf.append("Hash: ").append(us.getIdentity().calculateHash().toBase64()).append('\n');
|
||||
//buf.append("Ident: ").append(us.getIdentity().toBase64()).append('\n');
|
||||
for (RouterAddress addr : us.getAddresses()) {
|
||||
buf.append(addr.getTransportStyle()).append(": ").append(addr.getHost()).append('\n');
|
||||
}
|
||||
buf.append("Caps: ").append(us.getCapabilities()).append('\n');
|
||||
buf.append("Date: ").append(new Date()); // no trailing newline
|
||||
String msg = buf.toString();
|
||||
byte[] data = DataHelper.getUTF8(msg);
|
||||
Signature sig = _context.dsa().sign(data, _context.keyManager().getSigningPrivateKey());
|
||||
buf.setLength(0);
|
||||
buf.append("---BEGIN I2P SIGNED MESSAGE---\n");
|
||||
buf.append(msg);
|
||||
buf.append("\n---BEGIN I2P SIGNATURE---\n");
|
||||
buf.append(sig.toBase64());
|
||||
buf.append("\n---END I2P SIGNATURE---");
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
||||
@@ -343,7 +343,7 @@ class SummaryBarRenderer {
|
||||
StringBuilder rbuf = new StringBuilder(128);
|
||||
PortMapper pm = _context.portMapper();
|
||||
if (pm.isRegistered(PortMapper.SVC_SUSIDNS)) {
|
||||
String tx = _t("Addressbook");
|
||||
String tx = _t("Address Book");
|
||||
rbuf.append("<a href=\"/dns\" target=\"_top\" title=\"")
|
||||
.append(_t("Manage your I2P hosts file here (I2P domain name resolution)"))
|
||||
.append("\">")
|
||||
@@ -531,15 +531,6 @@ class SummaryBarRenderer {
|
||||
.append("</a>\n");
|
||||
svcs.put(tx, rbuf.toString());
|
||||
|
||||
tx = _t("Proof");
|
||||
rbuf.setLength(0);
|
||||
rbuf.append("<a title=\"")
|
||||
.append(_t("Signed proof of ownership of this router"))
|
||||
.append("\" href=\"/proof\" target=\"_top\">")
|
||||
.append(nbsp(tx))
|
||||
.append("</a>\n");
|
||||
svcs.put(tx, rbuf.toString());
|
||||
|
||||
tx = _t("Stats");
|
||||
rbuf.setLength(0);
|
||||
rbuf.append("<a href=\"/stats\" target=\"_top\" title=\"")
|
||||
|
||||
@@ -25,7 +25,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
|
||||
<div class="configure">
|
||||
<h3 id="webappconfig"><a name="webapp"></a><%=intl._t("WebApp Configuration")%></h3><p>
|
||||
<p class="infohelp" id="webappconfigtext">
|
||||
<%=intl._t("The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark), front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. addressbook).")%>
|
||||
<%=intl._t("The Java web applications listed below are started by the webConsole client and run in the same JVM as the router. They are usually web applications accessible through the router console. They may be complete applications (e.g. i2psnark), front-ends to another client or application which must be separately enabled (e.g. susidns, i2ptunnel), or have no web interface at all (e.g. address book).")%>
|
||||
<%=intl._t("A web app may also be disabled by removing the .war file from the webapps directory; however the .war file and web app will reappear when you update your router to a newer version, so disabling the web app here is the preferred method.")%>
|
||||
</p><div class="wideload">
|
||||
<form action="configwebapps" method="POST">
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html><head>
|
||||
<%@include file="css.jsi" %>
|
||||
<%=intl.title("addressbook")%>
|
||||
<%=intl.title("Address Book")%>
|
||||
<script src="/js/iframed.js?<%=net.i2p.CoreVersion.VERSION%>" type="text/javascript"></script>
|
||||
<%@include file="summaryajax.jsi" %>
|
||||
<script nonce="<%=cspNonce%>" type="text/javascript">
|
||||
@@ -41,7 +41,7 @@
|
||||
</script>
|
||||
</head><body>
|
||||
<%@include file="summary.jsi" %>
|
||||
<h1><%=intl._t("I2P Addressbook")%> <span class="newtab"><a href="/susidns/index" target="_blank" title="<%=intl._t("Open in new tab")%>"><img src="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/newtab.png" /></a></span></h1>
|
||||
<h1><%=intl._t("I2P Address Book")%> <span class="newtab"><a href="/susidns/index" target="_blank" title="<%=intl._t("Open in new tab")%>"><img src="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/newtab.png" /></a></span></h1>
|
||||
<div class="main" id="dns">
|
||||
<iframe src="/susidns/index" width="100%" height="100%" frameborder="0" border="0" name="susidnsframe" id="susidnsframe" allowtransparency="true">
|
||||
<%=intl._t("Your browser does not support iFrames.")%>
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
<%@include file="summary.jsi" %>
|
||||
<h1><%=ERROR_CODE%> <%=ERROR_MESSAGE%></h1>
|
||||
<div class="sorry" id="warning">
|
||||
<%=intl._t("Sorry! You appear to be requesting a non-existent Router Console page or resource.")%><hr>
|
||||
<%=intl._t("Sorry! You appear to be requesting a nonexistent Router Console page or resource.")%><hr>
|
||||
<%=intl._t("Error 404")%>: <%=ERROR_URI%> <%=intl._t("not found")%>.
|
||||
</div></body></html>
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<%@page contentType="text/html"%>
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html><head>
|
||||
<%@include file="css.jsi" %>
|
||||
<%=intl.title("Proof")%>
|
||||
<%@include file="summaryajax.jsi" %>
|
||||
</head><body>
|
||||
<%@include file="summary.jsi" %><h1>Proof of Ownership</h1>
|
||||
<div class="main" id="proof"><p>
|
||||
<jsp:useBean class="net.i2p.router.web.helpers.ProofHelper" id="proofHelper" scope="request" />
|
||||
<jsp:setProperty name="proofHelper" property="contextId" value="<%=i2pcontextId%>" />
|
||||
<textarea cols="70" rows="15" wrap="off" readonly="readonly" spellcheck="false"><jsp:getProperty name="proofHelper" property="proof" /></textarea>
|
||||
</p></div></body></html>
|
||||
@@ -4994,30 +4994,6 @@ ul#banlist + hr {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#proof p {
|
||||
margin: 15px;
|
||||
padding: 30px 5px 0;
|
||||
border: 1px solid #000;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #020, 0 0 1px #000;
|
||||
background: url(/themes/console/images/info/rosette.png) right 8px top 8px no-repeat #001900;
|
||||
background: url(/themes/console/images/info/rosette.png) right 8px top 8px no-repeat rgba(0,32,0,0.4);
|
||||
background-blend-mode: color-burn;
|
||||
}
|
||||
|
||||
#proof textarea {
|
||||
line-height: 160%;
|
||||
font-size: 9pt;
|
||||
overflow: hidden;
|
||||
word-break: break-all;
|
||||
white-space: pre-wrap;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
#proof textarea:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#oldconsole p {
|
||||
margin: 15px 0 10px;
|
||||
padding: 10px 20px;
|
||||
@@ -5445,21 +5421,6 @@ table#leasesetdebug th a:hover, table#leasesetsummary th a:hover {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.main#proof {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.main#proof textarea, .main#proof textarea:focus {
|
||||
padding: 5px 20px;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
border: none;
|
||||
background: none !important;
|
||||
box-shadow: none;
|
||||
color: #e6e6e7 !important;
|
||||
filter: none;
|
||||
}
|
||||
|
||||
#leasesetdebug, #leasesetsummary {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -265,7 +265,7 @@ h3#helpfaq {
|
||||
margin: -7px;
|
||||
padding: 6px 2px !important;
|
||||
background: #dee2e6;
|
||||
|
||||
border-radius: 6px;
|
||||
text-decoration: none !important;
|
||||
color: #343a40;
|
||||
box-shadow: inset 0 0 0 1px #dee2e6;
|
||||
@@ -1270,7 +1270,7 @@ p:empty + .sb_notice {
|
||||
box-shadow: inset 0 0 0 1px #dee2e6;
|
||||
}
|
||||
|
||||
.news, .main#news, .main#proof, .main#oldconsole, #warning2 {
|
||||
.news, .main#news, .main#oldconsole, #warning2 {
|
||||
background: #f6f6fa;
|
||||
background-size: 100% 100%, auto 160px, 100% 100% !important;
|
||||
}
|
||||
@@ -1292,7 +1292,7 @@ p:empty + .sb_notice {
|
||||
min-width: 546px;
|
||||
}
|
||||
|
||||
.main#proof, .main#oldconsole {
|
||||
.main#oldconsole {
|
||||
background-size: 100% 100%, auto 70%, 100% 100% !important;
|
||||
}
|
||||
|
||||
@@ -1328,6 +1328,7 @@ p:empty + .sb_notice {
|
||||
.main#tunnelmgr {
|
||||
padding: 0 10px;
|
||||
min-width: 556px;
|
||||
height: 150%;
|
||||
}
|
||||
|
||||
#i2ptunnelframe {
|
||||
@@ -6423,7 +6424,7 @@ h3#ntcpcon, h3#udpcon {
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
#oldconsole p, #proof p {
|
||||
#oldconsole p {
|
||||
margin: 20px 5px 10px;
|
||||
padding: 10px 0;
|
||||
line-height: 180%;
|
||||
@@ -6441,39 +6442,6 @@ h3#ntcpcon, h3#udpcon {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#proof textarea, #proof textarea:focus, #proof p {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
#proof p {
|
||||
margin: 15px 0 5px !important;
|
||||
padding: 15px 0 0 20px !important;
|
||||
width: calc(100% - 22px);
|
||||
}
|
||||
|
||||
#proof p::before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
background: url(/themes/console/images/info/rosette.png) right 5px top no-repeat !important;
|
||||
background-size: 24px 24px;
|
||||
height: 32px;
|
||||
width: 100%;
|
||||
margin: -8px 0 -10px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
#proof textarea, #proof textarea:focus {
|
||||
background: none;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
color: #33333f !important;
|
||||
filter: none;
|
||||
outline: none;
|
||||
line-height: 160%;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.homelinkedit th:first-child, #sidebarconf th:first-child, #consolepass th:first-child {
|
||||
text-align: center;
|
||||
background: #f6f6ff url(/themes/console/images/buttons/delete.png) center center no-repeat !important;
|
||||
@@ -7429,17 +7397,6 @@ input[name="pluginURL"] {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.main#proof {
|
||||
padding: 0;
|
||||
min-width: 576px;
|
||||
}
|
||||
|
||||
.main#proof textarea {
|
||||
margin: -5px 10px !important;
|
||||
word-break: break-all;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.cells {
|
||||
padding: 3px 2px !important;
|
||||
}
|
||||
@@ -7502,20 +7459,6 @@ input[name="pluginURL"] {
|
||||
width: 100px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#proof p {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#proof p::before {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#proof textarea {
|
||||
padding-right: 15px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1500px) {
|
||||
|
||||
@@ -10,7 +10,7 @@ pre {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#help pre, #logs li, #proof textarea {
|
||||
#help pre, #logs li {
|
||||
text-align: left;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@
|
||||
<%=intl._t("There is a quick guide, news about the latest release, an FAQ, and troubleshooting guide available on the {0}console{1} page.", "<a href=\"/console\" target=\"_blank\">", "</a>")%>
|
||||
</p><p>
|
||||
<%=intl._t("You may notice a message in the sidebar that I2P is rejecting tunnels.")%>
|
||||
<%=intl._t("This is normal behavior as part of the start-up process, to make sure that your router is ready to help others with participating traffic.")%>
|
||||
<%=intl._t("This is normal behavior as part of the startup process, to make sure that your router is ready to help others with participating traffic.")%>
|
||||
<%=intl._t("When the connection indicators in the sidebar turn green, you are ready to explore the Invisible Internet.")%>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -25,7 +25,7 @@ Once green circles are indicated next to your <i>Local Tunnels</i>, there is a w
|
||||
<li><b>Hidden Services and Public Web Browsing</b><br>
|
||||
On I2P you can access hidden service websites ("I2P sites") and other services, and you can host your own services.
|
||||
You can also access the normal web anonymously via I2P's built-in web proxy (outproxy).
|
||||
<a href="https://geti2p.net/en/about/browser-config" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to a I2P Site or a web-site at an <code>http://</code> address.
|
||||
<a href="https://geti2p.net/en/about/browser-config" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to a I2P Site or a web-site at an <code>http://</code> or <code>https://</code> address.
|
||||
If you wish to disable or change outproxy access to the non-anonymous internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>.
|
||||
In the "Sites of Interest" section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.<br>
|
||||
There are also a number of semi-official and unofficial efforts to build browsing tools for I2P,
|
||||
|
||||
@@ -2,83 +2,95 @@
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Starting Up</b><br>
|
||||
If you've just started I2P, the number of <i>Active Peers</i> indicated under the <i>Peers</i> section in the side panel on the left should start to grow over the next few minutes.
|
||||
When your router is ready, you'll also see a <i>Local Tunnel</i> named <i>Shared Clients</i> listed there, and possibly other clients and servers.
|
||||
If not, see the troubleshooting section <a href="#trouble">below</a>.
|
||||
These <i>Local Tunnels</i> provide connections to the I2P network, enabling your bittorrent, email, web proxy and other services.
|
||||
Your <a href="/netdb">Network Database</a> indicates all known peers on the network.
|
||||
Additionally, you can monitor existing <a href="/peers">Peer Connections</a>, and view existing <a href="/tunnels">Tunnels</a> and their status.
|
||||
More information is available on the <a href="/help">help page</a>.</li>
|
||||
<b>起動</b><br>
|
||||
I2Pを起動すると、左サイドパネルの<i>ピア</i>セクションの下に表示される<i>アクティブピア</i>の数が、数分のうちに増えていくはずです。
|
||||
ルータの準備が整うと、<i>共有クライアント</i>という名の<i>ローカルトンネル</i>が一覧され、また他クライアントやサーバも見えるかもしれません。
|
||||
そうならない場合は<a href="#trouble">下記</a>のトラブルシューティングの章を参照してください。
|
||||
これら<i>ローカルトンネル</i>がI2Pネットワークへの接続を提供し、BitTorrent、メール、Webプロキシなどのサービスが利用可能になります。
|
||||
<a href="/netdb">ネットワークデータベース</a>ではネットワーク上の既知の全ピアを表示しています。
|
||||
さらに、既存の<a href="/peers">ピア接続</a>を監視したり、既存<a href="/tunnels">トンネル</a>とその状態を閲覧できます。
|
||||
詳しい情報は<a href="/help">ヘルプページ</a>で確認可能。</li>
|
||||
|
||||
<li>
|
||||
<b>Network Integration</b><br>
|
||||
When you start I2P, it may take a few minutes to bootstrap (integrate) your router into the network and find additional peers, so please be patient.
|
||||
When I2P starts up, and during normal operation, I2P's tunnel build readiness indicator in the side panel may indicate that I2P is "Rejecting Tunnels"; this is normal behavior.
|
||||
Once green circles are indicated next to your <i>Local Tunnels</i>, there is a wide variety of things you can do with I2P, and below we introduce you to some of them.</li>
|
||||
<b>ネットワーク統合</b><br>
|
||||
I2Pを起動すると、ルータをネットワークに立ち上げ(統合し)て追加のピアを見つけるまで数分かかります。気長にお待ちください。
|
||||
I2Pの起動時、また通常動作中に、サイドパネルのI2Pトンネル構築準備インジケータが、
|
||||
I2Pが「トンネルを拒否している」ような表示をするかもしれませんが、これは通常の振る舞いです、
|
||||
<i>ローカルトンネル</i>の隣に緑の丸が表示されたら、I2Pで様々なことができるようになります。
|
||||
以下でそれらのいくつかを紹介します。</li>
|
||||
|
||||
</ul>
|
||||
<h3>I2Pにおける諸サービス</h3>
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Hidden Services and Public Web Browsing</b><br>
|
||||
On I2P you can access hidden service websites ("I2P sites") and other services, and you can host your own services.
|
||||
You can also access the normal web anonymously via I2P's built-in web proxy (outproxy).
|
||||
<a href="https://geti2p.net/en/about/browser-config" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to a I2P Site or a web-site at an <code>http://</code> address.
|
||||
If you wish to disable or change outproxy access to the non-anonymous internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>.
|
||||
In the "Sites of Interest" section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.<br>
|
||||
There are also a number of semi-official and unofficial efforts to build browsing tools for I2P,
|
||||
including a <a href="https://geti2p.net/en/download/firefox">preconfigured Firefox Browser profile</a>,
|
||||
<a href="http://idk.i2p/I2P-in-Private-Browsing-Mode-Firefox">an easy-to-install WebExtension</a>,
|
||||
or via <a href="https://www.whonix.org/wiki/I2P">automatic launchers in privacy-focused Linux distributions like Whonix</a>.
|
||||
While these are all interesting projects, please evaluate them to see if they fit within your personal threat
|
||||
model before trusting them with your well-being.</li>
|
||||
<b>秘匿サービスと公開Web閲覧</b><br>
|
||||
I2Pでは秘匿サービスWebサイト(「I2Pサイト」)や他サービスにアクセスでき、また自分のサービスを提供することができます。
|
||||
また通常のWebにもI2P組み込みのWebプロキシ(アウトプロキシ)経由で匿名でアクセスできます。
|
||||
HTTPプロキシを<code>127.0.0.1 ポート4444</code>を使うよう<a href="https://geti2p.net/en/about/browser-config" target="_blank">ブラウザを設定</a>し、それからI2Pサイトや<code>http://</code>アドレスのWebサイトを閲覧してください。
|
||||
アウトプロキシアクセスを非匿名インターネットに無効化または変更したい場合は、
|
||||
<a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP プロキシトンネルエディタ</a> の <i>アウトプロキシ</i>オプション下の
|
||||
<code>false.i2p</code>用のアウトプロキシエントリを削除または編集してください。
|
||||
<a href="#eepsites">下記</a>「興味深いI2Pの秘匿サービス」の章で、I2Pで提供されているサイトをいくつかまとめています。<br>
|
||||
また、半公式または非公式的にたくさんのI2P閲覧ツール作成が試みられています。
|
||||
例えば、<a href="https://geti2p.net/en/download/firefox">設定済みFirefoxブラウザプロファイル</a>、
|
||||
<a href="http://idk.i2p/I2P-in-Private-Browsing-Mode-Firefox">簡単にインストールできるブラウザ拡張機能</a>、
|
||||
<a href="https://www.whonix.org/wiki/I2P">Whonixのようなプライバシー重視のLinuxディストリビューションでの自動ランチャー</a>など。
|
||||
これらはどれも興味深いプロジェクトですが、
|
||||
あなた個人の脅威モデルに合うかどうかを評価してから万全の信頼をするようにしてください。</li>
|
||||
|
||||
<li>
|
||||
<b>Anonymous Email</b><br>
|
||||
Postman's I2P-based mail system can be accessed either via <a href="/webmail">I2P's built-in mail client</a> or with any external mail client.
|
||||
Accounts can send and receive mail from the normal internet.
|
||||
For an account, visit <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>.</li>
|
||||
<b>匿名メール</b><br>
|
||||
PostmanによるI2P用メールシステムが、<a href="/webmail">I2P組み込みメールクライアント</a>またはお好きな外部メールクライアントからアクセスできます。
|
||||
アカウントは通常のインターネットへメールの送受信ができます。アカウントについては <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a> を参照。</li>
|
||||
|
||||
<li>
|
||||
<b>匿名ファイル送信</b><br><a href="/torrents">I2PSnark</a> はI2Pに統合されており、匿名の暗号化されたBitTorrent送信を提供します。</li>
|
||||
<li>
|
||||
<b>Anonymous Chat</b><br>
|
||||
Start your IRC client (e.g. HexChat) and connect to the <a href="irc://127.0.0.1:6668/i2p">server</a> at <code>127.0.0.1 port 6668</code>.
|
||||
You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host).
|
||||
Your local I2P IRC tunnel on <code>localhost:6668</code> will direct you to one of three IRC servers hosted on I2P by Postman, echelon and zl0, but neither you nor they know where the other is, and your communcations are encrypted in transit by I2P to prevent interception.
|
||||
Once you're there, <code>#i2p-chat</code> and <code>#i2p-dev</code> are just a few of the available channels you may wish to join.
|
||||
I2P is also suitable for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat, and more.
|
||||
You may run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own <a href="http://i2p-projekt.i2p/applications.html" target="_blank">I2P applications</a>.
|
||||
Both UDP and TCP protocols are <a href="http://i2p-projekt.i2p/techintro.html#op.transport" target="_blank">supported</a>.
|
||||
We also provide full access to the <a href="http://echelon.i2p/javadoc/" target="_blank">Java API</a>.</li>
|
||||
<b>匿名チャット</b><br>
|
||||
IRCクライアント(例えば HexChat)を起動して<code> 127.0.0.1 ポート6668</code> の<a href="irc://127.0.0.1:6668/i2p">サーバ</a>に接続してください。
|
||||
IRCクライアントにプロキシを設定する必要はありません; I2PがローカルIRCトンネルを提供します(IRCクライアントでIRCサーバまたはリモートホストとして設定される)。
|
||||
<code>localhost:6668</code> のローカルI2P IRCトンネルは、Postman・Echlon・zl0がI2P上で提供する3つのIRCサーバのうち1つへ案内します。
|
||||
しかしあなたと彼らはどちらも誰がどこにいるのか知りませんし、
|
||||
やり取りは傍受防止のためI2Pによる輸送の中で暗号化されます。
|
||||
ここまでくれば、<code>#i2p-chat</code> と <code>#i2p-dev</code> はあなたが参加したいと思うような利用可能チャンネルのほんの一部にすぎません。
|
||||
またI2Pは監視不能・検閲不能な匿名チャットに向いています。代替IRCサーバ、Jabberサーバ、Webサイトベースのチャットなどにもいいでしょう。
|
||||
I2P上にあなたの好きなタイプの自サーバを立てたり、開発者であれば自分の<a href="http://i2p-projekt.i2p/applications.html" target="_blank">I2Pアプリ</a>を作るのもよいでしょう。
|
||||
UDPとTCPプロトコルの両方が<a href="http://i2p-projekt.i2p/techintro.html#op.transport" target="_blank">サポート</a>されています。また<a href="http://echelon.i2p/javadoc/" target="_blank">Java API</a>へのフルアクセスを提供しています。</li>
|
||||
|
||||
<li>
|
||||
<b>Forums and Blogging</b><br>
|
||||
All normal blogging, forum and CMS software will run over I2P, though you're advised to take extra precautions with security when setting up and to keep all associated software (e.g. Php, MySql, Python, Apache) up to date and locked-down!
|
||||
Also, there are quite a few community run forums on I2P in various languages; see <a href="#eepsites">below</a> for some suggestions.</li>
|
||||
<b>フォーラムとブログ</b><br>
|
||||
普通のブログ、フォーラム、CMSソフトウェアは全てI2P上で動作するでしょう。
|
||||
ただし、設定時セキュリティに関し特別の用心をすること、
|
||||
全ての関連ソフトウェア(例えば Php、MySQL、Python、Apache)を最新の状態にしロックすることを推奨します。
|
||||
また、I2P上で様々な言語でフォーラムを運営するコミュニティがかなり多数あります; <a href="#eepsites">以下</a>の紹介を参照。</li>
|
||||
|
||||
<li>
|
||||
<a name="plugins"></a><b>Plugins for I2P</b><br>
|
||||
Extend the usefulness of I2P by installing plugins: blogging, chatting, file sharing and other plugins have already been written or ported and await your <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">installation</a>!
|
||||
Browse the plugins and related info at <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">wiki.i2p-projekt.i2p</a>.
|
||||
If you're a <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">developer</a>, a complete framework for writing your own plugins is provided with <a href="http://i2p-projekt.i2p/plugins.html" target="_blank">documentation</a>.</li>
|
||||
<a name="plugins"></a><b>I2P用プラグイン</b><br>
|
||||
プラグインをインストールしてI2Pの有用性を拡張してください:
|
||||
ブログ、チャット、ファイル共有などのプラグインが既に作成・移植され、あなたの<a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">インストール</a>を待ち構えています!
|
||||
プラグインや関連情報を <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">wiki.i2p-projekt.i2p</a> で閲覧してください。
|
||||
<a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">開発者</a>であれば、オリジナルのプラグインを書くための完結したフレームワークが<a href="http://i2p-projekt.i2p/plugins.html" target="_blank">ドキュメント</a>と共に提供されています。</li>
|
||||
|
||||
</ul>
|
||||
<h3>I2Pにおける匿名の暗号化されたウェブホスティング</h3>
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Built-in Web-Server</b><br>
|
||||
I2P comes with a built-in web server for hosting your own hidden service website ("eepsite") on the I2P network: a <a href="https://www.eclipse.org/jetty/" target="_blank">Jetty</a> instance listening on <a href="http://127.0.0.1:7658/" target="_blank">http://127.0.0.1:7658/</a>.
|
||||
To host your own content, simply place your files in the <code>eepsite/docroot/</code> directory (or place any standard JSP/Servlet .war files under <code>eepsite/webapps</code>, or standard CGI scripts under <code>eepsite/cgi-bin</code>) and they'll show up.
|
||||
You can also run any alternative web server platform over I2P and replace the built-in server, or run it on another tunnel.</li>
|
||||
<b>組み込みのWebサーバ</b><br>
|
||||
I2Pネットワーク上での秘匿サービスWebサイト(「eepsite」)ホスティング用に、I2Pには組み込みのWebサーバが同梱されています:
|
||||
<a href="https://www.eclipse.org/jetty/" target="_blank">Jetty</a> インスタンスが <a href="http://127.0.0.1:7658/" target="_blank">http://127.0.0.1:7658/</a> で待ち受けています。
|
||||
コンテンツをホスティングするには、
|
||||
単にファイルを <code>eepsite/docroot/</code> ディレクトリに
|
||||
(または標準的なJSP/Servlet .warファイルなら <code>eepsite/webapps</code> 下に、標準的なCGIスクリプトなら <code>eepsite/cgi-bin</code> 下に)
|
||||
置けばそれが表示されます。
|
||||
また好きな代替WebサーバプラットフォームをI2P上で動かして組み込みサーバを置きかえたり、別のトンネル上で動かしたりできます。</li>
|
||||
|
||||
<li>
|
||||
<b>Start Your Tunnel</b><br>
|
||||
After starting up, your pre-configured <a href="/i2ptunnel/" target="_blank">I2P Webserver Tunnel</a>, your website will be visible (but not discoverable) to others.
|
||||
Detailed instructions for starting your website, registering an .i2p domain and promoting your site to others are accessible via your own I2P webserver on <a href="http://127.0.0.1:7658/help/" target="_blank">http://127.0.0.1:7658/help/</a>.</li>
|
||||
<b>トンネルの開始</b><br>
|
||||
設定済みの<a href="/i2ptunnel/" target="_blank">I2Pウェブサーバートンネル</a>を開始すると、あなたのWebサイトが他の人に見えるようになります(ただし発見はできません)。
|
||||
Webサイトの開始、.i2pドメインの登録、サイトの宣伝についての詳しい説明は、
|
||||
あなたのI2Pウェブサーバを介し <a href="http://127.0.0.1:7658/help/" target="_blank">http://127.0.0.1:7658/help/</a> で閲覧可能です。</li>
|
||||
|
||||
</ul>
|
||||
<a name="eepsites"></a>
|
||||
@@ -89,9 +101,9 @@ Detailed instructions for starting your website, registering an .i2p domain and
|
||||
<b>Invisible Internet Project (I2P) 公式ウェブサイト</b><br><a href="http://i2p-projekt.i2p" target="_blank">i2p-projekt.i2p</a>: <a href="https://geti2p.net/en/" target="_blank">geti2p.net</a>に安全かつ匿名で接続できます。I2Pがどう動作するのか、あるいはどうすれば参加できるのかについて知りたければ、ここが最初に訪れるべき場所です!</li>
|
||||
|
||||
<li>
|
||||
<b>I2P Community Forums</b><br><a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> hosts discussion related to I2P development.
|
||||
<b>I2Pコミュニティフォーラム</b><br><a href="http://zzz.i2p/" target="_blank">zzzの開発者フォーラムはI2P開発関連の議論を公開しています。</a>
|
||||
|
||||
<a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>: A forum where problems and ideas relating to I2P and associated topics are discussed.</li>
|
||||
<a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>: I2Pに関する問題やアイデア、関連する話題が議論されているフォーラムです。</li>
|
||||
|
||||
<li>
|
||||
<b>Echelonの I2P リソース</b><br><a href="http://echelon.i2p/" target="_blank">echelon.i2p</a>: ソースコードを含むI2Pソフトウェアのアーカイヴや、I2Pに関する情報があります。情報には<a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">初心者向けガイド</a>やI2Pのプレリリース開発者ビルドが含まれます。</li>
|
||||
@@ -115,76 +127,91 @@ Detailed instructions for starting your website, registering an .i2p domain and
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Be Patient!</b><br>
|
||||
I2P may be slow to integrate into network the first time you run it as it bootstraps into the network and finds peers.
|
||||
The longer your I2P router is running, the better it will perform, so try and keep your router on as long as you can, 24/7 if possible!
|
||||
If, after 30 minutes, your <i>Active: [connected/recent]</i> count still has less than 10 peers, or your total number of <i>Integrated</i> peers is less than 5, there are several things you can do to check for problems:</li>
|
||||
<b>辛抱強く待ちましょう</b><br>
|
||||
I2Pの初回起動のネットワークへの統合は、ネットワークへの立ち上げとピア探しのため、時間がかかることがあります。
|
||||
I2P動作が長いほどパフォーマンスはよくなりますので、
|
||||
ルータをできるだけ長く、できれば1日24時間・週7日つけてみてください!
|
||||
もし30分後、<i>アクティブ: [接続済/直近]</i> のカウントが依然10ピア未満、あるいは<i>統合</i>ピアの総数が5未満である場合は、問題確認のために行うことがいくつかあります。</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Configuration and Bandwidth Allocation</b><br>
|
||||
I2P functions best when you can accurately reflect the speed of your network connection in the <a href="/config">bandwidth configuration section</a>.
|
||||
By default I2P is configured with some fairly conservative values that will not suit many use cases, so please take time to review these settings and correct where necessary.
|
||||
The more bandwidth you allocate, <i>specifically</i> upstream bandwidth, the more you will benefit from the network.</li>
|
||||
<b>設定と帯域幅割り当ての確認</b><br>
|
||||
I2Pが最もよく機能するのは、<a href="/config">帯域幅設定セクション</a>にあなたのネットワーク接続速度が正確に反映されているときです。
|
||||
デフォルトではI2Pは比較的保守的な値に設定されていて、これは多くのユースケースには適しません。
|
||||
ですから、時間をかけてこれらの設定を検討し、必要があれば修正してください。
|
||||
帯域幅割り当て、<i>特に</i>上り帯域幅が多ければ多いほど、ネットワークから得られる利益は大きくなります。</li>
|
||||
|
||||
<li>
|
||||
<b>Firewalls, Modems and Routers</b><br>
|
||||
Where possible, please ensure I2P/Java is allowed un-firewalled access from the internet by configuring your modem/router/pc firewall accordingly.
|
||||
If you're behind a prohibitive firewall but have unrestricted outbound access, I2P can still function; you can turn off inbound access and rely on <a href="http://i2p-projekt.i2p/udp.html" target="_blank">SSU IP Address Detection</a> (<a href="https://en.wikipedia.org/wiki/Hole_punching_(networking)" target="_blank">firewall hole punching</a>) to connect you to the network, and your network status in the side panel will indicate "Network: Firewalled".
|
||||
For optimal performance, please ensure I2P's <a href="/confignet">external port</a> is visible from the internet.
|
||||
See below for more information.</li>
|
||||
<b>ファイアウォール、モデム、ルータ</b><br>
|
||||
可能なら、あなたのモデム・ルータ・PCファイアウォールを適宜設定して、
|
||||
インターネットからファイアウォールなしでI2P/Javaにアクセスできるようにしてください。
|
||||
厳しいファイアウォール下にあっても、非制限の発信アクセスが可能な場合は、I2Pは依然機能します;
|
||||
着信アクセスを停止し、ネットワークに繋げるよう <a href="http://i2p-projekt.i2p/udp.html" target="_blank">SSU IP アドレス検出</a>を使ってください(<a href="https://en.wikipedia.org/wiki/Hole_punching_(networking)" target="_blank">ファイアウォールのホールパンチング</a>)。
|
||||
すると、サイドパネルのネットワーク状況に「ネットワーク: ファイアウォール下」と表示されます。
|
||||
最適なパフォーマンスのためには、I2Pの<a href="/confignet">外部ポート</a>がインターネットから見えている状態にしてください。
|
||||
詳しい情報は下記。</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Proxy Settings</b><br>
|
||||
If you cannot see any websites at all (not even <a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a>), make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>.
|
||||
If you need some help, there's <a href="https://geti2p.net/en/about/browser-config" target="_blank">a guide</a> to configuring your browser for I2P use.</li>
|
||||
<b>プロキシ設定の確認</b><br>
|
||||
Webサイトが全く(<a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a> すら)見られない場合、
|
||||
ブラウザのプロキシが(https<i>ではなく</i>、socks<i>でもなく</i>)httpの <code>127.0.0.1 ポート4444</code> 経由に設定されているか確認してください。
|
||||
援助が必要な場合は、I2P用のブラウザ設定<a href="https://geti2p.net/en/about/browser-config" target="_blank">ガイド</a>があります。</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Logs</b><br><a href="/logs">Logs</a> may be helpful to resolve a problem.
|
||||
You may wish to paste excerpts in our <a href="http://i2pforum.i2p/" target="_blank">forum</a> for help, or perhaps <a href="http://paste.idk.i2p/" target="_blank">paste</a> it instead and reference the link on IRC for help.</li>
|
||||
<b>ログの確認</b><br><a href="/logs">ログ</a>が問題解決に役立つかもしれません。
|
||||
抜粋を我々のヘルプ用<a href="http://i2pforum.i2p/" target="_blank">フォーラム</a>に貼り付けるか、
|
||||
あるいは <a href="http://paste.idk.i2p/" target="_blank">paste</a> に貼り付けて ヘルプ用IRC にリンクを投稿するとよいかもしれません。</li>
|
||||
|
||||
<li>
|
||||
<b>Verify Java is Up to Date</b><br>
|
||||
Ensure your Java is up to date.
|
||||
Check your Java version at the top of <a href="/logs">the logs page</a>.</li>
|
||||
<b>Java が最新であることの確認</b><br>
|
||||
Java が最新であることを確かめてください。
|
||||
<a href="/logs">ログページ</a>先頭のJavaバージョンを確認してください。</li>
|
||||
<li>
|
||||
<b>Problems running on Legacy Hardware</b><br>
|
||||
[Linux/BSD] If you can't start the router with <code>i2p/i2prouter start</code> try the <code>runplain.sh</code> script in the same directory.
|
||||
Root privileges are never required to run I2P.
|
||||
If you need to compile the <a href="http://i2p-projekt.i2p/jbigi.html" target="_blank">jBigi library</a> (which is necessary in rare cases), consult appropriate documentation, visit the forums, or come pay a visit to our <a href="irc://127.0.0.1:6668/i2p-dev">IRC developer channel</a>.</li>
|
||||
<b>古いハードウェアでの動作問題</b><br>
|
||||
[Linux/BSD] <code>i2p/i2prouter start</code> でルータが始動できない場合、
|
||||
同ディレクトリの <code>runplain.sh</code> スクリプトを試してください。
|
||||
I2P動作にルート権限は不要です。
|
||||
<a href="http://i2p-projekt.i2p/jbigi.html" target="_blank">jBigiライブラリ</a>のコンパイルが必要な場合(ごく稀に必要です)、
|
||||
適切なドキュメントの確認、フォーラムや<a href="irc://127.0.0.1:6668/i2p-dev">IRC開発者チャンネル</a>への訪問をしてください。</li>
|
||||
|
||||
<li>
|
||||
<b>Enable Universal Plug and Play (UPnP)</b><br>
|
||||
Your modem or router probably supports UPnP for automatic port forwarding.
|
||||
Ensure UPnP support is enabled on your modem or router.
|
||||
Now try restarting the <a href="/">I2P router</a>.
|
||||
If successful, I2P should report "Network: OK" in the side panel once the I2P router completes initial connectivity tests.</li>
|
||||
<b>Universal Plug and Play(UPnP)の有効化</b><br>
|
||||
あなたのモデムまたはルータはおそらく自動ポートフォワーディングのためのUPnPをサポートしています。
|
||||
UPnPサポートがモデムやルータで有効になっていることを確認してください。
|
||||
それから<a href="/">I2Pルータ</a>を再起動してみてください。
|
||||
うまくいっている場合、I2Pルータの初期接続テストが済めば、I2Pは「ネットワーク: OK」とサイドパネルに表示します。</li>
|
||||
|
||||
<li>
|
||||
<b>Port Forwarding</b><br>
|
||||
Open <a href="/confignet">I2P's port</a> on your modem, router and/or firewall(s) for better connectivity (ideally both UDP and TCP).
|
||||
More information on how to go about port forwarding can be easily found through a web search.
|
||||
Should you have any difficulties, you may request assistance in our forums and IRC channels listed below.
|
||||
Note that I2P does not support connecting to the internet via an http or socks proxy [patches welcome!], though you can connect to proxies via I2P itself once connected to the network.</li>
|
||||
<b>ポートフォワーディング</b><br>
|
||||
接続しやすくするため(理想的にはUDPとTCPの両方で)、モデム、ルータ、ファイアウォール(群)の<a href="/confignet">I2Pポート</a>を開放してください。
|
||||
ポートフォワーディングの方法についての詳しい情報は、Web検索で容易に見つかります。
|
||||
万一問題があれば、以下にまとめた我々のフォーラムやIRCチャンネルに援助を依頼するとよいでしょう。
|
||||
I2Pはhttpまたはsocksプロキシ経由でのインターネットへの接続をサポートしていないことに注意してください。[パッチ歓迎!]
|
||||
ただし、一度ネットワークに繋がればI2P自身を経由してプロキシに接続ができます。</li>
|
||||
|
||||
<li>
|
||||
<b>Getting Support Online</b><br>
|
||||
You may also want to review the information on the <a href="http://i2p-projekt.i2p/" target="_blank">I2P website</a>, post messages to the <a href="http://i2pforum.i2p/" target="_blank">I2P discussion forum</a> or swing by <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network - Irc2P.
|
||||
These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
||||
<b>オンラインサポート</b><br><a href="http://i2p-projekt.i2p/" target="_blank">I2P Webサイト</a>の情報や<a href="http://i2pforum.i2p/" target="_blank">I2P議論フォーラム</a>への投稿を検討したり、
|
||||
I2P内部のIRCネットワーク - Irc2P 上の<a href="irc://127.0.0.1:6668/i2p"> #i2p</a> または <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> へ立ち寄ったりするとよいでしょう。
|
||||
これらのチャンネルはI2Pの暗号化・匿名ネットワークの外側でも <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>経由で利用可能です。</li>
|
||||
|
||||
<li>
|
||||
<b>Reporting Bugs</b><br>
|
||||
To report a bug, please file a ticket on <a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a> or, over clearnet, <a href="https://trac.i2p2.de/" target="_blank">https://trac.i2p2.de/</a>.
|
||||
For developer-related discussions, please visit <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> or come and visit the <a href="irc://127.0.0.1:6668/i2p-dev">developer channel</a> on I2P's IRC network.
|
||||
Developers can browse source at <a href="https://github.com/i2p/i2p.i2p" target="_blank">Github</a>.
|
||||
We use <a href="http://i2p-projekt.i2p/monotone.html" target="_blank">monotone</a> to manage our source code - while you may clone the source code anonymously, commits are accepted only after accepting the developer agreement.</li>
|
||||
<b>バグ報告</b><br>
|
||||
バグ報告は、<a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a> あるいは クリアネットの <a href="https://trac.i2p2.de/" target="_blank">https://trac.i2p2.de/</a> でチケットを発行してください。
|
||||
開発者関連の議論は、<a href="http://zzz.i2p/" target="_blank">zzzの開発者フォーラム</a>かI2PのIRCネットワーク上の<a href="irc://127.0.0.1:6668/i2p-dev">開発者チャンネル</a>を訪問してください。
|
||||
開発者は <a href="https://github.com/i2p/i2p.i2p" target="_blank">Github</a> でソースを閲覧できます。
|
||||
我々はソースコード管理に <a href="http://i2p-projekt.i2p/monotone.html" target="_blank">monotone</a> を使用しています -
|
||||
匿名でソースコードをクローンできますが、コミットは開発者契約を結んだ後のみ許可されます。</li>
|
||||
|
||||
<li>
|
||||
<b>Get Involved!</b><br>
|
||||
I2P is developed and maintained mostly through unfunded, voluntary participation by community members.
|
||||
We're happy to accept <a href="http://i2p-projekt.i2p/donate.html" target="_blank">donations</a>, which go into essential hosting and administrative costs.
|
||||
We have <a href="http://i2p-projekt.i2p/bounties.html" target="_blank">cash bounties</a> for aspects of I2P for developers looking for incentives to participate, and we're always looking for more <a href="http://i2p-projekt.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://i2p-projekt.i2p/newtranslators.html" target="_blank">translators</a>, promoters and users to help I2P grow.
|
||||
The bigger the I2P network, the more everyone benefits, so simply telling all your friends about I2P (and lending a hand with the installation and setup where needed) is helpful.
|
||||
For further info on how you can participate, visit the <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank">volunteers page</a> on the website.</li>
|
||||
<b>参加しよう!</b><br>
|
||||
I2Pは主にコミュニティメンバーの無償で自発的な参加によって開発され維持されています。
|
||||
<a href="http://i2p-projekt.i2p/donate.html" target="_blank">寄付</a>は歓迎です。必須のホスティングと管理コストに使われます。
|
||||
我々は、開発者の参加の動機となるように、I2Pの要素に対する<a href="http://i2p-projekt.i2p/bounties.html" target="_blank">報奨金</a>を用意しています。
|
||||
I2Pを育てるため、<a href="http://i2p-projekt.i2p/newdevelopers.html" target="_blank">Javaコーダー</a>、<a href="http://i2p-projekt.i2p/newtranslators.html" target="_blank">翻訳者</a>、後援者、ユーザを常に求めています。
|
||||
I2Pネットワークが大きくなればなるほど、全員へのメリットは増えます。
|
||||
ですので、単に友人全員にI2Pについて教える
|
||||
(そして必要な場合インストールと設定に手を貸してあげる)だけでも助かります。
|
||||
どのように参加すればいいのかについての詳しい情報は、
|
||||
Webサイトの<a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank">ボランティアページ</a>を確認してください。</li>
|
||||
|
||||
</ul>
|
||||
<div class="topness"><a href="#top">[トップへ戻る]</a></div>
|
||||
|
||||
192
apps/routerconsole/resources/docs/readme_uk.html
Normal file
192
apps/routerconsole/resources/docs/readme_uk.html
Normal file
@@ -0,0 +1,192 @@
|
||||
<div lang="uk_UA">
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Starting Up</b><br>
|
||||
If you've just started I2P, the number of <i>Active Peers</i> indicated under the <i>Peers</i> section in the side panel on the left should start to grow over the next few minutes.
|
||||
When your router is ready, you'll also see a <i>Local Tunnel</i> named <i>Shared Clients</i> listed there, and possibly other clients and servers.
|
||||
If not, see the troubleshooting section <a href="#trouble">below</a>.
|
||||
These <i>Local Tunnels</i> provide connections to the I2P network, enabling your bittorrent, email, web proxy and other services.
|
||||
Your <a href="/netdb">Network Database</a> indicates all known peers on the network.
|
||||
Additionally, you can monitor existing <a href="/peers">Peer Connections</a>, and view existing <a href="/tunnels">Tunnels</a> and their status.
|
||||
More information is available on the <a href="/help">help page</a>.</li>
|
||||
|
||||
<li>
|
||||
<b>Network Integration</b><br>
|
||||
When you start I2P, it may take a few minutes to bootstrap (integrate) your router into the network and find additional peers, so please be patient.
|
||||
When I2P starts up, and during normal operation, I2P's tunnel build readiness indicator in the side panel may indicate that I2P is "Rejecting Tunnels"; this is normal behavior.
|
||||
Once green circles are indicated next to your <i>Local Tunnels</i>, there is a wide variety of things you can do with I2P, and below we introduce you to some of them.</li>
|
||||
|
||||
</ul>
|
||||
<h3>Послуги на I2P</h3>
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Hidden Services and Public Web Browsing</b><br>
|
||||
On I2P you can access hidden service websites ("I2P sites") and other services, and you can host your own services.
|
||||
You can also access the normal web anonymously via I2P's built-in web proxy (outproxy).
|
||||
<a href="https://geti2p.net/en/about/browser-config" target="_blank">Configure your browser</a> to use the HTTP proxy at <code>127.0.0.1 port 4444</code>, then browse to a I2P Site or a web-site at an <code>http://</code> address.
|
||||
If you wish to disable or change outproxy access to the non-anonymous internet, remove or modify the outproxy entry for <code>false.i2p</code> under the <i>Outproxies</i> option in the <a href="/i2ptunnel/edit?tunnel=0" target="_blank">I2P HTTP Proxy Tunnel Editor</a>.
|
||||
In the "Sites of Interest" section <a href="#eepsites">below</a>, we list a few of the sites hosted on I2P.<br>
|
||||
There are also a number of semi-official and unofficial efforts to build browsing tools for I2P,
|
||||
including a <a href="https://geti2p.net/en/download/firefox">preconfigured Firefox Browser profile</a>,
|
||||
<a href="http://idk.i2p/I2P-in-Private-Browsing-Mode-Firefox">an easy-to-install WebExtension</a>,
|
||||
or via <a href="https://www.whonix.org/wiki/I2P">automatic launchers in privacy-focused Linux distributions like Whonix</a>.
|
||||
While these are all interesting projects, please evaluate them to see if they fit within your personal threat
|
||||
model before trusting them with your well-being.</li>
|
||||
|
||||
<li>
|
||||
<b>Anonymous Email</b><br>
|
||||
Postman's I2P-based mail system can be accessed either via <a href="/webmail">I2P's built-in mail client</a> or with any external mail client.
|
||||
Accounts can send and receive mail from the normal internet.
|
||||
For an account, visit <a href="http://hq.postman.i2p/" target="_blank">hq.postman.i2p</a>.</li>
|
||||
|
||||
<li>
|
||||
<b>Anonymous File Transfer</b><br><a href="/torrents">I2PSnark</a> is integrated into I2P, providing anonymous, encrypted BitTorrent transfers.</li>
|
||||
<li>
|
||||
<b>Anonymous Chat</b><br>
|
||||
Start your IRC client (e.g. HexChat) and connect to the <a href="irc://127.0.0.1:6668/i2p">server</a> at <code>127.0.0.1 port 6668</code>.
|
||||
You do not need to configure a proxy in your IRC client; I2P provides you with a local IRC tunnel (configured in your IRC client as an IRC server or remote host).
|
||||
Your local I2P IRC tunnel on <code>localhost:6668</code> will direct you to one of three IRC servers hosted on I2P by Postman, echelon and zl0, but neither you nor they know where the other is, and your communcations are encrypted in transit by I2P to prevent interception.
|
||||
Once you're there, <code>#i2p-chat</code> and <code>#i2p-dev</code> are just a few of the available channels you may wish to join.
|
||||
I2P is also suitable for unmonitorable and uncensorable anonymous chat, as well as alternative IRC servers, Jabber servers, website-based chat, and more.
|
||||
You may run your own servers over I2P in whatever flavor you choose, or if you're a developer write your own <a href="http://i2p-projekt.i2p/applications.html" target="_blank">I2P applications</a>.
|
||||
Both UDP and TCP protocols are <a href="http://i2p-projekt.i2p/techintro.html#op.transport" target="_blank">supported</a>.
|
||||
We also provide full access to the <a href="http://echelon.i2p/javadoc/" target="_blank">Java API</a>.</li>
|
||||
|
||||
<li>
|
||||
<b>Forums and Blogging</b><br>
|
||||
All normal blogging, forum and CMS software will run over I2P, though you're advised to take extra precautions with security when setting up and to keep all associated software (e.g. Php, MySql, Python, Apache) up to date and locked-down!
|
||||
Also, there are quite a few community run forums on I2P in various languages; see <a href="#eepsites">below</a> for some suggestions.</li>
|
||||
|
||||
<li>
|
||||
<a name="plugins"></a><b>Plugins for I2P</b><br>
|
||||
Extend the usefulness of I2P by installing plugins: blogging, chatting, file sharing and other plugins have already been written or ported and await your <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">installation</a>!
|
||||
Browse the plugins and related info at <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">wiki.i2p-projekt.i2p</a>.
|
||||
If you're a <a href="http://wiki.i2p-projekt.i2p/wiki/index.php/Plugins" target="_blank">developer</a>, a complete framework for writing your own plugins is provided with <a href="http://i2p-projekt.i2p/plugins.html" target="_blank">documentation</a>.</li>
|
||||
|
||||
</ul>
|
||||
<h3>Анонімний зашифрований веб-хостинг на I2P</h3>
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Built-in Web-Server</b><br>
|
||||
I2P comes with a built-in web server for hosting your own hidden service website ("eepsite") on the I2P network: a <a href="https://www.eclipse.org/jetty/" target="_blank">Jetty</a> instance listening on <a href="http://127.0.0.1:7658/" target="_blank">http://127.0.0.1:7658/</a>.
|
||||
To host your own content, simply place your files in the <code>eepsite/docroot/</code> directory (or place any standard JSP/Servlet .war files under <code>eepsite/webapps</code>, or standard CGI scripts under <code>eepsite/cgi-bin</code>) and they'll show up.
|
||||
You can also run any alternative web server platform over I2P and replace the built-in server, or run it on another tunnel.</li>
|
||||
|
||||
<li>
|
||||
<b>Start Your Tunnel</b><br>
|
||||
After starting up, your pre-configured <a href="/i2ptunnel/" target="_blank">I2P Webserver Tunnel</a>, your website will be visible (but not discoverable) to others.
|
||||
Detailed instructions for starting your website, registering an .i2p domain and promoting your site to others are accessible via your own I2P webserver on <a href="http://127.0.0.1:7658/help/" target="_blank">http://127.0.0.1:7658/help/</a>.</li>
|
||||
|
||||
</ul>
|
||||
<a name="eepsites"></a>
|
||||
<h3>Приховані цікаві сервіси I2P</h3>
|
||||
|
||||
<ul class="links twocol">
|
||||
<li>
|
||||
<b>Invisible Internet Project (I2P) Official Website</b><br><a href="http://i2p-projekt.i2p" target="_blank">i2p-projekt.i2p</a>: Secure and anonymous connections to <a href="https://geti2p.net/en/" target="_blank">geti2p.net</a>. If you want to know more about how I2P works or how you can participate, this is the first place to visit!</li>
|
||||
|
||||
<li>
|
||||
<b>I2P Community Forums</b><br><a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> hosts discussion related to I2P development.
|
||||
|
||||
<a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>: A forum where problems and ideas relating to I2P and associated topics are discussed.</li>
|
||||
|
||||
<li>
|
||||
<b>Echelon's I2P Resources</b><br><a href="http://echelon.i2p/" target="_blank">echelon.i2p</a>: I2P software archive with source code, information about I2P, including a <a href="http://echelon.i2p/I2Pguide/index.html" target="_blank">beginner's guide</a> and pre-release developer builds of I2P.</li>
|
||||
|
||||
<li>
|
||||
<b>I2P Planet</b><br><a href="http://planet.i2p/" target="_blank">planet.i2p</a>: An RSS aggregator site that takes news and events from around I2P and publishes them all in one place. A good site to visit to see the community at work!</li>
|
||||
|
||||
<li>
|
||||
<b>I2P Network Health</b><br><a href="http://stats.i2p/cgi-bin/dashboard.cgi" target="_blank">stats.i2p</a>: Check out various aspects of network performance with this I2P network monitoring site run by zzz.</li>
|
||||
|
||||
<li>
|
||||
<b>I2P Bug Tracker - Trac</b><br><a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a>: I2P's issue reporting and bug-tracking system. Please visit if you have an issue to report, also available at <a href="https://trac.i2p2.de/" target="_blank">https://trac.i2p2.de/</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<b>Discover I2P</b><br>
|
||||
There are many more hidden services - just follow the links from the ones you see, bookmark your favourites, and visit them often!<br>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<h2 id="trouble">Усунення несправностей та подальша допомога</h2>
|
||||
|
||||
<ul class="links">
|
||||
<li>
|
||||
<b>Be Patient!</b><br>
|
||||
I2P may be slow to integrate into network the first time you run it as it bootstraps into the network and finds peers.
|
||||
The longer your I2P router is running, the better it will perform, so try and keep your router on as long as you can, 24/7 if possible!
|
||||
If, after 30 minutes, your <i>Active: [connected/recent]</i> count still has less than 10 peers, or your total number of <i>Integrated</i> peers is less than 5, there are several things you can do to check for problems:</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Configuration and Bandwidth Allocation</b><br>
|
||||
I2P functions best when you can accurately reflect the speed of your network connection in the <a href="/config">bandwidth configuration section</a>.
|
||||
By default I2P is configured with some fairly conservative values that will not suit many use cases, so please take time to review these settings and correct where necessary.
|
||||
The more bandwidth you allocate, <i>specifically</i> upstream bandwidth, the more you will benefit from the network.</li>
|
||||
|
||||
<li>
|
||||
<b>Firewalls, Modems and Routers</b><br>
|
||||
Where possible, please ensure I2P/Java is allowed un-firewalled access from the internet by configuring your modem/router/pc firewall accordingly.
|
||||
If you're behind a prohibitive firewall but have unrestricted outbound access, I2P can still function; you can turn off inbound access and rely on <a href="http://i2p-projekt.i2p/udp.html" target="_blank">SSU IP Address Detection</a> (<a href="https://en.wikipedia.org/wiki/Hole_punching_(networking)" target="_blank">firewall hole punching</a>) to connect you to the network, and your network status in the side panel will indicate "Network: Firewalled".
|
||||
For optimal performance, please ensure I2P's <a href="/confignet">external port</a> is visible from the internet.
|
||||
See below for more information.</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Proxy Settings</b><br>
|
||||
If you cannot see any websites at all (not even <a href="http://i2p-projekt.i2p/" target="_blank">i2p-projekt.i2p</a>), make sure your browser's proxy is set to access http traffic (<i>not</i> https, <i>not</i> socks) via <code>127.0.0.1 port 4444</code>.
|
||||
If you need some help, there's <a href="https://geti2p.net/en/about/browser-config" target="_blank">a guide</a> to configuring your browser for I2P use.</li>
|
||||
|
||||
<li>
|
||||
<b>Check Your Logs</b><br><a href="/logs">Logs</a> may be helpful to resolve a problem.
|
||||
You may wish to paste excerpts in our <a href="http://i2pforum.i2p/" target="_blank">forum</a> for help, or perhaps <a href="http://paste.idk.i2p/" target="_blank">paste</a> it instead and reference the link on IRC for help.</li>
|
||||
|
||||
<li>
|
||||
<b>Verify Java is Up to Date</b><br>
|
||||
Ensure your Java is up to date.
|
||||
Check your Java version at the top of <a href="/logs">the logs page</a>.</li>
|
||||
<li>
|
||||
<b>Problems running on Legacy Hardware</b><br>
|
||||
[Linux/BSD] If you can't start the router with <code>i2p/i2prouter start</code> try the <code>runplain.sh</code> script in the same directory.
|
||||
Root privileges are never required to run I2P.
|
||||
If you need to compile the <a href="http://i2p-projekt.i2p/jbigi.html" target="_blank">jBigi library</a> (which is necessary in rare cases), consult appropriate documentation, visit the forums, or come pay a visit to our <a href="irc://127.0.0.1:6668/i2p-dev">IRC developer channel</a>.</li>
|
||||
|
||||
<li>
|
||||
<b>Enable Universal Plug and Play (UPnP)</b><br>
|
||||
Your modem or router probably supports UPnP for automatic port forwarding.
|
||||
Ensure UPnP support is enabled on your modem or router.
|
||||
Now try restarting the <a href="/">I2P router</a>.
|
||||
If successful, I2P should report "Network: OK" in the side panel once the I2P router completes initial connectivity tests.</li>
|
||||
|
||||
<li>
|
||||
<b>Port Forwarding</b><br>
|
||||
Open <a href="/confignet">I2P's port</a> on your modem, router and/or firewall(s) for better connectivity (ideally both UDP and TCP).
|
||||
More information on how to go about port forwarding can be easily found through a web search.
|
||||
Should you have any difficulties, you may request assistance in our forums and IRC channels listed below.
|
||||
Note that I2P does not support connecting to the internet via an http or socks proxy [patches welcome!], though you can connect to proxies via I2P itself once connected to the network.</li>
|
||||
|
||||
<li>
|
||||
<b>Getting Support Online</b><br>
|
||||
You may also want to review the information on the <a href="http://i2p-projekt.i2p/" target="_blank">I2P website</a>, post messages to the <a href="http://i2pforum.i2p/" target="_blank">I2P discussion forum</a> or swing by <a href="irc://127.0.0.1:6668/i2p">#i2p</a> or <a href="irc://127.0.0.1:6668/i2p-chat">#i2p-chat</a> on I2P's internal IRC network - Irc2P.
|
||||
These channels are also available outside of I2P's encrypted, anonymous network via <a href="irc://irc.freenode.net/i2p">Freenode IRC</a>.</li>
|
||||
|
||||
<li>
|
||||
<b>Reporting Bugs</b><br>
|
||||
To report a bug, please file a ticket on <a href="http://trac.i2p2.i2p/" target="_blank">trac.i2p2.i2p</a> or, over clearnet, <a href="https://trac.i2p2.de/" target="_blank">https://trac.i2p2.de/</a>.
|
||||
For developer-related discussions, please visit <a href="http://zzz.i2p/" target="_blank">zzz's developer forums</a> or come and visit the <a href="irc://127.0.0.1:6668/i2p-dev">developer channel</a> on I2P's IRC network.
|
||||
Developers can browse source at <a href="https://github.com/i2p/i2p.i2p" target="_blank">Github</a>.
|
||||
We use <a href="http://i2p-projekt.i2p/monotone.html" target="_blank">monotone</a> to manage our source code - while you may clone the source code anonymously, commits are accepted only after accepting the developer agreement.</li>
|
||||
|
||||
<li>
|
||||
<b>Get Involved!</b><br>
|
||||
I2P is developed and maintained mostly through unfunded, voluntary participation by community members.
|
||||
We're happy to accept <a href="http://i2p-projekt.i2p/donate.html" target="_blank">donations</a>, which go into essential hosting and administrative costs.
|
||||
We have <a href="http://i2p-projekt.i2p/bounties.html" target="_blank">cash bounties</a> for aspects of I2P for developers looking for incentives to participate, and we're always looking for more <a href="http://i2p-projekt.i2p/newdevelopers.html" target="_blank">Java coders</a>, <a href="http://i2p-projekt.i2p/newtranslators.html" target="_blank">translators</a>, promoters and users to help I2P grow.
|
||||
The bigger the I2P network, the more everyone benefits, so simply telling all your friends about I2P (and lending a hand with the installation and setup where needed) is helpful.
|
||||
For further info on how you can participate, visit the <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank">volunteers page</a> on the website.</li>
|
||||
|
||||
</ul>
|
||||
<div class="topness"><a href="#top">[Повернутися до початку сторінки]</a></div>
|
||||
</div>
|
||||
@@ -207,7 +207,7 @@ public class AddressbookBean extends BaseBean
|
||||
} else {
|
||||
if (resultCount <= 0)
|
||||
// covered in jsp
|
||||
//message = _t("This addressbook is empty.");
|
||||
//message = _t("This address book is empty.");
|
||||
message = "";
|
||||
else
|
||||
message = ngettext("Address book contains 1 entry.",
|
||||
@@ -366,7 +366,7 @@ public class AddressbookBean extends BaseBean
|
||||
message += "<br>" + _t("Address book saved.");
|
||||
} catch (IOException e) {
|
||||
warn(e);
|
||||
message += "<br>" + _t("ERROR: Could not write addressbook file.");
|
||||
message += "<br>" + _t("ERROR: Could not write address book file.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ public class SubscriptionsBean extends BaseBean
|
||||
*******/
|
||||
if (content != null && content.length() > 2 &&
|
||||
_context.portMapper().isRegistered(PortMapper.SVC_HTTP_PROXY)) {
|
||||
message = _t("Subscriptions saved, updating addressbook from subscription sources now.");
|
||||
message = _t("Subscriptions saved, updating address book from subscription sources now.");
|
||||
// + "<img height=\"1\" width=\"1\" alt=\"\" " +
|
||||
// "src=\"/addressbook/?wakeup=1&nonce=" + nonce + "\">";
|
||||
_context.namingService().requestUpdate(null);
|
||||
|
||||
@@ -179,7 +179,7 @@ ${book.loadBookMessages}
|
||||
<th><%=intl._t("Destination")%></th>
|
||||
|
||||
<c:if test="${book.validBook}">
|
||||
<th title="<%=intl._t("Select hosts for deletion from addressbook")%>"></th>
|
||||
<th title="<%=intl._t("Select hosts for deletion from address book")%>"></th>
|
||||
</c:if>
|
||||
|
||||
</tr>
|
||||
@@ -199,7 +199,7 @@ ${book.loadBookMessages}
|
||||
%>
|
||||
<a href="http://${addr.name}/" target="_top">${addr.displayName}</a></td>
|
||||
<td class="names"><span class="addrhlpr"><a href="http://${addr.b32}/" target="_blank" title="<%=intl._t("Base 32 address")%>">b32</a></span></td>
|
||||
<td class="helper"><a href="http://${addr.name}/?i2paddresshelper=${addr.destination}" target="_blank" title="<%=intl._t("Helper link to share host address with option to add to addressbook")%>">link</a></td>
|
||||
<td class="helper"><a href="http://${addr.name}/?i2paddresshelper=${addr.destination}" target="_blank" title="<%=intl._t("Helper link to share host address with option to add to address book")%>">link</a></td>
|
||||
<td class="names"><span class="addrhlpr"><a href="details?h=${addr.name}&book=${book.book}" title="<%=intl._t("More information on this entry")%>"><%=intl._t("details")%></a></span></td>
|
||||
<td class="destinations"><div class="destaddress resetScrollLeft" name="dest_${addr.name}" width="200px" tabindex="0">${addr.destination}</div></td>
|
||||
|
||||
|
||||
@@ -71,15 +71,15 @@
|
||||
<h3><%=intl._t("Hints")%></h3>
|
||||
<ol>
|
||||
<li>
|
||||
<%=intl._t("File and directory paths here are relative to the addressbook's working directory, which is normally ~/.i2p/addressbook/ (Linux) or %LOCALAPPDATA%\\I2P\\addressbook\\ (Windows).")%>
|
||||
<%=intl._t("File and directory paths here are relative to the address book's working directory, which is normally ~/.i2p/addressbook/ (Linux) or %LOCALAPPDATA%\\I2P\\addressbook\\ (Windows).")%>
|
||||
</li>
|
||||
<li>
|
||||
<%=intl._t("If you want to manually add lines to an addressbook, add them to the private or local addressbooks.")%>
|
||||
<%=intl._t("The router addressbook and the published addressbook are updated by the addressbook application.")%>
|
||||
<%=intl._t("If you want to manually add lines to an address book, add them to the private or local address books.")%>
|
||||
<%=intl._t("The router address book and the published address book are updated by the address book application.")%>
|
||||
</li>
|
||||
<li>
|
||||
<%=intl._t("When you publish your addressbook, ALL destinations from the local and router addressbooks appear there.")%>
|
||||
<%=intl._t("Use the private addressbook for private destinations, these are not published.")%>
|
||||
<%=intl._t("When you publish your address book, ALL destinations from the local and router address books appear there.")%>
|
||||
<%=intl._t("Use the private address book for private destinations, these are not published.")%>
|
||||
</li>
|
||||
</ol>
|
||||
<h3><%=intl._t("Options")%></h3>
|
||||
@@ -97,10 +97,10 @@
|
||||
<%=intl._t("Your hosts.txt (don't change)")%>
|
||||
</li>
|
||||
<li><b>local_addressbook</b> -
|
||||
<%=intl._t("Your personal addressbook, these hosts will be published")%>
|
||||
<%=intl._t("Your personal address book, these hosts will be published")%>
|
||||
</li>
|
||||
<li><b>private_addressbook</b> -
|
||||
<%=intl._t("Your private addressbook, it is never published")%>
|
||||
<%=intl._t("Your private address book, it is never published")%>
|
||||
</li>
|
||||
<li><b>proxy_port</b> -
|
||||
<%=intl._t("Port for your eepProxy (no need to change)")%>
|
||||
@@ -109,7 +109,7 @@
|
||||
<%=intl._t("Hostname for your eepProxy (no need to change)")%>
|
||||
</li>
|
||||
<li><b>should_publish</b> -
|
||||
<%=intl._t("Whether to update the published addressbook")%>
|
||||
<%=intl._t("Whether to update the published address book")%>
|
||||
</li>
|
||||
<li><b>etags</b> -
|
||||
<%=intl._t("File containing the etags header from the fetched subscription URLs (no need to change)")%>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>${book.book} <%=intl._t("addressbook")%> - susidns</title>
|
||||
<title>${book.book} <%=intl._t("address book")%> - susidns</title>
|
||||
<link rel="stylesheet" type="text/css" href="<%=book.getTheme()%>susidns.css?<%=net.i2p.CoreVersion.VERSION%>">
|
||||
<script src="js/messages.js?<%=net.i2p.CoreVersion.VERSION%>" type="text/javascript"></script>
|
||||
</head>
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
</div>
|
||||
<hr>
|
||||
<div id="content">
|
||||
<h3><%=intl._t("What is the addressbook?")%></h3>
|
||||
<h3><%=intl._t("What is the address book?")%></h3>
|
||||
<p>
|
||||
<%=intl._t("The addressbook application is part of your I2P installation.")%>
|
||||
<%=intl._t("The address book application is part of your I2P installation.")%>
|
||||
<%=intl._t("It regularly updates your hosts.txt file from distributed sources or \"subscriptions\".")%>
|
||||
</p>
|
||||
<p>
|
||||
@@ -74,9 +74,9 @@
|
||||
<p>
|
||||
<%=intl._t("For more information on naming in I2P, see <a href=\"http://i2p-projekt.i2p/naming.html\" target=\"_blank\">the overview</a>.")%>
|
||||
</p>
|
||||
<h3><%=intl._t("How does the addressbook application work?")%></h3>
|
||||
<h3><%=intl._t("How does the address book application work?")%></h3>
|
||||
<p>
|
||||
<%=intl._t("The addressbook application regularly polls your subscriptions and merges their content into your \"router\" address book.")%>
|
||||
<%=intl._t("The address book application regularly polls your subscriptions and merges their content into your \"router\" address book.")%>
|
||||
<%=intl._t("Then it merges your \"local\" address book into the router address book as well.")%>
|
||||
<%=intl._t("If configured, the router address book is now written to the \"published\" address book, which will be publicly available if you are running an I2P Site.")%>
|
||||
</p><p>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="help" id="helpsubs">
|
||||
<p class="help">
|
||||
<%=intl._t("The subscription file contains a list of i2p URLs.")%>
|
||||
<%=intl._t("The addressbook application regularly checks this list for new I2P Sites.")%>
|
||||
<%=intl._t("The address book application regularly checks this list for new I2P Sites.")%>
|
||||
<%=intl._t("Those URLs refer to published hosts.txt files.")%>
|
||||
<%=intl._t("The default subscription is the hosts.txt from {0}, which is updated infrequently.", "i2p-projekt.i2p")%>
|
||||
<%=intl._t("So it is a good idea to add additional subscriptions to sites that have the latest addresses.")%>
|
||||
|
||||
@@ -520,7 +520,7 @@ textarea {
|
||||
font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
|
||||
font-size: 9pt;
|
||||
width: 100%;
|
||||
border-radius: 2px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid #999daf;
|
||||
padding: 1px 3px;
|
||||
color: #33333f;
|
||||
@@ -542,7 +542,7 @@ textarea {
|
||||
}
|
||||
|
||||
textarea[name="config"], textarea[name="content"] {
|
||||
border-radius: 0;
|
||||
border-radius: 6;
|
||||
box-shadow: none;
|
||||
border: 1px solid #dee2e6;
|
||||
background: #fafaff;
|
||||
@@ -589,7 +589,7 @@ textarea[name="config"]:focus, textarea[name="content"]:focus {
|
||||
margin: 2px 1px;
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 2px;
|
||||
border-radius: 6px;
|
||||
color: #3b6bbf;
|
||||
text-align: center;
|
||||
|
||||
@@ -1050,7 +1050,7 @@ input[type="submit"], input[type="reset"], .fakebutton {
|
||||
font: 9pt "Droid Sans", "Noto Sans", Ubuntu, "Segoe UI", "Lucida Grande", "Bitstream Vera Sans", Verdana, sans-serif;
|
||||
padding: 4px 3px;
|
||||
text-decoration: none;
|
||||
border-radius: 2px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #999daf;
|
||||
box-shadow: inset 0 0 0 1px #fff;
|
||||
background: #eee;
|
||||
|
||||
@@ -1805,7 +1805,7 @@ public class WebMail extends HttpServlet
|
||||
} else if (!newHost.equals(oldHost) && !newHost.equals("localhost")) {
|
||||
props.setProperty(CONFIG_HOST, oldHost);
|
||||
File cfg = new File(I2PAppContext.getGlobalContext().getConfigDir(), "susimail.config");
|
||||
sessionObject.error += _t("Host unchanged. Edit configation file {0} to change host.", cfg.getAbsolutePath()) + '\n';
|
||||
sessionObject.error += _t("Host unchanged. Edit configuration file {0} to change host.", cfg.getAbsolutePath()) + '\n';
|
||||
}
|
||||
String ps = props.getProperty(Folder.PAGESIZE);
|
||||
Folder<String> folder = getCurrentFolder(sessionObject, request);
|
||||
|
||||
@@ -119,8 +119,8 @@ require.gettext=true
|
||||
# Defaults to the ant library path if not set
|
||||
# If set, this must point to a directory containing the files
|
||||
# mockito-core.jar, byte-buddy.jar, objenesis.jar
|
||||
# Tested using Mockito 2.5.0 which requires byte-buddy 1.5.12 and objenesis 2.4
|
||||
#mockito.home=
|
||||
# Tested using Mockito 2.23.0 which requires byte-buddy 1.8.2 and objenesis 3.1
|
||||
#mockito.home=/usr/share/java
|
||||
|
||||
# Optional properties used in tests to enable additional tools.
|
||||
#with.cobertura=/PATH/TO/cobertura.jar
|
||||
|
||||
@@ -1509,7 +1509,7 @@
|
||||
|
||||
<target name="copyflags-unlesspkg" unless="${with-famfamfam-flag-png}" >
|
||||
<copy todir="pkg-temp/eepsite/docroot/help/lib/" >
|
||||
<fileset dir="installer/resources/icons/flags/" includes="az.png cn.png de.png es.png fr.png hu.png id.png ir.png it.png jp.png nl.png pl.png pt.png ro.png ru.png se.png tr.png us.png" />
|
||||
<fileset dir="installer/resources/icons/flags/" includes="az.png cn.png de.png es.png fr.png gr.png hu.png id.png ir.png it.png jp.png nl.png pl.png pt.png ro.png ru.png se.png tr.png ua.png us.png" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/docs/icons/flags" >
|
||||
<!-- base flags/ dir only. flags16x11/ dir now in the war -->
|
||||
|
||||
@@ -286,6 +286,7 @@
|
||||
</classpath>
|
||||
</scalac>
|
||||
</target>
|
||||
|
||||
<target name="junit.compileTest" depends="compile">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
@@ -293,10 +294,13 @@
|
||||
<echo message="[DEBUG] ant home is ${ant.home}" />
|
||||
<echo message="[DEBUG] junit home before override is ${junit.home}" />
|
||||
<echo message="[DEBUG] hamcrest home before override is ${hamcrest.home}" />
|
||||
<echo message="[DEBUG] mockito home before override is ${mockito.home}" />
|
||||
<property name="hamcrest.home" value="${ant.home}/lib/" />
|
||||
<property name="junit.home" value="${ant.home}/lib/" />
|
||||
<property name="mockito.home" value="${ant.home}/lib" />
|
||||
<echo message="[DEBUG] junit home after override is ${junit.home}" />
|
||||
<echo message="[DEBUG] hamcrest home after override is ${hamcrest.home}" />
|
||||
<echo message="[DEBUG] mockito home after override is ${mockito.home}" />
|
||||
<javac srcdir="./test/junit" debug="true" source="${javac.version}" target="${javac.version}" deprecation="on"
|
||||
release="${javac.release}"
|
||||
debuglevel="lines,vars,source"
|
||||
@@ -310,11 +314,15 @@
|
||||
<pathelement location="${hamcrest.home}/hamcrest-library.jar" />
|
||||
<pathelement location="${hamcrest.home}/hamcrest-integration.jar" />
|
||||
<pathelement location="${hamcrest.home}/hamcrest-all.jar" />
|
||||
<pathelement location="${mockito.home}/byte-buddy.jar" />
|
||||
<pathelement location="${mockito.home}/objenesis.jar" />
|
||||
<pathelement location="${mockito.home}/mockito-core.jar" />
|
||||
<pathelement location="${junit.home}/junit4.jar" />
|
||||
</classpath>
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<!-- jars with tests -->
|
||||
<target name="jarScalaTest" depends="scalatest.compileTest">
|
||||
<mkdir dir="./build/obj_scala_jar" />
|
||||
@@ -443,6 +451,7 @@
|
||||
<fileset dir="../../reports/core/scalatest/" />
|
||||
</replaceregexp>
|
||||
</target>
|
||||
|
||||
<target name="junit.test" depends="clean, junit.compileTest, prepareTest">
|
||||
<property name="hamcrest.home" value="${ant.home}/lib/" />
|
||||
<property name="junit.home" value="${ant.home}/lib/" />
|
||||
@@ -461,6 +470,9 @@
|
||||
<pathelement location="${hamcrest.home}/hamcrest-library.jar" />
|
||||
<pathelement location="${hamcrest.home}/hamcrest-integration.jar" />
|
||||
<pathelement location="${hamcrest.home}/hamcrest-all.jar" />
|
||||
<pathelement location="${mockito.home}/byte-buddy.jar" />
|
||||
<pathelement location="${mockito.home}/objenesis.jar" />
|
||||
<pathelement location="${mockito.home}/mockito-core.jar" />
|
||||
<pathelement location="${junit.home}/junit4.jar" />
|
||||
<pathelement location="./build/obj_cobertura" />
|
||||
<pathelement location="./build/obj" />
|
||||
@@ -492,6 +504,7 @@
|
||||
<fileset dir="../../reports/core/junit/" />
|
||||
</replaceregexp>
|
||||
</target>
|
||||
|
||||
<target name="test" depends="junit.test, scalatest.test"/>
|
||||
<!-- test reports -->
|
||||
<target name="scalatest.report">
|
||||
|
||||
20
core/java/test/junit/net/i2p/TestContext.java
Normal file
20
core/java/test/junit/net/i2p/TestContext.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package net.i2p;
|
||||
|
||||
/**
|
||||
* @since 0.9.49
|
||||
*/
|
||||
public class TestContext extends I2PAppContext {
|
||||
|
||||
public TestContext() {
|
||||
TestContext.setGlobalContext(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows overriding the existing I2PAppContext with a test context whose fields we may mock as we like
|
||||
*
|
||||
* @param ctx Our test context to replace the global context with
|
||||
*/
|
||||
public static void setGlobalContext(TestContext ctx){
|
||||
_globalAppContext = ctx;
|
||||
}
|
||||
}
|
||||
54
core/java/test/junit/net/i2p/util/ConvertToHashMockTest.java
Normal file
54
core/java/test/junit/net/i2p/util/ConvertToHashMockTest.java
Normal file
@@ -0,0 +1,54 @@
|
||||
package net.i2p.util;
|
||||
|
||||
import net.i2p.TestContext;
|
||||
import net.i2p.client.naming.NamingService;
|
||||
import net.i2p.data.Destination;
|
||||
import net.i2p.data.Hash;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @since 0.9.49
|
||||
*/
|
||||
public class ConvertToHashMockTest {
|
||||
|
||||
@Mock private NamingService namingService;
|
||||
@Mock private Destination destination;
|
||||
@Mock private Hash hash;
|
||||
|
||||
@InjectMocks TestContext testContext;
|
||||
|
||||
@Before
|
||||
public void before() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the global context after all tests in the class are done.
|
||||
*
|
||||
* We would otherwise pollute the other tests that depend on I2PAppContext
|
||||
*/
|
||||
@AfterClass
|
||||
public static void afterClass() {
|
||||
TestContext.setGlobalContext(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMockedDestination() {
|
||||
when(namingService.lookup("zzz.i2p")).thenReturn(destination);
|
||||
when(destination.calculateHash()).thenReturn(hash);
|
||||
|
||||
assertSame(hash, ConvertToHash.getHash("zzz.i2p"));
|
||||
|
||||
verify(namingService).lookup("zzz.i2p");
|
||||
verify(destination).calculateHash();
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,9 @@ import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @since 0.9.49
|
||||
*/
|
||||
public class ConvertToHashTest {
|
||||
private static final String zzzDotI2pBase32Hash = "lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua";
|
||||
private static final String zzzDotI2pBase64Hash = "WcI~uSICHFCVVPoufn4J7v5u~1lhxi45C60Nm43jMeg=";
|
||||
|
||||
@@ -97,8 +97,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -107,6 +109,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
@@ -92,8 +92,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -102,6 +104,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
@@ -97,8 +97,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -107,6 +109,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
@@ -90,8 +90,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -100,6 +102,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
@@ -92,8 +92,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -102,6 +104,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
3
debian/i2p-router.links
vendored
3
debian/i2p-router.links
vendored
@@ -98,8 +98,10 @@ usr/share/flags/countries/16x11/cn.png usr/share/i2p/eepsite/docroot/help/lib/cn
|
||||
usr/share/flags/countries/16x11/de.png usr/share/i2p/eepsite/docroot/help/lib/de.png
|
||||
usr/share/flags/countries/16x11/es.png usr/share/i2p/eepsite/docroot/help/lib/es.png
|
||||
usr/share/flags/countries/16x11/fr.png usr/share/i2p/eepsite/docroot/help/lib/fr.png
|
||||
usr/share/flags/countries/16x11/gr.png usr/share/i2p/eepsite/docroot/help/lib/gr.png
|
||||
usr/share/flags/countries/16x11/hu.png usr/share/i2p/eepsite/docroot/help/lib/hu.png
|
||||
usr/share/flags/countries/16x11/id.png usr/share/i2p/eepsite/docroot/help/lib/id.png
|
||||
usr/share/flags/countries/16x11/ir.png usr/share/i2p/eepsite/docroot/help/lib/ir.png
|
||||
usr/share/flags/countries/16x11/it.png usr/share/i2p/eepsite/docroot/help/lib/it.png
|
||||
usr/share/flags/countries/16x11/nl.png usr/share/i2p/eepsite/docroot/help/lib/nl.png
|
||||
usr/share/flags/countries/16x11/pl.png usr/share/i2p/eepsite/docroot/help/lib/pl.png
|
||||
@@ -108,6 +110,7 @@ usr/share/flags/countries/16x11/ro.png usr/share/i2p/eepsite/docroot/help/lib/ro
|
||||
usr/share/flags/countries/16x11/ru.png usr/share/i2p/eepsite/docroot/help/lib/ru.png
|
||||
usr/share/flags/countries/16x11/se.png usr/share/i2p/eepsite/docroot/help/lib/se.png
|
||||
usr/share/flags/countries/16x11/tr.png usr/share/i2p/eepsite/docroot/help/lib/tr.png
|
||||
usr/share/flags/countries/16x11/ua.png usr/share/i2p/eepsite/docroot/help/lib/ua.png
|
||||
usr/share/flags/countries/16x11/us.png usr/share/i2p/eepsite/docroot/help/lib/us.png
|
||||
|
||||
|
||||
|
||||
3
debian/rules
vendored
3
debian/rules
vendored
@@ -51,9 +51,10 @@ endif
|
||||
|
||||
|
||||
%:
|
||||
dh $@ --with systemd,bash-completion
|
||||
dh $@ --with systemd,bash-completion,quilt
|
||||
|
||||
clean: createcopyright
|
||||
dh $@ --with systemd,bash-completion
|
||||
|
||||
override_dh_auto_clean:
|
||||
-[ -r $(CURDIR)/debian/routerversion.java.bak ] && mv -f $(CURDIR)/debian/routerversion.java.bak $(ROUTERVERSION)
|
||||
|
||||
61
docker/clients.config
Normal file
61
docker/clients.config
Normal file
@@ -0,0 +1,61 @@
|
||||
# NOTE: This I2P config file must use UTF-8 encoding
|
||||
#
|
||||
# If you have a 'split' directory installation, with configuration
|
||||
# files in ~/.i2p (Linux), %LOCALAPPDATA%\I2P (Windows),
|
||||
# or /Users/(user)/Library/Application Support/i2p (Mac), be sure to
|
||||
# edit the file in the configuration directory, NOT the install directory.
|
||||
# When running as a Linux daemon, the configuration directory is /var/lib/i2p
|
||||
# and the install directory is /usr/share/i2p .
|
||||
# When running as a Windows service, the configuration directory is \ProgramData\i2p
|
||||
# and the install directory is \Program Files\i2p .
|
||||
#
|
||||
# On first run, this file will be split into individual config files
|
||||
# in clients.config.d/ in the configuration directory.
|
||||
# Look in that directory for the file to edit.
|
||||
#
|
||||
|
||||
# fire up the web console
|
||||
## There are several choices, here are some examples:
|
||||
## non-SSL, bind to local IPv4 only
|
||||
#clientApp.0.args=7657 127.0.0.1 ./webapps/
|
||||
## non-SSL, bind to local IPv6 only
|
||||
#clientApp.0.args=7657 ::1 ./webapps/
|
||||
## non-SSL, bind to all IPv4 addresses
|
||||
#clientApp.0.args=7657 0.0.0.0 ./webapps/
|
||||
## non-SSL, bind to all IPv6 addresses
|
||||
#clientApp.0.args=7657 :: ./webapps/
|
||||
## For SSL only, change clientApp.4.args below to https://
|
||||
## SSL only
|
||||
#clientApp.0.args=-s 7657 ::1,127.0.0.1 ./webapps/
|
||||
## non-SSL and SSL
|
||||
#clientApp.0.args=7657 ::1,127.0.0.1 -s 7667 ::1,127.0.0.1 ./webapps/
|
||||
## non-SSL only, both IPv6 and IPv4 local interfaces
|
||||
clientApp.0.args=7657 0.0.0.0 ./webapps/
|
||||
clientApp.0.main=net.i2p.router.web.RouterConsoleRunner
|
||||
clientApp.0.name=webConsole
|
||||
clientApp.0.onBoot=true
|
||||
|
||||
# start up the SAM bridge so other client apps can connect
|
||||
clientApp.1.main=net.i2p.sam.SAMBridge
|
||||
clientApp.1.name=SAMBridge
|
||||
clientApp.1.args=sam.keys 0.0.0.0 7656 i2cp.tcp.host=localhost i2cp.tcp.port=7654
|
||||
clientApp.1.startOnLoad=false
|
||||
|
||||
# poke the i2ptunnels defined in i2ptunnel.config
|
||||
clientApp.2.main=net.i2p.i2ptunnel.TunnelControllerGroup
|
||||
clientApp.2.name=Tunnels
|
||||
clientApp.2.args=i2ptunnel.config
|
||||
|
||||
# run our own eepsite with a seperate jetty instance
|
||||
clientApp.3.main=org.mortbay.jetty.Server
|
||||
clientApp.3.name=eepsite
|
||||
clientApp.3.args=eepsite/jetty.xml
|
||||
clientApp.3.delay=30
|
||||
clientApp.3.startOnLoad=false
|
||||
|
||||
# load a browser pointing at the web console whenever we start up
|
||||
clientApp.4.main=net.i2p.apps.systray.UrlLauncher
|
||||
clientApp.4.name=consoleBrowser
|
||||
clientApp.4.args=http://localhost:7657/
|
||||
clientApp.4.delay=5
|
||||
clientApp.4.startOnLoad=false
|
||||
161
docker/i2ptunnel.config
Normal file
161
docker/i2ptunnel.config
Normal file
@@ -0,0 +1,161 @@
|
||||
# NOTE: This I2P config file must use UTF-8 encoding
|
||||
#
|
||||
# If you have a 'split' directory installation, with configuration
|
||||
# files in ~/.i2p (Linux), %LOCALAPPDATA%\I2P (Windows),
|
||||
# or /Users/(user)/Library/Application Support/i2p (Mac), be sure to
|
||||
# edit the file in the configuration directory, NOT the install directory.
|
||||
# When running as a Linux daemon, the configuration directory is /var/lib/i2p
|
||||
# and the install directory is /usr/share/i2p .
|
||||
# When running as a Windows service, the configuration directory is \ProgramData\i2p
|
||||
# and the install directory is \Program Files\i2p .
|
||||
#
|
||||
# On first run, this file will be split into individual config files
|
||||
# in i2ptunnel.config.d/ in the configuration directory.
|
||||
# Look in that directory for the file to edit.
|
||||
#
|
||||
|
||||
# eepproxy
|
||||
tunnel.0.name=I2P HTTP Proxy
|
||||
tunnel.0.description=HTTP proxy for browsing eepsites and the web
|
||||
tunnel.0.type=httpclient
|
||||
tunnel.0.sharedClient=true
|
||||
tunnel.0.interface=0.0.0.0
|
||||
tunnel.0.listenPort=4444
|
||||
tunnel.0.proxyList=false.i2p
|
||||
tunnel.0.i2cpHost=127.0.0.1
|
||||
tunnel.0.i2cpPort=7654
|
||||
tunnel.0.option.inbound.nickname=shared clients
|
||||
tunnel.0.option.outbound.nickname=shared clients
|
||||
tunnel.0.option.i2cp.leaseSetEncType=4,0
|
||||
tunnel.0.option.i2cp.reduceIdleTime=900000
|
||||
tunnel.0.option.i2cp.reduceOnIdle=true
|
||||
tunnel.0.option.i2cp.reduceQuantity=1
|
||||
tunnel.0.option.i2p.streaming.connectDelay=1000
|
||||
tunnel.0.option.i2ptunnel.httpclient.SSLOutproxies=false.i2p
|
||||
tunnel.0.option.inbound.length=3
|
||||
tunnel.0.option.inbound.lengthVariance=0
|
||||
tunnel.0.option.outbound.length=3
|
||||
tunnel.0.option.outbound.lengthVariance=0
|
||||
tunnel.0.option.outbound.priority=10
|
||||
tunnel.0.startOnLoad=true
|
||||
|
||||
# irc
|
||||
tunnel.1.name=Irc2P
|
||||
tunnel.1.description=IRC tunnel to access the Irc2P network
|
||||
tunnel.1.type=ircclient
|
||||
tunnel.1.sharedClient=false
|
||||
tunnel.1.interface=0.0.0.0
|
||||
tunnel.1.listenPort=6668
|
||||
tunnel.1.targetDestination=irc.postman.i2p:6667,irc.echelon.i2p:6667
|
||||
tunnel.1.i2cpHost=127.0.0.1
|
||||
tunnel.1.i2cpPort=7654
|
||||
tunnel.1.option.inbound.nickname=Irc2P
|
||||
tunnel.1.option.outbound.nickname=Irc2P
|
||||
tunnel.1.option.i2cp.closeIdleTime=1200000
|
||||
tunnel.1.option.i2cp.closeOnIdle=true
|
||||
tunnel.1.option.i2cp.delayOpen=true
|
||||
tunnel.1.option.i2cp.destination.sigType=7
|
||||
tunnel.1.option.i2cp.leaseSetEncType=4,0
|
||||
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.i2p.streaming.maxWindowSize=16
|
||||
tunnel.1.option.inbound.length=3
|
||||
tunnel.1.option.inbound.lengthVariance=0
|
||||
tunnel.1.option.outbound.length=3
|
||||
tunnel.1.option.outbound.lengthVariance=0
|
||||
tunnel.1.option.outbound.priority=15
|
||||
tunnel.1.startOnLoad=true
|
||||
|
||||
# local eepserver
|
||||
tunnel.3.name=I2P webserver
|
||||
tunnel.3.description=My eepsite
|
||||
tunnel.3.type=httpserver
|
||||
tunnel.3.targetHost=127.0.0.1
|
||||
tunnel.3.targetPort=7658
|
||||
tunnel.3.spoofedHost=mysite.i2p
|
||||
tunnel.3.privKeyFile=eepsite/eepPriv.dat
|
||||
tunnel.3.i2cpHost=127.0.0.1
|
||||
tunnel.3.i2cpPort=7654
|
||||
tunnel.3.option.inbound.nickname=eepsite
|
||||
tunnel.3.option.outbound.nickname=eepsite
|
||||
tunnel.3.option.i2cp.destination.sigType=7
|
||||
tunnel.3.option.i2cp.leaseSetEncType=4,0
|
||||
tunnel.3.option.inbound.length=3
|
||||
tunnel.3.option.inbound.lengthVariance=0
|
||||
tunnel.3.option.outbound.length=3
|
||||
tunnel.3.option.outbound.lengthVariance=0
|
||||
# uncomment for HTTPS to port 7668
|
||||
#tunnel.3.option.targetForPort.443=127.0.0.1:7668
|
||||
tunnel.3.startOnLoad=false
|
||||
|
||||
# postman's SMTP server - see hq.postman.i2p
|
||||
tunnel.4.description=smtp server
|
||||
tunnel.4.i2cpHost=127.0.0.1
|
||||
tunnel.4.i2cpPort=7654
|
||||
tunnel.4.interface=127.0.0.1
|
||||
tunnel.4.listenPort=7659
|
||||
tunnel.4.name=smtp.postman.i2p
|
||||
tunnel.4.option.inbound.nickname=shared clients
|
||||
tunnel.4.option.outbound.nickname=shared clients
|
||||
tunnel.4.option.i2cp.leaseSetEncType=4,0
|
||||
tunnel.4.option.i2cp.reduceIdleTime=900000
|
||||
tunnel.4.option.i2cp.reduceOnIdle=true
|
||||
tunnel.4.option.i2cp.reduceQuantity=1
|
||||
tunnel.4.option.inbound.length=3
|
||||
tunnel.4.option.inbound.lengthVariance=0
|
||||
tunnel.4.option.outbound.length=3
|
||||
tunnel.4.option.outbound.lengthVariance=0
|
||||
tunnel.4.startOnLoad=true
|
||||
tunnel.4.targetDestination=smtp.postman.i2p:25
|
||||
tunnel.4.type=client
|
||||
tunnel.4.sharedClient=true
|
||||
|
||||
# postman's POP3 server - see hq.postman.i2p
|
||||
tunnel.2.name=pop3.postman.i2p
|
||||
tunnel.2.description=pop3 server
|
||||
tunnel.2.i2cpHost=127.0.0.1
|
||||
tunnel.2.i2cpPort=7654
|
||||
tunnel.2.interface=127.0.0.1
|
||||
tunnel.2.listenPort=7660
|
||||
tunnel.2.option.inbound.nickname=shared clients
|
||||
tunnel.2.option.outbound.nickname=shared clients
|
||||
tunnel.2.option.i2cp.leaseSetEncType=4,0
|
||||
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.length=3
|
||||
tunnel.2.option.inbound.lengthVariance=0
|
||||
tunnel.2.option.outbound.length=3
|
||||
tunnel.2.option.outbound.lengthVariance=0
|
||||
tunnel.2.startOnLoad=true
|
||||
tunnel.2.targetDestination=pop.postman.i2p:110
|
||||
tunnel.2.type=client
|
||||
tunnel.2.sharedClient=true
|
||||
|
||||
# HTTPS (CONNECT) outproxy
|
||||
tunnel.5.name=I2P HTTPS Proxy
|
||||
tunnel.5.description=HTTPS proxy for browsing eepsites and the web
|
||||
tunnel.5.type=connectclient
|
||||
tunnel.5.sharedClient=true
|
||||
tunnel.5.interface=127.0.0.1
|
||||
tunnel.5.listenPort=4445
|
||||
tunnel.5.proxyList=outproxy-tor.meeh.i2p
|
||||
tunnel.5.i2cpHost=127.0.0.1
|
||||
tunnel.5.i2cpPort=7654
|
||||
tunnel.5.option.inbound.nickname=shared clients
|
||||
tunnel.5.option.outbound.nickname=shared clients
|
||||
tunnel.5.option.i2cp.leaseSetEncType=4,0
|
||||
tunnel.5.option.i2cp.reduceIdleTime=900000
|
||||
tunnel.5.option.i2cp.reduceOnIdle=true
|
||||
tunnel.5.option.i2cp.reduceQuantity=1
|
||||
tunnel.5.option.i2p.streaming.connectDelay=1000
|
||||
tunnel.5.option.inbound.length=3
|
||||
tunnel.5.option.inbound.lengthVariance=0
|
||||
tunnel.5.option.outbound.length=3
|
||||
tunnel.5.option.outbound.lengthVariance=0
|
||||
tunnel.5.startOnLoad=true
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
<a href="index_az.html"><img src="lib/az.png" title="Azerbaijani" alt="Azerbaijani"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_el.html"><img src="lib/gr.png" title="Ελληνικά" alt="Ελληνικά"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fa.html"><img src="lib/ir.png" title="فارسی" alt="فارسی"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_hu.html"><img src="lib/hu.png" title="Magyar" alt="Magyar"></a>
|
||||
<a href="index_in.html"><img src="lib/id.png" title="bahasa Indonesia" alt="bahasa Indonesia"></a>
|
||||
@@ -28,6 +30,7 @@
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
<a href="index_pl.html"><img src="lib/tr.png" title="Turkish" alt="Turkish"></a>
|
||||
<a href="index_uk.html"><img src="lib/ua.png" title="Українська" alt="Українська"></a>
|
||||
</div>
|
||||
|
||||
<h1>I2P Anonymous Webserver</h1>
|
||||
|
||||
182
installer/resources/eepsite/docroot/help/index_el.html
Normal file
182
installer/resources/eepsite/docroot/help/index_el.html
Normal file
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="el">
|
||||
<head>
|
||||
<title>I2P Ανώνυμος Server ιστού</title>
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="langbar">
|
||||
<a href="index.html"><img src="lib/us.png" title="English" alt="English"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
</div>
|
||||
|
||||
<h1>I2P Ανώνυμος Server ιστού</h1>
|
||||
|
||||
<h2>Οδηγός στο Ανώνυμο serving ιστού στο I2P</h2>
|
||||
|
||||
<p>Αυτός είναι ο δικός σου ανώνυμος I2P webserver (συνήθως αναφέρετε ως ένα <i>eepsite</i>).
|
||||
Για να προβάλεις το δικό σου περιεχόμενο, άπλα επεξεργάσου τα αρχεία στη ριζική διαδρομή του webserver και το site θα γίνει δημόσιο μόλις ακολουθήσεις τις οδηγίες παρακάτω.</p>
|
||||
|
||||
<p id="dir"> Η ριζική διαδρομή του webserver μπορεί να βρεθεί σε μια από τις παρακάτω τοποθεσίες, αναλόγως το λειτουργικό σου σύστημα:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Linux</b><br>
|
||||
Standard install: <code>~/.i2p/eepsite/docroot/</code><br>
|
||||
Package install, running as a service: <code>/var/lib/i2p/i2p-config/eepsite/docroot/</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Windows</b><br><code>%APPDATA%\I2P\eepsite\docroot\</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Mac</b><br><code>/Users/(user)/Library/Application Support/i2p</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Στο I2P οι κρυφές υπηρεσίες δρομολογούνται χρησιμοποιώντας μια Base32 διεύθυνση τελειώνοντας σε ".b32.i2p" , ή ένας προορισμός αντιπροσωπεύεται σε μια μεγάλη Base64 λωρίδα.
|
||||
Η Base32 διεύθυνση μπορεί να χρησιμοποιηθεί ως ένα hostname, μέχρι να το αναθέσεις ένα καταχωρημένο όνομα ακολουθώντας τις οδηγίες παρακάτω.
|
||||
Η διευθύνσεις είναι κάτι σαν μια IP διεύθυνση, και εμφανίζεται στην <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">σελίδα Ρυθμίσεις Κρυφών Υπηρεσιών</a>.</p>
|
||||
|
||||
<p>The instructions below detail how to assign a name like "mysite.i2p" to your website and enable access by others.
|
||||
You may reach your site locally via <a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>.</p>
|
||||
|
||||
<h2>How to set up and announce your hidden service</h2>
|
||||
|
||||
<p>Your webserver is running by default, but is not accessible by others until you start the hidden service tunnel.
|
||||
After you start your I2P Webserver tunnel, it will be difficult for other people to find
|
||||
It can only be accessed with the long Destination or with the shorter Base32 address (.b32.i2p), which is a hash of the Destination.
|
||||
You could just tell people the Destnation or the Base32 address, but thankfully I2P has an address book and several easy ways to tell people about your website.
|
||||
Here are detailed instructions.</p>
|
||||
|
||||
<ul>
|
||||
<li>Pick a name for your website (<i>something</i>.i2p), using lower-case.
|
||||
You may wish to check first in your own router's <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a> to see if your name is already taken.
|
||||
Enter the new name for your website on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a> where it says "Website name".
|
||||
This will replace the default "mysite.i2p".
|
||||
Also, if you would like your I2P Webserver tunnel to be automatically started when you start I2P, check the "Auto Start" box.
|
||||
Your website will now start every time you start your router.
|
||||
Be sure to click "Save".</li>
|
||||
<li>Click the start button for your webserver tunnel on the <a href="http://127.0.0.1:7657/i2ptunnel/">main Hidden Service Manager page</a>.
|
||||
You should now see it listed under "Local Tunnels" on the left side of the <a href="http://127.0.0.1:7657/">I2P Router Console</a>.
|
||||
Your website is now running.</li>
|
||||
<li>Highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</li>
|
||||
<li>Enter the name and paste the destination into your <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a>.
|
||||
Click "Add" to save the new entry.</li>
|
||||
<li>In your browser, enter in your website name (<i>something</i>.i2p) and you should be right back here.
|
||||
Hopefully it worked!</li>
|
||||
<li>Before you tell the world about your new website, you should add some content.
|
||||
Go to the server's root directory <a href="#dir">listed above</a> and replace the index.html redirect page with your own content.</li>
|
||||
</ul>
|
||||
<p>Directory listings are enabled, so you may host files from a subdirectory without providing a page with links to the files.
|
||||
You may change the appearance of the directory by supplying an edited <a href="lib/jetty-dir.css">jetty-dir.css</a> file for each directory.
|
||||
The <a href="lib/">lib subdirectory</a> demonstrates a custom style.
|
||||
The <a href="lib/resources">resources subdirectory</a> demonstrates the default style.
|
||||
If you need a template for a basic site, feel free to adapt <a href="pagetemplate.html">this page</a> and <a href="lib/">associated content</a>.</p>
|
||||
|
||||
<p>If you're returned to this page after editing the content, try clearing your browser's web cache:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Firefox:</b> Preferences ➜ Advanced ➜ Network ➜ Cached Web Content ➜ Clear Now</li>
|
||||
<li>
|
||||
<b>Chrome/Chromium:</b> Settings ➜ Advanced Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
<li>
|
||||
<b>Opera:</b> Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
</ul>
|
||||
<h2>Register your own I2P Domain</h2>
|
||||
|
||||
<p>Now it is time to add your website to an I2P address book hosted by a site such as <a href="http://stats.i2p/%20" target="_blank">stats.i2p</a> or <a href="http://no.i2p/" target="_blank">no.i2p</a>.
|
||||
You must enter your website name and Destination (or Registration Authentication string) on one or more of these sites.</p>
|
||||
<p>Some registration sites require the Destination.
|
||||
If so, highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</p>
|
||||
<p>Some registration sites, including <a href="http://stats.i2p/i2p/addkey.html" target="_blank">stats.i2p</a>, require the Registration Authentication string.
|
||||
It is found on the <a href="http://127.0.0.1:7657/i2ptunnel/register?tunnel=3">Registration Authentication page</a> linked from the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service configuration page</a>.
|
||||
Copy the entire authentication string and paste it on the registration page.
|
||||
Make sure you copy the whole thing, it is over 500 characters.
|
||||
Describe your site briefly if the site requests this information.
|
||||
If your site is a HTTP service, leave the checkbox selected; if not, unselect it.</p>
|
||||
<p>For all registration sites, read through the Terms of Service carefully.
|
||||
Click the "Submit" button.
|
||||
Verify the submission was successful.
|
||||
Since many routers periodically get address book updates from these sites, within several hours others will be able to find your website by simply entering your hostname in their browser.</p>
|
||||
|
||||
<h2>Adding Addressbook Subscriptions</h2>
|
||||
|
||||
<p>Speaking of address book updates, this would be a good time to add some more addressbooks to your own subscription list.
|
||||
Go to your <a href="http://127.0.0.1:7657/susidns/subscriptions">Subscriptions Configuration page</a> and add one or more for an automatically updated list of new hosts:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>http://stats.i2p/cgi-bin/newhosts.txt</code> (<a href="http://stats.i2p/cgi-bin/newhosts.txt" target="_blank">stats.i2p</a>)</li>
|
||||
<li>
|
||||
<code>http://no.i2p/export/alive-hosts.txt</code> (<a href="http://no.i2p/export/alive-hosts.txt" target="_blank">no.i2p</a>)</li>
|
||||
</ul>
|
||||
<p>If you are in a hurry and can't wait a few hours, you can tell people to use a "jump" address helper redirection service.
|
||||
This will work within a few minutes of your registering your hostname on the same site.
|
||||
Test it yourself first by entering <code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>something</i>.i2p</code> into your browser.
|
||||
Once it is working, you can tell others to use it.</p>
|
||||
|
||||
<p>Some people check website lists such as <a href="http://identiguy.i2p/" target="_blank">Identiguy's eepsite status list</a> or <a href="http://no.i2p/browse/" target="_blank">no.i2p's active host list</a> for new eepsites, so your site may start getting some traffic.
|
||||
There are plenty of other ways to tell people. Here are a few ideas:</p>
|
||||
|
||||
<ul>
|
||||
<li>Post a message on the <a href="http://i2pforum.i2p/" target="_blank">I2P forum</a> telling everyone about your new I2P website!</li>
|
||||
<li>Tell people about it on the #i2p or #i2p-chat channels on IRC.</li>
|
||||
<li>Put it on the <a href="http://i2pwiki.i2p/index.php?title=Eepsite/Services" target="_blank">I2PWiki Eepsite Index</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note that some sites recommend pasting in that really long destination.
|
||||
You can if you want, but if you have successfully registered your hostname on a registration service, tested it using a jump service, and waited 24 hours for the address book update to propagate to others, that shouldn't be necessary.</p>
|
||||
|
||||
<h2>Using an alternative webserver to host your site</h2>
|
||||
|
||||
<p>This site (and the I2P router console) is running on the <a href="https://en.wikipedia.org/wiki/Jetty_(web_server)" target="_blank">Jetty webserver</a>, but you may wish to use a different webserver to host your content.
|
||||
To maintain anonymity, be sure that your webserver is configured to only allow connections from localhost (127.0.0.1), and check the documentation to ensure your webserver isn't advertising details that may compromise your anonymity.</p>
|
||||
|
||||
<p>To configure your webserver for use on I2P, you may either use the existing webserver tunnel and <a href="http://127.0.0.1:7657/configclients">disable the default webserver</a> from running, or create a new HTTP Server tunnel in the <a href="http://127.0.0.1:7657/i2ptunnelmgr">Hidden Services Manager</a>.
|
||||
Ensure that the listening port configured for the webserver (7658 by default) is also configured in the Hidden Services settings.
|
||||
For example, if your webserver is listening by default on address 127.0.0.1 port 80, you'd need to also ensure that the Target port in the Hidden Service Manager settings page for the service is also configured to port 80.</p>
|
||||
|
||||
<p>Beware that a poorly configured webserver or web appplication can leak potentially compromising information such as
|
||||
your real IP address or server details that may reduce your anonymity or assist a hacker.
|
||||
We recommend using the default server unless you feel comfortable doing server administration.
|
||||
Please ensure your web server is secure prior to placing it online.
|
||||
There are plenty of guides online, for example if you search for "nginx security hardening guide" you will find a number of guides that have good recommendations.</p>
|
||||
|
||||
<p>There is one important issue with the Apache web server.
|
||||
The <code>mod_status</code> and <code>mod_info</code> Apache modules are enabled by default on some operating systems.
|
||||
These modules expose internal data which can lead to serious compromise of anonymity when used on an anonymous network.
|
||||
Removing the lines in the configuration file where these modules are loaded is the easiest way to prevent these issues.</p>
|
||||
|
||||
<h2>Further Assistance</h2>
|
||||
|
||||
<p>If you have any questions, the following places are available for support:</p>
|
||||
|
||||
<ul>
|
||||
<li>Our IRC support channel:<ul>
|
||||
<li><a href="irc://irc.freenode.net/i2p">#i2p on Freenode</a></li>
|
||||
<li>Anonymously using your local <a href="irc://127.0.0.1:6668/i2p">I2P IRC tunnel</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>The project forum <a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>.</li>
|
||||
<li><a href="http://i2pwiki.i2p/index.php?title=EepsiteHosting" target="_blank">I2PWiki Eepsite Hosting guide</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<div class="notify">This page, the project website and the router console need translations!
|
||||
Please help the project grow by <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank"> getting involved</a> or <a href="http://i2p-projekt.i2p/en/get-involved/guides/new-translators" target="_blank">translating</a>.</div>
|
||||
<hr>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
182
installer/resources/eepsite/docroot/help/index_fa.html
Normal file
182
installer/resources/eepsite/docroot/help/index_fa.html
Normal file
@@ -0,0 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fa">
|
||||
<head>
|
||||
<title>وب سرور ناشناس I2P</title>
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="langbar">
|
||||
<a href="index.html"><img src="lib/us.png" title="English" alt="English"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
</div>
|
||||
|
||||
<h1>وب سرور ناشناس I2P</h1>
|
||||
|
||||
<h2>Guide to Anonymous Webserving on I2P</h2>
|
||||
|
||||
<p>This is your own anonymous I2P webserver (traditionally referred to as an <i>eepsite</i>).
|
||||
To serve your own content, simply edit the files in the webserver's root directory and the site will be public once you follow the instructions below.</p>
|
||||
|
||||
<p id="dir">The webserver's root directory can be found in one of the following locations, depending on your operating system:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Linux</b><br>
|
||||
Standard install: <code>~/.i2p/eepsite/docroot/</code><br>
|
||||
Package install, running as a service: <code>/var/lib/i2p/i2p-config/eepsite/docroot/</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>ویندوز</b><br><code>%APPDATA%\I2P\eepsite\docroot\</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>مکینتاش</b><br><code>/Users/(user)/Library/Application Support/i2p</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>In I2P, hidden services are addressed using a Base32 address ending in ".b32.i2p", or a Destination represented as a long Base64 string.
|
||||
The Base32 address may be used as a hostname, until you assign a register a name following the instructions below.
|
||||
The Destination is somewhat like an IP address, and is shown on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.</p>
|
||||
|
||||
<p>The instructions below detail how to assign a name like "mysite.i2p" to your website and enable access by others.
|
||||
You may reach your site locally via <a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>.</p>
|
||||
|
||||
<h2>How to set up and announce your hidden service</h2>
|
||||
|
||||
<p>Your webserver is running by default, but is not accessible by others until you start the hidden service tunnel.
|
||||
After you start your I2P Webserver tunnel, it will be difficult for other people to find
|
||||
It can only be accessed with the long Destination or with the shorter Base32 address (.b32.i2p), which is a hash of the Destination.
|
||||
You could just tell people the Destnation or the Base32 address, but thankfully I2P has an address book and several easy ways to tell people about your website.
|
||||
Here are detailed instructions.</p>
|
||||
|
||||
<ul>
|
||||
<li>Pick a name for your website (<i>something</i>.i2p), using lower-case.
|
||||
You may wish to check first in your own router's <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a> to see if your name is already taken.
|
||||
Enter the new name for your website on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a> where it says "Website name".
|
||||
This will replace the default "mysite.i2p".
|
||||
Also, if you would like your I2P Webserver tunnel to be automatically started when you start I2P, check the "Auto Start" box.
|
||||
Your website will now start every time you start your router.
|
||||
Be sure to click "Save".</li>
|
||||
<li>Click the start button for your webserver tunnel on the <a href="http://127.0.0.1:7657/i2ptunnel/">main Hidden Service Manager page</a>.
|
||||
You should now see it listed under "Local Tunnels" on the left side of the <a href="http://127.0.0.1:7657/">I2P Router Console</a>.
|
||||
Your website is now running.</li>
|
||||
<li>Highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</li>
|
||||
<li>Enter the name and paste the destination into your <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a>.
|
||||
Click "Add" to save the new entry.</li>
|
||||
<li>In your browser, enter in your website name (<i>something</i>.i2p) and you should be right back here.
|
||||
Hopefully it worked!</li>
|
||||
<li>Before you tell the world about your new website, you should add some content.
|
||||
Go to the server's root directory <a href="#dir">listed above</a> and replace the index.html redirect page with your own content.</li>
|
||||
</ul>
|
||||
<p>Directory listings are enabled, so you may host files from a subdirectory without providing a page with links to the files.
|
||||
You may change the appearance of the directory by supplying an edited <a href="lib/jetty-dir.css">jetty-dir.css</a> file for each directory.
|
||||
The <a href="lib/">lib subdirectory</a> demonstrates a custom style.
|
||||
The <a href="lib/resources">resources subdirectory</a> demonstrates the default style.
|
||||
If you need a template for a basic site, feel free to adapt <a href="pagetemplate.html">this page</a> and <a href="lib/">associated content</a>.</p>
|
||||
|
||||
<p>If you're returned to this page after editing the content, try clearing your browser's web cache:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Firefox:</b> Preferences ➜ Advanced ➜ Network ➜ Cached Web Content ➜ Clear Now</li>
|
||||
<li>
|
||||
<b>Chrome/Chromium:</b> Settings ➜ Advanced Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
<li>
|
||||
<b>Opera:</b> Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
</ul>
|
||||
<h2>ثبت نام دامنه I2P خود</h2>
|
||||
|
||||
<p>Now it is time to add your website to an I2P address book hosted by a site such as <a href="http://stats.i2p/%20" target="_blank">stats.i2p</a> or <a href="http://no.i2p/" target="_blank">no.i2p</a>.
|
||||
You must enter your website name and Destination (or Registration Authentication string) on one or more of these sites.</p>
|
||||
<p>Some registration sites require the Destination.
|
||||
If so, highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</p>
|
||||
<p>Some registration sites, including <a href="http://stats.i2p/i2p/addkey.html" target="_blank">stats.i2p</a>, require the Registration Authentication string.
|
||||
It is found on the <a href="http://127.0.0.1:7657/i2ptunnel/register?tunnel=3">Registration Authentication page</a> linked from the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service configuration page</a>.
|
||||
Copy the entire authentication string and paste it on the registration page.
|
||||
Make sure you copy the whole thing, it is over 500 characters.
|
||||
Describe your site briefly if the site requests this information.
|
||||
If your site is a HTTP service, leave the checkbox selected; if not, unselect it.</p>
|
||||
<p>For all registration sites, read through the Terms of Service carefully.
|
||||
Click the "Submit" button.
|
||||
Verify the submission was successful.
|
||||
Since many routers periodically get address book updates from these sites, within several hours others will be able to find your website by simply entering your hostname in their browser.</p>
|
||||
|
||||
<h2>Adding Addressbook Subscriptions</h2>
|
||||
|
||||
<p>Speaking of address book updates, this would be a good time to add some more addressbooks to your own subscription list.
|
||||
Go to your <a href="http://127.0.0.1:7657/susidns/subscriptions">Subscriptions Configuration page</a> and add one or more for an automatically updated list of new hosts:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>http://stats.i2p/cgi-bin/newhosts.txt</code> (<a href="http://stats.i2p/cgi-bin/newhosts.txt" target="_blank">stats.i2p</a>)</li>
|
||||
<li>
|
||||
<code>http://no.i2p/export/alive-hosts.txt</code> (<a href="http://no.i2p/export/alive-hosts.txt" target="_blank">no.i2p</a>)</li>
|
||||
</ul>
|
||||
<p>If you are in a hurry and can't wait a few hours, you can tell people to use a "jump" address helper redirection service.
|
||||
This will work within a few minutes of your registering your hostname on the same site.
|
||||
Test it yourself first by entering <code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>something</i>.i2p</code> into your browser.
|
||||
Once it is working, you can tell others to use it.</p>
|
||||
|
||||
<p>Some people check website lists such as <a href="http://identiguy.i2p/" target="_blank">Identiguy's eepsite status list</a> or <a href="http://no.i2p/browse/" target="_blank">no.i2p's active host list</a> for new eepsites, so your site may start getting some traffic.
|
||||
There are plenty of other ways to tell people. Here are a few ideas:</p>
|
||||
|
||||
<ul>
|
||||
<li>Post a message on the <a href="http://i2pforum.i2p/" target="_blank">I2P forum</a> telling everyone about your new I2P website!</li>
|
||||
<li>Tell people about it on the #i2p or #i2p-chat channels on IRC.</li>
|
||||
<li>Put it on the <a href="http://i2pwiki.i2p/index.php?title=Eepsite/Services" target="_blank">I2PWiki Eepsite Index</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note that some sites recommend pasting in that really long destination.
|
||||
You can if you want, but if you have successfully registered your hostname on a registration service, tested it using a jump service, and waited 24 hours for the address book update to propagate to others, that shouldn't be necessary.</p>
|
||||
|
||||
<h2>Using an alternative webserver to host your site</h2>
|
||||
|
||||
<p>This site (and the I2P router console) is running on the <a href="https://en.wikipedia.org/wiki/Jetty_(web_server)" target="_blank">Jetty webserver</a>, but you may wish to use a different webserver to host your content.
|
||||
To maintain anonymity, be sure that your webserver is configured to only allow connections from localhost (127.0.0.1), and check the documentation to ensure your webserver isn't advertising details that may compromise your anonymity.</p>
|
||||
|
||||
<p>To configure your webserver for use on I2P, you may either use the existing webserver tunnel and <a href="http://127.0.0.1:7657/configclients">disable the default webserver</a> from running, or create a new HTTP Server tunnel in the <a href="http://127.0.0.1:7657/i2ptunnelmgr">Hidden Services Manager</a>.
|
||||
Ensure that the listening port configured for the webserver (7658 by default) is also configured in the Hidden Services settings.
|
||||
For example, if your webserver is listening by default on address 127.0.0.1 port 80, you'd need to also ensure that the Target port in the Hidden Service Manager settings page for the service is also configured to port 80.</p>
|
||||
|
||||
<p>Beware that a poorly configured webserver or web appplication can leak potentially compromising information such as
|
||||
your real IP address or server details that may reduce your anonymity or assist a hacker.
|
||||
We recommend using the default server unless you feel comfortable doing server administration.
|
||||
Please ensure your web server is secure prior to placing it online.
|
||||
There are plenty of guides online, for example if you search for "nginx security hardening guide" you will find a number of guides that have good recommendations.</p>
|
||||
|
||||
<p>There is one important issue with the Apache web server.
|
||||
The <code>mod_status</code> and <code>mod_info</code> Apache modules are enabled by default on some operating systems.
|
||||
These modules expose internal data which can lead to serious compromise of anonymity when used on an anonymous network.
|
||||
Removing the lines in the configuration file where these modules are loaded is the easiest way to prevent these issues.</p>
|
||||
|
||||
<h2>Further Assistance</h2>
|
||||
|
||||
<p>If you have any questions, the following places are available for support:</p>
|
||||
|
||||
<ul>
|
||||
<li>کانال پشتیبانی IRC ما:<ul>
|
||||
<li><a href="irc://irc.freenode.net/i2p">#i2p روی Freenode</a></li>
|
||||
<li>Anonymously using your local <a href="irc://127.0.0.1:6668/i2p">I2P IRC tunnel</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>انجمن پروژه <a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>.</li>
|
||||
<li><a href="http://i2pwiki.i2p/index.php?title=EepsiteHosting" target="_blank">I2PWiki Eepsite Hosting guide</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<div class="notify">This page, the project website and the router console need translations!
|
||||
Please help the project grow by <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank"> getting involved</a> or <a href="http://i2p-projekt.i2p/en/get-involved/guides/new-translators" target="_blank">translating</a>.</div>
|
||||
<hr>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,143 +1,182 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>I2P Anonym Webbserver | Välkommen till din eepsite</title>
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
<div class="main">
|
||||
<div class="langbar">
|
||||
<!-- Some of these languages listed here are yet to be translated -->
|
||||
<html lang="sv_SE">
|
||||
<head>
|
||||
<title>I2P anonym webbserver</title>
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="langbar">
|
||||
<a href="index.html"><img src="lib/us.png" title="English" alt="English"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_na.html"><img src="lib/ir.png" title="فارسی" alt="فارسی"></a>
|
||||
<a href="index_na.html"><img src="lib/jp.png" title="日本語" alt="日本語"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
</div>
|
||||
<h1>I2P Anonym Webbserver</h1>
|
||||
<h2>Snabb vägledning till anonym webbservning på I2P</h2>
|
||||
|
||||
<p>Det här är din eepsite, din egen anonyma I2P-webbserver - redigera bara filerna
|
||||
under <code>~/.i2p/eepsite/docroot/</code> (Linux),
|
||||
<code>%LOCALAPPDATA%\I2P\eepsite\docroot\</code> (Windows),
|
||||
eller <code>/Users/(user)/Library/Application Support/i2p</code> (Mac),
|
||||
så kommer andra kunna nå dem efter att du följt instruktionerna nedan.
|
||||
I I2P så adresseras eepsajter med en 'nyckel', som representeras som en väldigt lång Base64-sträng.
|
||||
('Nyckeln' är något så när analog med en IP-adress och visas
|
||||
på eepsajtens I2PTunnel-<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">konfigurationssida</a>).
|
||||
Nedan ges instruktioner om hur du kan ange ett namn som "minsajt.i2p" till din nyckel och börja köra din eepsajt.</p>
|
||||
<p>Du kan nå din eepsajt lokalt via
|
||||
<a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>.
|
||||
</p>
|
||||
<h1>I2P anonym webbserver</h1>
|
||||
|
||||
<h2>Att sätta upp och annonsera din eepsajt</h2>
|
||||
<p>Din eepsajt är stoppad som standard.
|
||||
Efter att du startat den kommer det att vara svårt för att andra att hitta den,
|
||||
eftersom den inte har ett namn och de inte känner till din mycket långa Base64-nyckel.
|
||||
Du skulle bara kunna berätta för andra om den långa nyckeln, men tacksamt nog har i2p en
|
||||
adressbok och många enkla sätt att berätta för folk om din eepsajt. Här är alla stegen.</p>
|
||||
<ul>
|
||||
<li>Välj ett namn åt din eepsajt (<i>ettbranamn</i>.i2p). Små bokstäver.
|
||||
Kanske vill du först kolla i
|
||||
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">din routers adressbok</a>,
|
||||
eller i filen <code>i2p/hosts.txt</code> för att se om ditt tilltänkta namn redan är taget.
|
||||
Skriv in namnet för din eepsajt på
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsitekonfigurationssidan för i2ptunnel</a>
|
||||
där det står "Website name". Detta kommer att ersätta det förinställda "mysite.i2p".
|
||||
När du är där, kryssa i "Auto Start"-rutan. Din eepsajt kommer nu att starta varje gång som du startar
|
||||
din router.
|
||||
Tryck sedan på "Save".</li>
|
||||
<li>Klicka på startknappen för din eepsajt på
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">huvudkonfigurationssidan för i2ptunnel</a>.
|
||||
Du borde nu kunna se "eepsite" listad under "Local Destinations" på vänster sida om
|
||||
<a href="http://127.0.0.1:7657/index.jsp">I2P Router Console</a>.
|
||||
Din eepsajt kör nu.</li>
|
||||
<li>Markera hela "Local destination"-nyckeln på
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsitekonfigurationssidan för i2ptunnel</a>
|
||||
och kopiera den för att senare klistra in den.
|
||||
Säkerställ att du får med hela texten - det är mer än 500 bokstäver.</li>
|
||||
<li>Skriv in namnet och klistra in destinationsnyckeln i din
|
||||
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">huvudadressbok</a>.
|
||||
Klicka på "Add" för att lägga till destinationen i din adressbok.
|
||||
<li>I din webbläsare, skriv in ditt eepsajtnamn (<i>ettbranamn</i>.i2p) så borde du landa på den här sidan igen.
|
||||
Förhoppningsvis fungerade det.</li>
|
||||
<li>Innan du berättar för världen om den nya eepsajt borde du lägga till lite innehåll.
|
||||
Gå till <code>~/.i2p/eepsite/docroot/</code> (Linux),
|
||||
<code>%LOCALAPPDATA%\I2P\eepsite\docroot\</code> (Windows),
|
||||
eller <code>/Users/(user)/Library/Application Support/i2p</code> (Mac),
|
||||
och ersätt omdirigeringssidan index.html med ditt eget innehåll. Virtuella mappar fungerar, så du kan serva filer från en
|
||||
underkatalog utan att behöva ge en sida med länkar till filer. Om du behöver en mall för en enkel sajt så
|
||||
varsågod och låna och anpassa
|
||||
<a href="pagetemplate.html">denna sida</a> och <a href="lib/">det här innehållet</a>!</li>
|
||||
</ul>
|
||||
<h2>Registrera din egen .I2P-domän</h2>
|
||||
<p>Nu är det dags att lägga till din eepsajt till en I2P-adressbok som hostas på en sajt
|
||||
som <a href="http://stats.i2p/">stats.i2p</a>.
|
||||
Alltså, du måste skriva in namn och nyckeln på din eepsajt i ett webbgränssnitt på
|
||||
en eller flera av dessa sajter.
|
||||
Här är <a href="http://stats.i2p/i2p/addkey.html">nyckelinmatningsformuläret hos stats.i2p</a>.
|
||||
Återigen, din nyckel är hela "Local destination"-nyckeln på
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite-konfigurationssidan för i2ptunnel</a>.
|
||||
Säkerställ att du får med hela texten.
|
||||
Glöm inte att klicka på "add a key".
|
||||
Kolla att den rapporterar att nyckeln lagts till.
|
||||
Eftersom många routrar periodiskt skaffar adressboksuppdateringar från dessa sajter
|
||||
så kommer andra att kunna finna din eepsajt inom ett antal timmar, bara genom att
|
||||
skriva <i>ettbranamn</i>.i2p i sin webbläsare.</p>
|
||||
<h2>Att prenumerera på adressböcker</h2>
|
||||
<p>På tal adressboksuppdateringar, nu vore en bra tidpunkt att lägga till några fler adressböcker
|
||||
till din egen
|
||||
<a href="http://127.0.0.1:7657/susidns/subscriptions.jsp">prenumerationslista</a>.
|
||||
Gå till din prenumerationsinställningssida och lägg till ett par av de här för en automatiskt uppdaterad
|
||||
lista över nya hosts:</p><ul>
|
||||
<li><a href="http://tino.i2p/hosts.txt">http://tino.i2p/hosts.txt</a></li>
|
||||
<li><a href="http://stats.i2p/cgi-bin/newhosts.txt">http://stats.i2p/cgi-bin/newhosts.txt</a></li>
|
||||
<li><a href="http://i2host.i2p/cgi-bin/i2hostetag">http://i2host.i2p/cgi-bin/i2hostetag</a></li></ul>
|
||||
<ul><li>Om du har bråttom och inte kan vänta ett par timmar så kan du säga åt folk att använda en "jump"-adresshjälpar-
|
||||
omdirigeringstjänst.
|
||||
Detta kommer att funka inom ett par minuter efter att du skrivit in nyckeln i en adressbok på samma sajt.
|
||||
Prova först själv genom att skriva:
|
||||
<code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>ettbranamn</i>.i2p</code> eller
|
||||
<code>http://i2host.i2p/cgi-bin/i2hostjump?<i>ettbranamn</i>.i2p</code>
|
||||
i din webbläsare.
|
||||
Så snart som det funkar kan du berätta för andra att de ska använda det.</li>
|
||||
<li>Vissa människor kolla på eepsajtlistor som
|
||||
<a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p/status.php</a> eller <a href="http://perv.i2p">perv.i2p</a> efter nya eepsajter,
|
||||
så att du kan börja få ett par besökare. Men det finns massor av sätt att berätta för folk.
|
||||
Här är en rad idëer:
|
||||
<ul>
|
||||
<li>Posta en meddelanden på <a href="http://forum.i2p/viewforum.php?f=16">Eepsajt-annonseringsforum</a>
|
||||
eller på <a href="http://forum.i2p/">forum.i2p</a>.</li>
|
||||
<li>Berätta det för folk på chattkanalen #i2p eller #i2p-chat på IRC.</li>
|
||||
<li>Säg det i en ny post och lägg den på <a href="http://syndie.i2p2.de/">den nya Syndie</a>.</li>
|
||||
<li>Lägg det i <a href="http://ugha.i2p/EepsiteIndex">Ugha's Eepsite Index Wiki</a></li>
|
||||
</ul></ul>
|
||||
<p>Notera att vissa sajter rekommenderar att du klistrar in den verkligt
|
||||
långa destinationsnyckeln. Det kan du om vill - men om du har framgångsrikt har skickat din
|
||||
nyckel, testat den med en "hopptjänst", och väntat 24 timmar på att adressboken ska börja
|
||||
propagera sina ändringar till andra, så det borde inte vara nödvändigt.</p>
|
||||
<h2>Vidare assistans</h2>
|
||||
<p>
|
||||
Ifall du har några frågor, så finns följande ställen för support:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Vår IRC-supportkanal: <ul><li><a href="irc://irc.freenode.net/i2p">#i2p on Freenode</a></li>
|
||||
<li><a href="irc://127.0.0.1:6668/i2p">eller anonymt via I2P-IRC-tunnel</a>.</li>
|
||||
<li><a href="http://forum.i2p/viewforum.php?f=10">Sektionen om tekniska problem</a> på
|
||||
<a href="http://forum.i2p/">forum.i2p</a>.</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<div class="notify">
|
||||
<b>Note:</b> This page, the website and the console all need translating into YOUR language if it's not already been done or in progress. Please consider helping the project grow by <a href="http://www.i2p2.i2p/getinvolved.html">volunteering your time</a> to translate. Contact the project via the IRC channel listed above. Thanks in advance!</div>
|
||||
<hr><div class="footnote">
|
||||
Document last edited: November 2010.</div>
|
||||
<h2>Guide till anonyma webbserver på I2P</h2>
|
||||
|
||||
<p>Detta är din egen anonyma I2P-webbserver (traditionellt kallad en <i>eepsida</i>).
|
||||
För att betjäna ditt eget innehåll, redigerar du bara filerna i webbserverens rotkatalog så kommer webbplatsen att vara offentlig när du följer instruktionerna nedan.</p>
|
||||
|
||||
<p id="dir">Webbserverns rotkatalog finns på en av följande platser, beroende på ditt operativsystem:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Linux</b><br>
|
||||
Standardinstallation: <code>~/.i2p/eepsite/docroot/</code><br>
|
||||
Paketinstallation, körs som en tjänst: <code>/var/lib/i2p/i2p-config/eepsite/docroot/</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Windows</b><br><code>%APPDATA%\I2P\eepsite\docroot\</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Mac</b><br><code>/Users/(user)/Library/Application Support/i2p</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>In I2P, hidden services are addressed using a Base32 address ending in ".b32.i2p", or a Destination represented as a long Base64 string.
|
||||
The Base32 address may be used as a hostname, until you assign a register a name following the instructions below.
|
||||
The Destination is somewhat like an IP address, and is shown on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.</p>
|
||||
|
||||
<p>Instruktionerna nedan beskriver hur du tilldelar ett namn som "minsida.i2p" till din webbplats och möjliggör åtkomst för andra.
|
||||
Du kan nå din webbplats lokalt via <a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>.</p>
|
||||
|
||||
<h2>Så här ställer du in och annonserar din dolda tjänst</h2>
|
||||
|
||||
<p>Your webserver is running by default, but is not accessible by others until you start the hidden service tunnel.
|
||||
After you start your I2P Webserver tunnel, it will be difficult for other people to find
|
||||
It can only be accessed with the long Destination or with the shorter Base32 address (.b32.i2p), which is a hash of the Destination.
|
||||
You could just tell people the Destnation or the Base32 address, but thankfully I2P has an address book and several easy ways to tell people about your website.
|
||||
Here are detailed instructions.</p>
|
||||
|
||||
<ul>
|
||||
<li>Pick a name for your website (<i>something</i>.i2p), using lower-case.
|
||||
You may wish to check first in your own router's <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a> to see if your name is already taken.
|
||||
Enter the new name for your website on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a> where it says "Website name".
|
||||
This will replace the default "mysite.i2p".
|
||||
Also, if you would like your I2P Webserver tunnel to be automatically started when you start I2P, check the "Auto Start" box.
|
||||
Your website will now start every time you start your router.
|
||||
Be sure to click "Save".</li>
|
||||
<li>Click the start button for your webserver tunnel on the <a href="http://127.0.0.1:7657/i2ptunnel/">main Hidden Service Manager page</a>.
|
||||
You should now see it listed under "Local Tunnels" on the left side of the <a href="http://127.0.0.1:7657/">I2P Router Console</a>.
|
||||
Your website is now running.</li>
|
||||
<li>Highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</li>
|
||||
<li>Enter the name and paste the destination into your <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a>.
|
||||
Click "Add" to save the new entry.</li>
|
||||
<li>In your browser, enter in your website name (<i>something</i>.i2p) and you should be right back here.
|
||||
Hopefully it worked!</li>
|
||||
<li>Before you tell the world about your new website, you should add some content.
|
||||
Go to the server's root directory <a href="#dir">listed above</a> and replace the index.html redirect page with your own content.</li>
|
||||
</ul>
|
||||
<p>Directory listings are enabled, so you may host files from a subdirectory without providing a page with links to the files.
|
||||
You may change the appearance of the directory by supplying an edited <a href="lib/jetty-dir.css">jetty-dir.css</a> file for each directory.
|
||||
The <a href="lib/">lib subdirectory</a> demonstrates a custom style.
|
||||
The <a href="lib/resources">resources subdirectory</a> demonstrates the default style.
|
||||
If you need a template for a basic site, feel free to adapt <a href="pagetemplate.html">this page</a> and <a href="lib/">associated content</a>.</p>
|
||||
|
||||
<p>Om du kommer tillbaka till den här sidan efter att du har redigerat innehållet kan du försöka rensa webbläsarens webbcache:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Firefox:</b> Preferences ➜ Advanced ➜ Network ➜ Cached Web Content ➜ Clear Now</li>
|
||||
<li>
|
||||
<b>Chrome/Chromium:</b> Settings ➜ Advanced Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
<li>
|
||||
<b>Opera:</b> Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
</ul>
|
||||
<h2>Registrera din egen I2P-domän</h2>
|
||||
|
||||
<p>Now it is time to add your website to an I2P address book hosted by a site such as <a href="http://stats.i2p/%20" target="_blank">stats.i2p</a> or <a href="http://no.i2p/" target="_blank">no.i2p</a>.
|
||||
You must enter your website name and Destination (or Registration Authentication string) on one or more of these sites.</p>
|
||||
<p>Some registration sites require the Destination.
|
||||
If so, highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</p>
|
||||
<p>Some registration sites, including <a href="http://stats.i2p/i2p/addkey.html" target="_blank">stats.i2p</a>, require the Registration Authentication string.
|
||||
It is found on the <a href="http://127.0.0.1:7657/i2ptunnel/register?tunnel=3">Registration Authentication page</a> linked from the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service configuration page</a>.
|
||||
Copy the entire authentication string and paste it on the registration page.
|
||||
Make sure you copy the whole thing, it is over 500 characters.
|
||||
Describe your site briefly if the site requests this information.
|
||||
If your site is a HTTP service, leave the checkbox selected; if not, unselect it.</p>
|
||||
<p>For all registration sites, read through the Terms of Service carefully.
|
||||
Click the "Submit" button.
|
||||
Verify the submission was successful.
|
||||
Since many routers periodically get address book updates from these sites, within several hours others will be able to find your website by simply entering your hostname in their browser.</p>
|
||||
|
||||
<h2>Lägga till prenumerationsadressbok</h2>
|
||||
|
||||
<p>Speaking of address book updates, this would be a good time to add some more addressbooks to your own subscription list.
|
||||
Go to your <a href="http://127.0.0.1:7657/susidns/subscriptions">Subscriptions Configuration page</a> and add one or more for an automatically updated list of new hosts:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>http://stats.i2p/cgi-bin/newhosts.txt</code> (<a href="http://stats.i2p/cgi-bin/newhosts.txt" target="_blank">stats.i2p</a>)</li>
|
||||
<li>
|
||||
<code>http://no.i2p/export/alive-hosts.txt</code> (<a href="http://no.i2p/export/alive-hosts.txt" target="_blank">no.i2p</a>)</li>
|
||||
</ul>
|
||||
<p>If you are in a hurry and can't wait a few hours, you can tell people to use a "jump" address helper redirection service.
|
||||
This will work within a few minutes of your registering your hostname on the same site.
|
||||
Test it yourself first by entering <code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>something</i>.i2p</code> into your browser.
|
||||
Once it is working, you can tell others to use it.</p>
|
||||
|
||||
<p>Some people check website lists such as <a href="http://identiguy.i2p/" target="_blank">Identiguy's eepsite status list</a> or <a href="http://no.i2p/browse/" target="_blank">no.i2p's active host list</a> for new eepsites, so your site may start getting some traffic.
|
||||
There are plenty of other ways to tell people. Here are a few ideas:</p>
|
||||
|
||||
<ul>
|
||||
<li>Posta ett meddelande på <a href="http://i2pforum.i2p/" target="_blank">I2P-forum</a> för att berätta för alla om din nya I2PS-webbplats!</li>
|
||||
<li>Berätta för folk om det på kanalerna #i2p- eller #i2p-chat på IRC.</li>
|
||||
<li>Sätt det på <a href="http://i2pwiki.i2p/index.php?title=Eepsite/Services" target="_blank">I2PWiki eepsidsindexet</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Observera att vissa sidor rekommenderar att du klistrar in den riktigt långa destinationen.
|
||||
Du kan om du vill, men om du framgångsrikt har registrerat ditt värdnamn på en registreringstjänst, testat det med hjälp av en hopptjänst och väntat 24 timmar på att adressboksuppdateringen ska spridas till andra, borde det inte vara nödvändigt.</p>
|
||||
|
||||
<h2>Använda en alternativ webbserver för att vara värd för din webbplats</h2>
|
||||
|
||||
<p>This site (and the I2P router console) is running on the <a href="https://en.wikipedia.org/wiki/Jetty_(web_server)" target="_blank">Jetty webserver</a>, but you may wish to use a different webserver to host your content.
|
||||
To maintain anonymity, be sure that your webserver is configured to only allow connections from localhost (127.0.0.1), and check the documentation to ensure your webserver isn't advertising details that may compromise your anonymity.</p>
|
||||
|
||||
<p>To configure your webserver for use on I2P, you may either use the existing webserver tunnel and <a href="http://127.0.0.1:7657/configclients">disable the default webserver</a> from running, or create a new HTTP Server tunnel in the <a href="http://127.0.0.1:7657/i2ptunnelmgr">Hidden Services Manager</a>.
|
||||
Ensure that the listening port configured for the webserver (7658 by default) is also configured in the Hidden Services settings.
|
||||
For example, if your webserver is listening by default on address 127.0.0.1 port 80, you'd need to also ensure that the Target port in the Hidden Service Manager settings page for the service is also configured to port 80.</p>
|
||||
|
||||
<p>Beware that a poorly configured webserver or web appplication can leak potentially compromising information such as
|
||||
your real IP address or server details that may reduce your anonymity or assist a hacker.
|
||||
We recommend using the default server unless you feel comfortable doing server administration.
|
||||
Please ensure your web server is secure prior to placing it online.
|
||||
There are plenty of guides online, for example if you search for "nginx security hardening guide" you will find a number of guides that have good recommendations.</p>
|
||||
|
||||
<p>There is one important issue with the Apache web server.
|
||||
The <code>mod_status</code> and <code>mod_info</code> Apache modules are enabled by default on some operating systems.
|
||||
These modules expose internal data which can lead to serious compromise of anonymity when used on an anonymous network.
|
||||
Removing the lines in the configuration file where these modules are loaded is the easiest way to prevent these issues.</p>
|
||||
|
||||
<h2>Ytterligare hjälp</h2>
|
||||
|
||||
<p>Om du har några frågor finns följande platser tillgängliga för support:</p>
|
||||
|
||||
<ul>
|
||||
<li>Vår IRC-supportkanal:<ul>
|
||||
<li><a href="irc://irc.freenode.net/i2p">#i2p på Freenode</a></li>
|
||||
<li>Anonymt med din lokala <a href="irc://127.0.0.1:6668/i2p">I2P IRC-tunnel</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Projektforumet <a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>.</li>
|
||||
<li><a href="http://i2pwiki.i2p/index.php?title=EepsiteHosting" target="_blank">I2P-värdguide för eepsidor</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<div class="notify">Denna sida, projektwebbplatsen och routerkonsolen behöver översättningar!
|
||||
Hjälp projektet att växa med <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank"> att bli involverad</a> eller <a href="http://i2p-projekt.i2p/en/get-involved/guides/new-translators" target="_blank">översätta</a>.</div>
|
||||
<hr>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
183
installer/resources/eepsite/docroot/help/index_uk.html
Normal file
183
installer/resources/eepsite/docroot/help/index_uk.html
Normal file
@@ -0,0 +1,183 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="uk_UA">
|
||||
<head>
|
||||
<title>Анонімний Веб-Сервер I2P</title>
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="langbar">
|
||||
<a href="index.html"><img src="lib/us.png" title="English" alt="English"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
</div>
|
||||
|
||||
<h1>Анонімний Веб-Сервер I2P</h1>
|
||||
|
||||
<h2>Керівництво для Анонімної Web Сервіровки на I2P</h2>
|
||||
|
||||
<p>This is your own anonymous I2P webserver (traditionally referred to as an <i>eepsite</i>).
|
||||
To serve your own content, simply edit the files in the webserver's root directory and the site will be public once you follow the instructions below.</p>
|
||||
|
||||
<p id="dir">The webserver's root directory can be found in one of the following locations, depending on your operating system:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Linux</b><br>
|
||||
Standard install: <code>~/.i2p/eepsite/docroot/</code><br>
|
||||
Package install, running as a service: <code>/var/lib/i2p/i2p-config/eepsite/docroot/</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Windows</b><br><code>%APPDATA%\I2P\eepsite\docroot\</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Mac</b><br><code>/Users/(user)/Library/Application Support/i2p</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>In I2P, hidden services are addressed using a Base32 address ending in ".b32.i2p", or a Destination represented as a long Base64 string.
|
||||
The Base32 address may be used as a hostname, until you assign a register a name following the instructions below.
|
||||
The Destination is somewhat like an IP address, and is shown on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.</p>
|
||||
|
||||
<p>The instructions below detail how to assign a name like "mysite.i2p" to your website and enable access by others.
|
||||
You may reach your site locally via <a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>.</p>
|
||||
|
||||
<h2>How to set up and announce your hidden service</h2>
|
||||
|
||||
<p>Your webserver is running by default, but is not accessible by others until you start the hidden service tunnel.
|
||||
After you start your I2P Webserver tunnel, it will be difficult for other people to find
|
||||
It can only be accessed with the long Destination or with the shorter Base32 address (.b32.i2p), which is a hash of the Destination.
|
||||
You could just tell people the Destnation or the Base32 address, but thankfully I2P has an address book and several easy ways to tell people about your website.
|
||||
Here are detailed instructions.</p>
|
||||
|
||||
<ul>
|
||||
<li>Pick a name for your website (<i>something</i>.i2p), using lower-case.
|
||||
You may wish to check first in your own router's <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a> to see if your name is already taken.
|
||||
Enter the new name for your website on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a> where it says "Website name".
|
||||
This will replace the default "mysite.i2p".
|
||||
Also, if you would like your I2P Webserver tunnel to be automatically started when you start I2P, check the "Auto Start" box.
|
||||
Your website will now start every time you start your router.
|
||||
Be sure to click "Save".</li>
|
||||
<li>Click the start button for your webserver tunnel on the <a href="http://127.0.0.1:7657/i2ptunnel/">main Hidden Service Manager page</a>.
|
||||
You should now see it listed under "Local Tunnels" on the left side of the <a href="http://127.0.0.1:7657/">I2P Router Console</a>.
|
||||
Your website is now running.</li>
|
||||
<li>Highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</li>
|
||||
<li>Enter the name and paste the destination into your <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a>.
|
||||
Click "Add" to save the new entry.</li>
|
||||
<li>In your browser, enter in your website name (<i>something</i>.i2p) and you should be right back here.
|
||||
Hopefully it worked!</li>
|
||||
<li>Before you tell the world about your new website, you should add some content.
|
||||
Go to the server's root directory <a href="#dir">listed above</a> and replace the index.html redirect page with your own content.</li>
|
||||
</ul>
|
||||
<p>Directory listings are enabled, so you may host files from a subdirectory without providing a page with links to the files.
|
||||
You may change the appearance of the directory by supplying an edited <a href="lib/jetty-dir.css">jetty-dir.css</a> file for each directory.
|
||||
The <a href="lib/">lib subdirectory</a> demonstrates a custom style.
|
||||
The <a href="lib/resources">resources subdirectory</a> demonstrates the default style.
|
||||
If you need a template for a basic site, feel free to adapt <a href="pagetemplate.html">this page</a> and <a href="lib/">associated content</a>.</p>
|
||||
|
||||
<p>If you're returned to this page after editing the content, try clearing your browser's web cache:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Firefox:</b> Preferences ➜ Advanced ➜ Network ➜ Cached Web Content ➜ Clear Now</li>
|
||||
<li>
|
||||
<b>Chrome/Chromium:</b> Settings ➜ Advanced Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
<li>
|
||||
<b>Opera:</b> Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
</ul>
|
||||
<h2>Register your own I2P Domain</h2>
|
||||
|
||||
<p>Now it is time to add your website to an I2P address book hosted by a site such as <a href="http://stats.i2p/%20" target="_blank">stats.i2p</a> or <a href="http://no.i2p/" target="_blank">no.i2p</a>.
|
||||
You must enter your website name and Destination (or Registration Authentication string) on one or more of these sites.</p>
|
||||
<p>Some registration sites require the Destination.
|
||||
If so, highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</p>
|
||||
<p>Some registration sites, including <a href="http://stats.i2p/i2p/addkey.html" target="_blank">stats.i2p</a>, require the Registration Authentication string.
|
||||
It is found on the <a href="http://127.0.0.1:7657/i2ptunnel/register?tunnel=3">Registration Authentication page</a> linked from the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service configuration page</a>.
|
||||
Copy the entire authentication string and paste it on the registration page.
|
||||
Make sure you copy the whole thing, it is over 500 characters.
|
||||
Describe your site briefly if the site requests this information.
|
||||
If your site is a HTTP service, leave the checkbox selected; if not, unselect it.</p>
|
||||
<p>For all registration sites, read through the Terms of Service carefully.
|
||||
Click the "Submit" button.
|
||||
Verify the submission was successful.
|
||||
Since many routers periodically get address book updates from these sites, within several hours others will be able to find your website by simply entering your hostname in their browser.</p>
|
||||
|
||||
<h2>Adding Addressbook Subscriptions</h2>
|
||||
|
||||
<p>Speaking of address book updates, this would be a good time to add some more addressbooks to your own subscription list.
|
||||
Go to your <a href="http://127.0.0.1:7657/susidns/subscriptions">Subscriptions Configuration page</a> and add one or more for an automatically updated list of new hosts:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>http://stats.i2p/cgi-bin/newhosts.txt</code> (<a href="http://stats.i2p/cgi-bin/newhosts.txt" target="_blank">stats.i2p</a>)</li>
|
||||
<li>
|
||||
<code>http://no.i2p/export/alive-hosts.txt</code> (<a href="http://no.i2p/export/alive-hosts.txt" target="_blank">no.i2p</a>)</li>
|
||||
</ul>
|
||||
<p>If you are in a hurry and can't wait a few hours, you can tell people to use a "jump" address helper redirection service.
|
||||
This will work within a few minutes of your registering your hostname on the same site.
|
||||
Test it yourself first by entering <code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>something</i>.i2p</code> into your browser.
|
||||
Once it is working, you can tell others to use it.</p>
|
||||
|
||||
<p>Some people check website lists such as <a href="http://identiguy.i2p/" target="_blank">Identiguy's eepsite status list</a> or <a href="http://no.i2p/browse/" target="_blank">no.i2p's active host list</a> for new eepsites, so your site may start getting some traffic.
|
||||
There are plenty of other ways to tell people. Here are a few ideas:</p>
|
||||
|
||||
<ul>
|
||||
<li>Post a message on the <a href="http://i2pforum.i2p/" target="_blank">I2P forum</a> telling everyone about your new I2P website!</li>
|
||||
<li>Розкажіть людям про це на каналах # i2p або # i2p-chat на IRC.</li>
|
||||
<li>Put it on the <a href="http://i2pwiki.i2p/index.php?title=Eepsite/Services" target="_blank">I2PWiki Eepsite Index</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note that some sites recommend pasting in that really long destination.
|
||||
You can if you want, but if you have successfully registered your hostname on a registration service, tested it using a jump service, and waited 24 hours for the address book update to propagate to others, that shouldn't be necessary.</p>
|
||||
|
||||
<h2>Using an alternative webserver to host your site</h2>
|
||||
|
||||
<p>This site (and the I2P router console) is running on the <a href="https://en.wikipedia.org/wiki/Jetty_(web_server)" target="_blank">Jetty webserver</a>, but you may wish to use a different webserver to host your content.
|
||||
To maintain anonymity, be sure that your webserver is configured to only allow connections from localhost (127.0.0.1), and check the documentation to ensure your webserver isn't advertising details that may compromise your anonymity.</p>
|
||||
|
||||
<p>To configure your webserver for use on I2P, you may either use the existing webserver tunnel and <a href="http://127.0.0.1:7657/configclients">disable the default webserver</a> from running, or create a new HTTP Server tunnel in the <a href="http://127.0.0.1:7657/i2ptunnelmgr">Hidden Services Manager</a>.
|
||||
Ensure that the listening port configured for the webserver (7658 by default) is also configured in the Hidden Services settings.
|
||||
For example, if your webserver is listening by default on address 127.0.0.1 port 80, you'd need to also ensure that the Target port in the Hidden Service Manager settings page for the service is also configured to port 80.</p>
|
||||
|
||||
<p>Beware that a poorly configured webserver or web appplication can leak potentially compromising information such as
|
||||
your real IP address or server details that may reduce your anonymity or assist a hacker.
|
||||
We recommend using the default server unless you feel comfortable doing server administration.
|
||||
Please ensure your web server is secure prior to placing it online.
|
||||
There are plenty of guides online, for example if you search for "nginx security hardening guide" you will find a number of guides that have good recommendations.</p>
|
||||
|
||||
<p>There is one important issue with the Apache web server.
|
||||
The <code>mod_status</code> and <code>mod_info</code> Apache modules are enabled by default on some operating systems.
|
||||
These modules expose internal data which can lead to serious compromise of anonymity when used on an anonymous network.
|
||||
Removing the lines in the configuration file where these modules are loaded is the easiest way to prevent these issues.</p>
|
||||
|
||||
<h2>Додаткова Допомога</h2>
|
||||
|
||||
<p>Якщо ви маєте питання, тут можна дістати підтримку:</p>
|
||||
|
||||
<ul>
|
||||
<li>Наш канал підтримки IRC:<ul>
|
||||
<li><a href="irc://irc.freenode.net/i2p"> #i2p на Freenode</a></li>
|
||||
<li>Anonymously using your local <a href="irc://127.0.0.1:6668/i2p">I2P IRC tunnel</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Форум проекту<a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>
|
||||
</li>
|
||||
<li><a href="http://i2pwiki.i2p/index.php?title=EepsiteHosting" target="_blank">I2PWiki Eepsite Hosting guide</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<div class="notify">This page, the project website and the router console need translations!
|
||||
Please help the project grow by <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank"> getting involved</a> or <a href="http://i2p-projekt.i2p/en/get-involved/guides/new-translators" target="_blank">translating</a>.</div>
|
||||
<hr>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +1,183 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<title>I2P匿名网页服务器|欢迎来到您的eepsite</title>
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css" />
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite_zh.css" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
<div class="main">
|
||||
<div class="langbar">
|
||||
<!-- Some of these languages listed here are yet to be translated -->
|
||||
<html lang="zh_CN">
|
||||
<head>
|
||||
<title>I2P 匿名网页服务器</title>
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="main">
|
||||
|
||||
<div class="langbar">
|
||||
<a href="index.html"><img src="lib/us.png" title="English" alt="English"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_na.html"><img src="lib/ir.png" title="فارسی" alt="فارسی"></a>
|
||||
<a href="index_na.html"><img src="lib/jp.png" title="日本語" alt="日本語"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
<a href="index_zh.html"><img src="lib/cn.png" title="中文" alt="中文"></a>
|
||||
<a href="index_de.html"><img src="lib/de.png" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="index_es.html"><img src="lib/es.png" title="Español" alt="Español"></a>
|
||||
<a href="index_fr.html"><img src="lib/fr.png" title="Français" alt="Français"></a>
|
||||
<a href="index_nl.html"><img src="lib/nl.png" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="index_ru.html"><img src="lib/ru.png" title="Русский" alt="Русский"></a>
|
||||
<a href="index_sv.html"><img src="lib/se.png" title="Svenska" alt="Svenska"></a>
|
||||
</div>
|
||||
<h1>I2P匿名网页服务器</h1>
|
||||
<h2>I2P匿名网页服务快速指南</h2>
|
||||
|
||||
<p>这是您的eepsite,您自己的匿名I2P网络服务器 - 只要编辑 <code>~/.i2p/eepsite/docroot/</code> (Linux),
|
||||
<code>%LOCALAPPDATA%\I2P\eepsite\docroot\</code> (Windows),
|
||||
或 <code>/Users/(user)/Library/Application Support/i2p</code> (Mac), 下的文件,并且按照以下说明操作后,别人就可以访问了.
|
||||
在I2P,eepsites是用一个很长的Base64字串"密钥"来寻址访问的.
|
||||
(这"密钥"有点类似于IP地址,且会显示在eepsite的I2PTunnel上
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">配置页</a>).
|
||||
以下说明详细解释了如何为您的密钥分配像"mysite.i2p"的名称并启动您的 eepsite</p>
|
||||
<p>您可以通过
|
||||
<a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>在本地访问您的eepsite.
|
||||
</p>
|
||||
<h1>I2P 匿名网页服务器</h1>
|
||||
|
||||
<h2>如何设置和宣告您的eepsite</h2>
|
||||
<p>默认情况下,您的eepsite是停止运行的.
|
||||
您启动它后,它将很难被其他人找到,因为它没有名称,其他人也没有您的很长的Base64密钥.
|
||||
您可以告诉别人那真的很长的密钥,但值得庆幸的是,I2P有一个地址簿和几个简单的方法来告诉其他人您eepsite.这是详细说明.</p>
|
||||
<ul>
|
||||
<li>为您的eepsite选个名称(<i>something</i>.i2p).全部用小写字母.
|
||||
您可能要先在<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=router&filter=none">这里</a>检查自己路由器的地址簿,
|
||||
或检查文件<code>i2p/hosts.txt</code>里,看看是否您的名称已经被占用.
|
||||
在eepsite i2ptunnel <a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">配置页</a>的“网站名称”部分输入您eepsite的新名称。这将替换缺省的"mysite.i2p".
|
||||
同时,选中“自动启动”框。现在每次启动您的路由器时,您的eepsite也将启动.
|
||||
请点击“保存”.</li>
|
||||
<li>在
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/index.jsp">主i2ptunnel配置页</a>,点击您的eepsite启动按钮.
|
||||
在
|
||||
<a href="http://127.0.0.1:7657/index.jsp">I2P路由器控制台</a>的左侧,您应该可以看到"eepsite"列在"本地目标"下面.
|
||||
您的 eepsite 现在正在运行了.</li>
|
||||
<li>在
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite i2ptunnel 配置页</a>,突出显示全部的"本地目的地"的密钥.
|
||||
并将它复制以备以后粘贴. 确保您复制到了完整的密钥 - 它有超过 500 个字符.</li>
|
||||
<li>在您的
|
||||
<a href="http://127.0.0.1:7657/susidns/addressbook.jsp?book=master">主地址簿</a>内,输入名称并粘贴目标密钥.
|
||||
单击"添加",将目标添加到您的址簿内。</li>
|
||||
<li>在您的浏览器内,输入您的 eepsite名称 (<i>something</i>.i2p)您应该会立刻返回这里. 希望它能生效.</li>
|
||||
<li>在您向全世界宣告您的新eepsite前,您应该增加一些内容.
|
||||
到<code>~/.i2p/eepsite/docroot/</code> (Linux),
|
||||
<code>%LOCALAPPDATA%\I2P\eepsite\docroot\</code> (Windows),
|
||||
或 <code>/Users/(user)/Library/Application Support/i2p</code> (Mac), 并用自己的内容替换掉index.html重定向页面.虚拟文件夹会起作用,这样您就可以从一个子目录中提供文件服务而不用明确需要提供链接到文件的一个页面.如果您需要一个基本的网站模板, 请自由借来并适用 <a href="pagetemplate.html">本页</a> 和 <a href="lib/">内容</a> !</li>
|
||||
</ul>
|
||||
<h2>注册自己的.I2P域名</h2>
|
||||
<p>现在,是时候把您的eepsite加入到其它网站的I2P地址簿了
|
||||
比如<a href="http://stats.i2p/">stats.i2p</a> 或<a href="http://no.i2p/">no.i2p</a>.
|
||||
就是,您必须在一个或多个这样网站的网页界面输入您eepsite的名称和密钥.
|
||||
这是在stats.i2p的<a href="http://stats.i2p/i2p/addkey.html">密钥输入表格</a>.
|
||||
再说一次, 您的密钥是在
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit.jsp?tunnel=3">eepsite i2ptunnel 配置页面</a>上的整个"本地目标"密钥.
|
||||
确保您复制到了以"AAAA" or "A=="为结束的符完整的密钥.
|
||||
不要忘记点击“添加一个密钥”.
|
||||
检查看看是否报告密钥有添加.
|
||||
由于许多路由器周期性地从这些网站获取更新地址簿,在几个小时内其他人就能够通过在他们的浏览器里简单的输入 <i>something</i>.i2p 来找到您的网站.
|
||||
</p><h2>添加地址簿订阅</h2>
|
||||
<p>说到地址簿更新,这会是个很好的时机来添加些更多的地址簿到您自己的<a href="http://127.0.0.1:7657/susidns/subscriptions.jsp">订阅列表</a>. 到您的订阅配置页面,并添加以下内容以自动更新新主机列表:</p><ul>
|
||||
<li><a href="http://tino.i2p/hosts.txt">http://tino.i2p/hosts.txt</a></li>
|
||||
<li><a href="http://stats.i2p/cgi-bin/newhosts.txt">http://stats.i2p/cgi-bin/newhosts.txt</a></li>
|
||||
<li><a href="http://i2host.i2p/cgi-bin/i2hostetag">http://i2host.i2p/cgi-bin/i2hostetag</a></li>
|
||||
<li><a href="http://no.i2p/export/alive-hosts.txt">http://no.i2p/export/alive-hosts.txt</a></li></ul>
|
||||
<ul><li>若您很匆忙不能等待几个小时,您可以告诉别人用“跳转”地址助手重定向服务.
|
||||
这将会在您输入密钥到同一个网站上的地址簿内的几分钟内起作用.
|
||||
自己先测试一下,在您的浏览器里输入<code>
|
||||
http://stats.i2p/cgi-bin/jump.cgi?a=<i>something</i>.i2p</code>
|
||||
或 <code>http://i2host.i2p/cgi-bin/i2hostjump?<i>something</i>.i2p</code>
|
||||
一旦开始工作,那么您就可以告诉别人来使用它.</li>
|
||||
<li>有些人会检查eepsite列表,如
|
||||
<a href="http://inproxy.tino.i2p/status.php">inproxy.tino.i2p/status.php</a>或<a href="http://perv.i2p">perv.i2p</a> 以获取新eepsites,所以开始您可能会有几个访客. 但也有很多其他的方式来告诉人们.这里有一些点子:
|
||||
<ul>
|
||||
<li>在<a href="http://forum.i2p/viewforum.php?f=16">Eepsite宣告论坛</a>上发布一条消息
|
||||
在<a href="http://forum.i2p/">forum.i2p</a>上.</li>
|
||||
<li>在IRC的#i2p 或 #i2p-chat频道告诉人们您的eepsite站点</li>
|
||||
<li>在<a href="http://syndie.i2p2.de/">新Syndie</a>上发一个新贴告诉人们您的eepsite站点.</li>
|
||||
<li>把它放入<a href="http://ugha.i2p/EepsiteIndex">Ugha的 Eepsite 索引 Wiki</a></li>
|
||||
</ul></ul>
|
||||
<p>请注意,有些网站推荐贴那很长的目标密钥. 若您愿意您可以-但是,如果您已成功在添加密钥服务里发布您的密钥,使用跳转服务测试过了,并等待了24个小时以便地址簿更新传播给他人,这应该不是很必要.</p>
|
||||
<h2>更进一步的援助</h2>
|
||||
<p>如果您有任何问题,以下地方可提供支持:</p>
|
||||
<ul>
|
||||
<li>我们的 IRC 支持频道: <ul><li><a href="irc://irc.freenode.net/i2p">在Freenode上的 #i2p </a></li>
|
||||
<li>匿名的,通过您常驻的 <a href="irc://127.0.0.1:6668/i2p-help">I2P IRC隧道</a>.</li></ul>
|
||||
<li><a href="http://forum.i2p/viewforum.php?f=10">技术问题部分</a> 在
|
||||
<a href="http://forum.i2p/">forum.i2p</a>.</li></ul>
|
||||
<div class="notify">
|
||||
<b>注:</b> 本页, 网站和控制台都需要翻译成您的语言,如果不是已经完成或在进展中,请考虑<a href="http://www.i2p2.i2p/getinvolved.html">奉献您的时间</a>来翻译 以帮助项目的成长. 请通过上面列出的IRC频道联系项目组. 先谢谢了!</div>
|
||||
<hr><div class="footnote">
|
||||
文件最后编辑:2014.06</div>
|
||||
<h2>在I2P上匿名部署网页的指导</h2>
|
||||
|
||||
<p>这是你自己的匿名I2P网页服务器(经常被称为一个<i>匿名网站</i>)。
|
||||
如果要提供你自己的内容,简单地编辑在网页服务器根目录下的文件。如果你按照下面的说明操作,这个站点将会被发布。</p>
|
||||
|
||||
<p id="dir">网页服务器的根目录文件夹可以在如下几个位置找到,这要看你的操作系统:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Linux</b><br>
|
||||
标准 安装:<code>~/.i2p/匿名网站/docroot/</code><br>
|
||||
包安装,作为一个运行服务,<code>/var/lib/i2p/i2p-配置/匿名网站/docroot/</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Windows</b><br><code>%APPDATA%\I2P\eepsite\docroot\</code>
|
||||
</li>
|
||||
<li>
|
||||
<b>Mac</b><br><code>/Users/(user)/Library/Application Support/i2p</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>在I2P中,隐藏服务使用以“ .b32.i2p”结尾的Base32地址或以长Base64字符串表示的Destination来寻址。
|
||||
在您按照以下说明分配寄存器名称之前,可以将Base32地址用作主机名。
|
||||
目标在某种程度上类似于IP地址,并显示在
|
||||
<a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">隐藏服务配置页面上</a></p>
|
||||
|
||||
<p>教程:如何为你的网站配置类似 "mysite.i2p" 的域名并允许他人访问。
|
||||
你可以在本机访问<a href="http://127.0.0.1:7658/">http://127.0.0.1:7658/</a>进入你的网站。</p>
|
||||
|
||||
<h2>如何设置并发布你的隐藏服务</h2>
|
||||
|
||||
<p>网页服务默认开启,但在你开启隐藏服务隧道前他人不能访问。
|
||||
尽管你开启了 I2P 网页服务器隧道,但他人很难访问你的网站。
|
||||
这是因为匿名网站只能由一段很长的网址或原始网址的 Base32 编码(下称“编码网址”)(.b32.i2p)访问。
|
||||
为了让他人访问,你可以直接告知他人你的匿名网站的原始网址或编码网址,但把网址加入 I2P 的地址簿会比较方便。
|
||||
以下是详细说明。</p>
|
||||
|
||||
<ul>
|
||||
<li>Pick a name for your website (<i>something</i>.i2p), using lower-case.
|
||||
You may wish to check first in your own router's <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a> to see if your name is already taken.
|
||||
Enter the new name for your website on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a> where it says "Website name".
|
||||
This will replace the default "mysite.i2p".
|
||||
Also, if you would like your I2P Webserver tunnel to be automatically started when you start I2P, check the "Auto Start" box.
|
||||
Your website will now start every time you start your router.
|
||||
Be sure to click "Save".</li>
|
||||
<li>Click the start button for your webserver tunnel on the <a href="http://127.0.0.1:7657/i2ptunnel/">main Hidden Service Manager page</a>.
|
||||
You should now see it listed under "Local Tunnels" on the left side of the <a href="http://127.0.0.1:7657/">I2P Router Console</a>.
|
||||
Your website is now running.</li>
|
||||
<li>Highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</li>
|
||||
<li>Enter the name and paste the destination into your <a href="http://127.0.0.1:7657/susidns/addressbook?book=router&filter=none">address book</a>.
|
||||
Click "Add" to save the new entry.</li>
|
||||
<li>In your browser, enter in your website name (<i>something</i>.i2p) and you should be right back here.
|
||||
Hopefully it worked!</li>
|
||||
<li>Before you tell the world about your new website, you should add some content.
|
||||
Go to the server's root directory <a href="#dir">listed above</a> and replace the index.html redirect page with your own content.</li>
|
||||
</ul>
|
||||
<p>Directory listings are enabled, so you may host files from a subdirectory without providing a page with links to the files.
|
||||
You may change the appearance of the directory by supplying an edited <a href="lib/jetty-dir.css">jetty-dir.css</a> file for each directory.
|
||||
The <a href="lib/">lib subdirectory</a> demonstrates a custom style.
|
||||
The <a href="lib/resources">resources subdirectory</a> demonstrates the default style.
|
||||
If you need a template for a basic site, feel free to adapt <a href="pagetemplate.html">this page</a> and <a href="lib/">associated content</a>.</p>
|
||||
|
||||
<p>如果您在编辑内容后返回此页面,尝试清楚您的浏览器缓存:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<b>Firefox:</b> Preferences ➜ Advanced ➜ Network ➜ Cached Web Content ➜ Clear Now</li>
|
||||
<li>
|
||||
<b>Chrome/Chromium:</b> Settings ➜ Advanced Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
<li>
|
||||
<b>Opera:</b> Settings ➜ Privacy ➜ Clear browsing data</li>
|
||||
</ul>
|
||||
<h2>注册您自己的I2P域名</h2>
|
||||
|
||||
<p>Now it is time to add your website to an I2P address book hosted by a site such as <a href="http://stats.i2p/%20" target="_blank">stats.i2p</a> or <a href="http://no.i2p/" target="_blank">no.i2p</a>.
|
||||
You must enter your website name and Destination (or Registration Authentication string) on one or more of these sites.</p>
|
||||
<p>Some registration sites require the Destination.
|
||||
If so, highlight and copy the entire Local destination on the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service Configuration page</a>.
|
||||
Make sure you copy the whole thing, it is over 500 characters.</p>
|
||||
<p>Some registration sites, including <a href="http://stats.i2p/i2p/addkey.html" target="_blank">stats.i2p</a>, require the Registration Authentication string.
|
||||
It is found on the <a href="http://127.0.0.1:7657/i2ptunnel/register?tunnel=3">Registration Authentication page</a> linked from the <a href="http://127.0.0.1:7657/i2ptunnel/edit?tunnel=3">Hidden Service configuration page</a>.
|
||||
Copy the entire authentication string and paste it on the registration page.
|
||||
Make sure you copy the whole thing, it is over 500 characters.
|
||||
Describe your site briefly if the site requests this information.
|
||||
If your site is a HTTP service, leave the checkbox selected; if not, unselect it.</p>
|
||||
<p>对于所有注册站点,请仔细阅读服务条款。
|
||||
点击“提交”按钮。
|
||||
验证提交是否成功。
|
||||
由于许多路由器会定期从这些站点获取地址簿更新,因此在几个小时之内,其他路由器只需在其浏览器中输入您的主机名就能找到您的网站。</p>
|
||||
|
||||
<h2>添加地址簿订阅</h2>
|
||||
|
||||
<p>说到地址簿更新,这是将更多地址簿添加到您自己的订阅列表中的好时机。
|
||||
转到<a href="http://127.0.0.1:7657/susidns/subscriptions">订阅配置页面</a>并添加一个或多个自动更新的新主机列表:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>http://stats.i2p/cgi-bin/newhosts.txt</code> (<a href="http://stats.i2p/cgi-bin/newhosts.txt" target="_blank">stats.i2p</a>)</li>
|
||||
<li>
|
||||
<code>http://no.i2p/export/alive-hosts.txt</code> (<a href="http://no.i2p/export/alive-hosts.txt" target="_blank">no.i2p</a>)</li>
|
||||
</ul>
|
||||
<p>如果您赶时间并且不能等几个小时,可以告诉人们使用“跳转”地址帮助程序重定向服务。
|
||||
将会在您同一站点上注册主机名后的几分钟内生效。
|
||||
首先,通过在浏览器中输入<code>http://stats.i2p/cgi-bin/jump.cgi?a=<i>某</i>.i2p</code>进入您的浏览器。
|
||||
一旦运行,您就可以告诉其他人使用它。</p>
|
||||
|
||||
<p>Some people check website lists such as <a href="http://identiguy.i2p/" target="_blank">Identiguy's eepsite status list</a> or <a href="http://no.i2p/browse/" target="_blank">no.i2p's active host list</a> for new eepsites, so your site may start getting some traffic.
|
||||
There are plenty of other ways to tell people. Here are a few ideas:</p>
|
||||
|
||||
<ul>
|
||||
<li>在<a href="http://i2pforum.i2p/" target="_blank">I2P 论坛</a>发布消息给所有人介绍你的新I2P网站!</li>
|
||||
<li>在IRC #i2p 或者 #i2p-chat 频道告诉人们.</li>
|
||||
<li>Put it on the <a href="http://i2pwiki.i2p/index.php?title=Eepsite/Services" target="_blank">I2PWiki Eepsite Index</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Note that some sites recommend pasting in that really long destination.
|
||||
You can if you want, but if you have successfully registered your hostname on a registration service, tested it using a jump service, and waited 24 hours for the address book update to propagate to others, that shouldn't be necessary.</p>
|
||||
|
||||
<h2>使用备用网络服务器托管你的网站</h2>
|
||||
|
||||
<p>该网站(和I2P路由控制台)正在运行<a href="https://en.wikipedia.org/wiki/Jetty_(web_server)" target="_blank">Jetty网络服务器</a>,但您可能希望使用其他网络服务器来托管您的主机内容。
|
||||
为了保持匿名,请确保将您的网络服务器配置为仅允许来自本地主机(127.0.0.1)的连接,并检查文档以确保您的网络服务器没有发布可能危害您匿名性的详细信息。</p>
|
||||
|
||||
<p>To configure your webserver for use on I2P, you may either use the existing webserver tunnel and <a href="http://127.0.0.1:7657/configclients">disable the default webserver</a> from running, or create a new HTTP Server tunnel in the <a href="http://127.0.0.1:7657/i2ptunnelmgr">Hidden Services Manager</a>.
|
||||
Ensure that the listening port configured for the webserver (7658 by default) is also configured in the Hidden Services settings.
|
||||
For example, if your webserver is listening by default on address 127.0.0.1 port 80, you'd need to also ensure that the Target port in the Hidden Service Manager settings page for the service is also configured to port 80.</p>
|
||||
|
||||
<p>请注意,配置不当的Web服务器或Web应用程序可能会泄漏可能危害信息的信息,例如
|
||||
您的真实IP地址或服务器详细信息,可能会减少您的匿名性或帮助黑客。
|
||||
我们建议您使用默认服务器,除非您愿意进行服务器管理。
|
||||
在将其联机之前,请确保您的Web服务器是安全的。
|
||||
在线上有很多指南,例如,如果您搜索“ nginx安全强化指南”,则会发现许多具有良好建议的指南。</p>
|
||||
|
||||
<p>There is one important issue with the Apache web server.
|
||||
The <code>mod_status</code> and <code>mod_info</code> Apache modules are enabled by default on some operating systems.
|
||||
These modules expose internal data which can lead to serious compromise of anonymity when used on an anonymous network.
|
||||
Removing the lines in the configuration file where these modules are loaded is the easiest way to prevent these issues.</p>
|
||||
|
||||
<h2>更多帮助</h2>
|
||||
|
||||
<p>如你有任何问题,可在如下地方寻求帮助:</p>
|
||||
|
||||
<ul>
|
||||
<li>我们的IRC支持频道:<ul>
|
||||
<li><a href="irc://irc.freenode.net/i2p">#i2p on Freenode</a></li>
|
||||
<li>匿名使用你的本地<a href="irc://127.0.0.1:6668/i2p">I2P IRC 隧道</a>。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>项目论坛<a href="http://i2pforum.i2p/" target="_blank">i2pforum.i2p</a>。</li>
|
||||
<li><a href="http://i2pwiki.i2p/index.php?title=EepsiteHosting" target="_blank">I2PWiki匿名网站托管指南</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<div class="notify">This page, the project website and the router console need translations!
|
||||
Please help the project grow by <a href="http://i2p-projekt.i2p/getinvolved.html" target="_blank"> getting involved</a> or <a href="http://i2p-projekt.i2p/en/get-involved/guides/new-translators" target="_blank">translating</a>.</div>
|
||||
<hr>
|
||||
</div>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
body {
|
||||
margin: 25px 10%;
|
||||
text-align: justify;
|
||||
color: #ffffe0;
|
||||
background: #210800 url(pagebg.png);
|
||||
color: #2E2E2E;
|
||||
background: #DFDFDF;
|
||||
background-size: 120px 120px;
|
||||
}
|
||||
|
||||
@@ -16,12 +16,11 @@ h1 {
|
||||
padding: 20px 0 5px 48px;
|
||||
white-space: nowrap;
|
||||
letter-spacing: .05em;
|
||||
border-bottom: 1px solid #5f3423;
|
||||
background-image: url(itoopie.png);
|
||||
|
||||
|
||||
background-repeat: no-repeat;
|
||||
background-position: left 5px bottom 5px;
|
||||
text-shadow: 0 0 24px rgba(255, 96, 48, .9);
|
||||
text-shadow: 2px 2px 1px #110500 !important;
|
||||
|
||||
}
|
||||
|
||||
h2 {
|
||||
@@ -30,15 +29,17 @@ h2 {
|
||||
margin-bottom: 10px;
|
||||
padding: 5px 10px;
|
||||
letter-spacing: .09em;
|
||||
text-transform: capitalize;
|
||||
border: 1px solid #5f3423;
|
||||
border-radius: 2px;
|
||||
background: #110500 url(h2bg.png) right center no-repeat;
|
||||
background: url(h2bg.png) right 1px center no-repeat, linear-gradient(to bottom, #2f160c 50%, #110500 50%);
|
||||
box-shadow: inset 0 0 0 1px #000;
|
||||
text-transform: uppercase;
|
||||
color: #2E2E2E;
|
||||
border: 2px solid #363A68;
|
||||
border-radius: 5px;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
background-size: auto 112%, 100% 100%;
|
||||
filter: drop-shadow(0 0 1px #000);
|
||||
-webkit-filter: drop-shadow(0 0 1px #000);
|
||||
|
||||
}
|
||||
|
||||
h3 {
|
||||
@@ -52,12 +53,10 @@ h4 {
|
||||
text-transform: capitalize;
|
||||
border: 1px solid #5f3423;
|
||||
border-radius: 2px;
|
||||
background: #110500 url(h2bg.png) right center no-repeat;
|
||||
background: url(h2bg.png) right 1px center no-repeat, linear-gradient(to bottom, #2f160c 50%, #110500 50%);
|
||||
box-shadow: inset 0 0 0 1px #000;
|
||||
background: ##F2F2F2;
|
||||
|
||||
background-size: auto 112%, 100% 100%;
|
||||
filter: drop-shadow(0 0 1px #000);
|
||||
-webkit-filter: drop-shadow(0 0 1px #000);
|
||||
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@@ -76,12 +75,12 @@ a.footref {
|
||||
a:link {
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
color: #ffc266;
|
||||
color: #ED8936;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
text-decoration: none;
|
||||
color: #ffd699;
|
||||
color: #ED8936;
|
||||
}
|
||||
|
||||
a:active {
|
||||
@@ -91,7 +90,7 @@ a:active {
|
||||
|
||||
a:hover, a:focus {
|
||||
text-decoration: none;
|
||||
color: #fb0;
|
||||
color: #FBD38D;
|
||||
}
|
||||
|
||||
a:focus {
|
||||
@@ -172,9 +171,7 @@ ul {
|
||||
hr {
|
||||
height: 1px;
|
||||
margin: 5px 0;
|
||||
color: #5f3423;
|
||||
border: 0 solid #5f3423;
|
||||
background: #5f3423;
|
||||
|
||||
}
|
||||
|
||||
div.langbar {
|
||||
@@ -185,11 +182,7 @@ div.langbar {
|
||||
padding: 5px 10px 5px 5px;
|
||||
float: right;
|
||||
margin: -6px -26px 0 0;
|
||||
border: 1px solid #fb7;
|
||||
border: 1px solid #7f462f;
|
||||
background: #310;
|
||||
border-radius: 0 2px 0 0;
|
||||
box-shadow: inset 0 0 0 3px #000;
|
||||
|
||||
}
|
||||
|
||||
div.langbar a {
|
||||
@@ -199,7 +192,7 @@ div.langbar a {
|
||||
|
||||
div.langbar img {
|
||||
padding: 3px 5px 0;
|
||||
opacity: .7;
|
||||
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@@ -214,24 +207,16 @@ div.langbar img:last-child {
|
||||
div.sidenav {
|
||||
float: right;
|
||||
width: 200px;
|
||||
border: 1px solid #7f462f;
|
||||
border: 1px solid #F2F2F2;
|
||||
}
|
||||
|
||||
div.main {
|
||||
font-size: 10pt;
|
||||
min-width: 570px;
|
||||
padding: 5px 25px 10px 25px;
|
||||
border: 2px solid #220800;
|
||||
border: 1px solid #fb7;
|
||||
border: 1px solid #7f462f;
|
||||
border-radius: 2px;
|
||||
background: #220800 url(brown.png);
|
||||
background: linear-gradient(to bottom, rgba(47, 18, 6, 0.3), rgba(47, 18, 6, 0.5)), url(brown.png);
|
||||
background-size: 100% 100%, 120px 120px;
|
||||
box-shadow: inset 0 0 1px 0 #220800;
|
||||
box-shadow: inset 0 0 0 3px #000;
|
||||
filter: drop-shadow(0 0 5px #000);
|
||||
-webkit-filter: drop-shadow(0 0 5px #000);
|
||||
|
||||
background: #F2F2F2;
|
||||
|
||||
}
|
||||
|
||||
div.footnote {
|
||||
@@ -243,31 +228,28 @@ div.footnote {
|
||||
div.notify {
|
||||
margin: 15px 0 15px 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #940;
|
||||
border-radius: 2px;
|
||||
background: #440a00;
|
||||
box-shadow: inset 0 0 0 1px #000;
|
||||
filter: drop-shadow(0 0 1px #000);
|
||||
-webkit-filter: drop-shadow(0 0 1px #000);
|
||||
|
||||
background: #F2F2F2;
|
||||
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: "Droid Sans Mono", "Noto Mono", "Lucida Console", "DejaVu Sans Mono", monospace;
|
||||
font-weight: bold;
|
||||
color: #dd5;
|
||||
color: #38ADC2;
|
||||
}
|
||||
|
||||
#navbar {
|
||||
border: 1px solid #7f462f;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-right: none;
|
||||
margin: -6px -22px 0;
|
||||
border-radius: 2px 2px 0 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#navbar a {
|
||||
border: 1px solid #7f462f;
|
||||
border: 1px solid #38ADC2;
|
||||
display: inline-block;
|
||||
padding: 8px 10px;
|
||||
margin: -1px;
|
||||
|
||||
@@ -117,8 +117,9 @@ class FragmentHandler {
|
||||
* sending the resulting I2NPMessages where necessary. The received
|
||||
* fragments are all verified.
|
||||
*
|
||||
* @return ok (false if corrupt)
|
||||
*/
|
||||
public void receiveTunnelMessage(byte preprocessed[], int offset, int length) {
|
||||
public boolean receiveTunnelMessage(byte preprocessed[], int offset, int length) {
|
||||
boolean ok = verifyPreprocessed(preprocessed, offset, length);
|
||||
if (!ok) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
@@ -126,7 +127,7 @@ class FragmentHandler {
|
||||
+ preprocessed.length + " off=" +offset + " len=" + length);
|
||||
_cache.release(new ByteArray(preprocessed));
|
||||
_context.statManager().addRateData("tunnel.corruptMessage", 1);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
offset += HopProcessor.IV_LENGTH; // skip the IV
|
||||
offset += 4; // skip the hash segment
|
||||
@@ -139,7 +140,7 @@ class FragmentHandler {
|
||||
_context.statManager().addRateData("tunnel.corruptMessage", 1);
|
||||
if (_log.shouldWarn())
|
||||
_log.warn("Corrupt fragment received: off = " + offset);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
padding++;
|
||||
}
|
||||
@@ -155,7 +156,7 @@ class FragmentHandler {
|
||||
_context.statManager().addRateData("tunnel.corruptMessage", 1);
|
||||
if (_log.shouldWarn())
|
||||
_log.warn("Corrupt fragment received: off = " + off);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
offset = off;
|
||||
}
|
||||
@@ -163,10 +164,12 @@ class FragmentHandler {
|
||||
_context.statManager().addRateData("tunnel.corruptMessage", 1);
|
||||
if (_log.shouldWarn())
|
||||
_log.warn("Corrupt fragment received: offset = " + offset, aioobe);
|
||||
return false;
|
||||
} catch (NullPointerException npe) {
|
||||
if (_log.shouldWarn())
|
||||
_log.warn("Corrupt fragment received: offset = " + offset, npe);
|
||||
_context.statManager().addRateData("tunnel.corruptMessage", 1);
|
||||
return false;
|
||||
} catch (RuntimeException e) {
|
||||
if (_log.shouldWarn())
|
||||
_log.warn("Corrupt fragment received: offset = " + offset, e);
|
||||
@@ -183,6 +186,7 @@ class FragmentHandler {
|
||||
// let's limit the damage here and skip the:
|
||||
// .transport.udp.MessageReceiver: b0rked receiving a message.. wazza huzza hmm?
|
||||
//throw e;
|
||||
return false;
|
||||
} finally {
|
||||
// each of the FragmentedMessages populated make a copy out of the
|
||||
// payload, which they release separately, so we can release
|
||||
@@ -192,6 +196,7 @@ class FragmentHandler {
|
||||
// in order to put it in the pool, but it shouldn't cause any harm.
|
||||
_cache.release(new ByteArray(preprocessed));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getCompleteCount() { return _completed.get(); }
|
||||
|
||||
@@ -32,7 +32,8 @@ class OutboundTunnelEndpoint {
|
||||
|
||||
public void dispatch(TunnelDataMessage msg, Hash recvFrom) {
|
||||
_config.incrementProcessedMessages();
|
||||
boolean ok = _processor.process(msg.getData(), 0, msg.getData().length, recvFrom);
|
||||
byte[] data = msg.getData();
|
||||
boolean ok = _processor.process(data, 0, data.length, recvFrom);
|
||||
if (!ok) {
|
||||
// invalid IV
|
||||
// If we pass it on to the handler, it will fail
|
||||
@@ -41,7 +42,16 @@ class OutboundTunnelEndpoint {
|
||||
_log.warn("Invalid IV, dropping at OBEP " + _config);
|
||||
return;
|
||||
}
|
||||
_handler.receiveTunnelMessage(msg.getData(), 0, msg.getData().length);
|
||||
ok = _handler.receiveTunnelMessage(data, 0, data.length);
|
||||
if (!ok) {
|
||||
// blame previous hop
|
||||
Hash h = _config.getReceiveFrom();
|
||||
if (h != null) {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn(toString() + ": Blaming " + h + " 50%");
|
||||
_context.profileManager().tunnelFailed(h, 50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class DefragmentedHandler implements FragmentHandler.DefragmentedReceiver {
|
||||
|
||||
@@ -122,10 +122,26 @@ class TunnelParticipant {
|
||||
new TimeoutJob(_context, msg), MAX_LOOKUP_TIME);
|
||||
}
|
||||
} else {
|
||||
_inboundEndpointProcessor.getConfig().incrementProcessedMessages();
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Receive fragment: on " + _config + ": " + msg);
|
||||
_handler.receiveTunnelMessage(data, 0, data.length);
|
||||
// IBEP
|
||||
TunnelCreatorConfig cfg = _inboundEndpointProcessor.getConfig();
|
||||
cfg.incrementProcessedMessages();
|
||||
ok = _handler.receiveTunnelMessage(data, 0, data.length);
|
||||
if (ok) {
|
||||
if (_log.shouldLog(Log.DEBUG))
|
||||
_log.debug("Receive fragment: on " + _config + ": " + msg);
|
||||
} else {
|
||||
// blame everybody equally
|
||||
int lenm1 = cfg.getLength() - 1;
|
||||
if (lenm1 > 0) {
|
||||
int pct = 100 / (lenm1);
|
||||
for (int i = 0; i < lenm1; i++) {
|
||||
Hash h = cfg.getPeer(i);
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn(toString() + ": Blaming " + h + ' ' + pct + '%');
|
||||
_context.profileManager().tunnelFailed(h, pct);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user