From 88a118446d0ecae055bb7105197f013a8eaefcd2 Mon Sep 17 00:00:00 2001 From: ghostersk <68815071+ghostersk@users.noreply.github.com> Date: Sun, 1 Jun 2025 07:48:03 +0100 Subject: [PATCH] Create LinuxServer_SetupScript.sh --- Linux/LinuxServer_SetupScript.sh | 132 +++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 Linux/LinuxServer_SetupScript.sh diff --git a/Linux/LinuxServer_SetupScript.sh b/Linux/LinuxServer_SetupScript.sh new file mode 100644 index 0000000..33798bb --- /dev/null +++ b/Linux/LinuxServer_SetupScript.sh @@ -0,0 +1,132 @@ +#!/bin/bash +set -e + +INTERFACE_NAME="internal0" +PRIVATE_IP="10.94.195.1/24" +NETDEV_FILE="/etc/systemd/network/${INTERFACE_NAME}.netdev" +NETWORK_FILE="/etc/systemd/network/${INTERFACE_NAME}.network" +DOCKER_DAEMON_FILE="/etc/docker/daemon.json" +FIREWALLD_ZONE="trusted" +USER_NEW="username" +LOCALE_FILE="/etc/default/locale" + +echo Adding new user with sudo privileges: $USER_NEW +sudo useradd -m $USER_NEW +sudo usermod -aG sudo $USER_NEW +sudo chsh -s /bin/sh $USER_NEW + +sudo apt update && sudo apt install -y firewalld jq git net-tools + +sudo tee $LOCALE_FILE > /dev/null < /dev/null +sudo firewall-cmd --zone=public --add-port=443/tcp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=25/tcp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=465/tcp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=587/tcp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent > /dev/null + +sudo firewall-cmd --zone=public --add-port=500/udp --permanent > /dev/null +sudo firewall-cmd --zone=public --add-port=4500/udp --permanent > /dev/null + +sudo firewall-cmd --zone=public --change-interface=ens6 --permanent +sudo firewall-cmd --permanent --zone=public --add-masquerade > /dev/null +sudo firewall-cmd --set-default-zone=trusted + +sudo firewall-cmd --reload +sudo firewall-cmd --get-default-zone + +echo "Creating dummy interface: $INTERFACE_NAME" + +# Create .netdev file +cat < /dev/null +sudo apt-get update +sudo apt-get install -y docker-ce docker-ce-cli containerd.io \ + docker-buildx-plugin docker-compose-plugin docker-compose + +sudo usermod -aG docker $USER_NEW + +sudo mkdir -p /etc/docker +if [[ -f "$DOCKER_DAEMON_FILE" ]]; then + if grep -q '"iptables": false' "$DOCKER_DAEMON_FILE"; then + echo "Docker already configured to not use iptables." + else + echo "Adding iptables=false to existing daemon.json..." + sudo jq '. + {iptables: false}' "$DOCKER_DAEMON_FILE" | sudo tee "$DOCKER_DAEMON_FILE" > /dev/null + fi +else + echo '{ "iptables": false }' | sudo tee "$DOCKER_DAEMON_FILE" > /dev/null +fi + +docker network create \ + --driver=bridge \ + --subnet=172.32.97.0/24 \ + --gateway=172.32.97.1 \ + --attachable=true \ + --opt com.docker.network.bridge.name=backend \ + backend + +sudo systemctl restart docker + +echo "Creating symlink for python... if necessary" +command -v python >/dev/null 2>&1 || (PY3=$(command -v python3) && sudo ln -s "$PY3" /usr/bin/python && echo "Linked python -> $PY3") || echo "python3 not found" + +sudo firewall-cmd --get-active-zones + +