darknet-lantern/setup_docker.py
2025-06-15 14:57:20 +01:00

77 lines
2.2 KiB
Python

#!/bin/python3
############################################################
# Python script to setup docker containers on debian machines.
#
#
import subprocess
from string import Template
from typing import Optional
# Constants
dep_install = ["php-gd", "php8.2-fpm", "nginx"]
lantern_dep = ["python3-pandas", "python3-requests", "python3-socks", "python3-dotenv", "python3-pip"]
shell = "python3 -c 'import pty; pty.spawn(\"/bin/sh\")'"
nginx_conf = Template("""server {
listen 4443;
listen [::]:4443;
server_name lantern.$onion_domain;
root /srv/darknet-lantern/www/;
location ~ \\.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
index index.php;
}""")
tor_conf = """
HiddenServiceDir /var/lib/tor/lantern/
HiddenServicePort 80 127.0.0.1:4443
SocksPort 127.0.0.1:9050
"""
def update_and_install(to_be_installed: Optional[list]) -> None:
""" APT Update and Install
This function handles all updates and installs needed in this script.
Args:
to_be_installed -> a list of string(packages) that will be installed
return -> None
"""
packages = to_be_installed
subprocess.run(["torsocks","apt-get","update"])
if packages is None:
return
else:
print(f"Installing {len(packages)} package(s)")
for package in packages:
subprocess.run(["torsocks","apt-get", "install", package])
def main():
# Install dependencies
update_and_install(to_be_installed=dep_install)
# Change tor conf file
subprocess.run(["rm", "/etc/tor/torrc"])
subprocess.run(["cp","torrc", "/etc/tor/torrc"])
subprocess.run(["service", "tor", "restart"])
domain = subprocess.run(["cat", "/var/lib/tor/lantern/hostname"], capture=True)
nginx_conf.safe_substitute(onion_domain=domain)
subprocess.run(["service", "tor", "restart"])
subprocess(["ln","-s","/etc/nginx/sites-available/lantern.conf","/etc/nginx/sites-enabled/"])
subprocess(["nginx", "-s", "reload"])
update_and_install(to_be_installed=lantern_dep)
print(f"Here i {domain}")
main()
print(shell)
print()