This commit is contained in:
raldone01 2025-01-08 22:59:20 +01:00 committed by GitHub
commit ff941453cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 656 additions and 774 deletions

View file

@ -7,7 +7,8 @@ ARG torsocks_version
ENV HOME /var/lib/tor
ENV POETRY_VIRTUALENVS_CREATE=false
RUN apk add --no-cache git bind-tools cargo libevent-dev openssl-dev gnupg gcc make automake ca-certificates autoconf musl-dev coreutils libffi-dev zlib-dev && \
RUN set -ex; \
apk add --no-cache git bind-tools cargo libevent-dev openssl-dev gnupg gcc make automake ca-certificates autoconf musl-dev coreutils libffi-dev zlib-dev && \
mkdir -p /usr/local/src/ /var/lib/tor/ && \
git clone https://git.torproject.org/tor.git /usr/local/src/tor && \
cd /usr/local/src/tor && \
@ -18,40 +19,45 @@ RUN apk add --no-cache git bind-tools cargo libevent-dev openssl-dev gnupg g
--disable-asciidoc \
--sysconfdir=/etc \
--disable-unittests && \
make && make install && \
make -j$(nproc) && make install && \
cd .. && \
rm -rf tor && \
pip3 install --upgrade pip poetry && \
apk del git libevent-dev openssl-dev gnupg cargo make automake autoconf musl-dev coreutils libffi-dev && \
apk add --no-cache libevent openssl
RUN apk add --no-cache git gcc make automake autoconf musl-dev libtool && \
RUN set -ex; \
apk add --no-cache git gcc make automake autoconf musl-dev libtool && \
git clone https://git.torproject.org/torsocks.git /usr/local/src/torsocks && \
cd /usr/local/src/torsocks && \
TORSOCKS_VERSION=${torsocks_version=$(git tag | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1)} && \
git checkout $TORSOCKS_VERSION && \
./autogen.sh && \
./configure && \
make && make install && \
make -j$(nproc) CFLAGS="-Wno-error=implicit-function-declaration" && make install && \
cd .. && \
rm -rf torsocks && \
apk del git gcc make automake autoconf musl-dev libtool
RUN mkdir -p /etc/tor/
RUN set -ex; \
mkdir -p /etc/tor/
COPY pyproject.toml /usr/local/src/onions/
RUN cd /usr/local/src/onions && apk add --no-cache openssl-dev libffi-dev gcc libc-dev && \
poetry install --no-dev --no-root && \
RUN set -ex; \
cd /usr/local/src/onions && apk add --no-cache openssl-dev libffi-dev gcc libc-dev && \
poetry install --only main --no-root && \
apk del libffi-dev gcc libc-dev openssl-dev
COPY onions /usr/local/src/onions/onions
COPY poetry.lock /usr/local/src/onions/
RUN cd /usr/local/src/onions && apk add --no-cache gcc libc-dev && \
poetry install --no-dev && \
RUN set -ex; \
cd /usr/local/src/onions && apk add --no-cache gcc libc-dev && \
poetry install --only main && \
apk del gcc libc-dev
RUN mkdir -p ${HOME}/.tor && \
RUN set -ex; \
mkdir -p ${HOME}/.tor && \
addgroup -S -g 107 tor && \
adduser -S -G tor -u 104 -H -h ${HOME} tor

View file

@ -32,8 +32,11 @@ post_run_commands:
- onions --run-vanguards
set_environment:
- tor:
- TOR_CONTROL_PASSWORD: onions --load-file-env
- vanguards:
- TOR_CONTROL_PORT: onions --resolve-control-port
- TOR_CONTROL_PASSWORD: onions --load-file-env
reload:
files:
- /etc/tor/torrc

View file

@ -1,2 +1,2 @@
#!/bin/bash
git ls-remote --tags https://git.torproject.org/tor.git | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1
git ls-remote --tags https://gitlab.torproject.org/tpo/core/tor.git/ | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1

View file

@ -1,2 +1,2 @@
#!/bin/sh
git ls-remote --tags https://git.torproject.org/torsocks.git | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1
git ls-remote --tags https://gitlab.torproject.org/tpo/core/torsocks.git/ | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1

View file

@ -258,6 +258,18 @@ class Setup(object):
)
)
def load_file_env(self):
# for key, val in os.environ.items():
# if key.endswith('_FILE'):
# with open(val, 'r') as f:
# os.environ[key[:-5]] = f.read()
if os.environ.get('TOR_CONTROL_PASSWORD_FILE'):
with open(os.environ['TOR_CONTROL_PASSWORD_FILE']) as f:
# add to env to be used by torrc template
pwd = f.read().strip()
os.environ['TOR_CONTROL_PASSWORD'] = pwd
print(pwd, end='')
def _get_setup_from_env(self):
self._set_service_names()
self._setup_keys_and_ports_from_env()
@ -479,6 +491,8 @@ def main():
parser.add_argument('--setup-hosts', dest='setup', action='store_true',
help='Setup hosts')
parser.add_argument('--load-file-env', dest='load_file_env', action='store_true')
parser.add_argument('--run-vanguards', dest='vanguards',
action='store_true',
help='Run Vanguards in tor container')
@ -490,6 +504,9 @@ def main():
logging.getLogger().setLevel(logging.WARNING)
try:
onions = Onions()
if args.load_file_env:
onions.load_file_env()
return
if args.vanguards:
onions.run_vanguards()
return

1358
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -5,19 +5,17 @@ description = "Display onion sites hosted"
authors = ["Christophe Mehay <cmehay@nospam.student.42.fr>"]
license = "WTFPL"
repository = "https://github.com/cmehay/docker-tor-hidden-service"
classifiers=[
"Programming Language :: Python",
"Development Status :: 1 - Planning",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Topic :: System :: Installation/Setup",
]
packages = [
{ include = "onions" },
classifiers = [
"Programming Language :: Python",
"Development Status :: 1 - Planning",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Topic :: System :: Installation/Setup",
]
packages = [{ include = "onions" }]
[tool.poetry.scripts]
onions = "onions:main"