diff --git a/.configs/opensuse-torrc b/.configs/opensuse-torrc new file mode 100644 index 0000000..4f5535d --- /dev/null +++ b/.configs/opensuse-torrc @@ -0,0 +1,20 @@ +DataDirectory /var/lib/tor +PidFile /var/run/tor/tor.pid +RunAsDaemon 1 +User tor + +ControlSocket /var/run/tor/control +ControlSocketsGroupWritable 1 + +CookieAuthentication 1 +CookieAuthFileGroupReadable 1 +CookieAuthFile /var/run/tor/control.authcookie + +Log notice file /var/log/tor/log + +ClientOnly 1 +TransPort 9051 +DNSPort 9061 + +VirtualAddrNetwork 10.66.0.0/255.255.0.0 +AutomapHostsOnResolve 1 diff --git a/.github/workflows/fedora-test.yml b/.github/workflows/fedora-test.yml new file mode 100644 index 0000000..a146c0b --- /dev/null +++ b/.github/workflows/fedora-test.yml @@ -0,0 +1,17 @@ +name: Test Nipe on Fedora +on: [push] + +jobs: + build: + runs-on: fedora-latest + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + run: | + sudo dnf install -y perl cpanminus gcc make zlib-devel + sudo cpanm --installdeps . + sudo perl nipe.pl install + - name: Verify Nipe status + run: | + sudo perl nipe.pl status diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 1bc1e02..cba9251 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -9,8 +9,8 @@ jobs: critic: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Run Perl::Critic uses: natanlao/perl-critic-action@v1.1 with: - files: critic \ No newline at end of file + files: critic diff --git a/.github/workflows/opensuse-test.yml b/.github/workflows/opensuse-test.yml new file mode 100644 index 0000000..8e139fb --- /dev/null +++ b/.github/workflows/opensuse-test.yml @@ -0,0 +1,17 @@ +name: Test Nipe on openSUSE Leap +on: [push] + +jobs: + build: + runs-on: opensuse-leap-latest + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + run: | + sudo zypper --non-interactive install perl cpanminus gcc make zlib-devel + sudo cpanm --installdeps . + sudo perl nipe.pl install + - name: Verify Nipe status + run: | + sudo perl nipe.pl status diff --git a/.github/workflows/test-debian.yml b/.github/workflows/test-debian.yml new file mode 100644 index 0000000..d72a7fc --- /dev/null +++ b/.github/workflows/test-debian.yml @@ -0,0 +1,18 @@ +name: Test Nipe on Debian +on: [push] + +jobs: + build: + runs-on: debian-latest + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y perl cpanminus gcc make zlib1g-dev + sudo cpanm --installdeps . + sudo perl nipe.pl install + - name: Verify Nipe status + run: | + sudo perl nipe.pl status diff --git a/.github/workflows/test-ubuntu.yml b/.github/workflows/test-ubuntu.yml index 1101838..f9020fb 100644 --- a/.github/workflows/test-ubuntu.yml +++ b/.github/workflows/test-ubuntu.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v1 - name: Install dependencies run: | - sudo apt install -y perl cpanminus gcc make + sudo apt install -y perl cpanminus gcc make zlib1g-dev sudo cpanm --installdeps . sudo perl nipe.pl install - name: Verify Nipe status diff --git a/.perlcriticrc b/.perlcriticrc index 722782a..9c89373 100644 --- a/.perlcriticrc +++ b/.perlcriticrc @@ -1,4 +1,5 @@ + severity = 4 [-TestingAndDebugging::RequireUseStrict] -[-TestingAndDebugging::RequireUseWarnings] \ No newline at end of file +[-TestingAndDebugging::RequireUseWarnings] diff --git a/Dockerfile b/Dockerfile index 5414b8f..14817e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,13 @@ -FROM perl:5.38 +FROM ubuntu:latest COPY . /usr/src/nipe WORKDIR /usr/src/nipe -RUN cpanm --installdeps . +EXPOSE 9050 + +RUN apt-get update && \ + apt-get install -y cpanminus && \ + rm -rf /var/lib/apt/lists/* -ENTRYPOINT [ "perl", "./nipe.pl" ] \ No newline at end of file +RUN cpanm --installdeps . +RUN perl nipe.pl install \ No newline at end of file diff --git a/cpanfile b/cpanfile index 2ed7c1a..9a21d8f 100644 --- a/cpanfile +++ b/cpanfile @@ -1,3 +1,5 @@ +requires "Net::SSL"; +requires "IO::Socket::SSL"; requires "JSON", "4.07"; requires "Try::Tiny", "0.31"; -requires "Config::Simple", "4.58"; \ No newline at end of file +requires "Config::Simple"; diff --git a/lib/Nipe/Utils/Device.pm b/lib/Nipe/Utils/Device.pm index 23ade61..5747829 100644 --- a/lib/Nipe/Utils/Device.pm +++ b/lib/Nipe/Utils/Device.pm @@ -28,8 +28,13 @@ package Nipe::Utils::Device { $device{distribution} = "void"; } + elsif (($id_like =~ /[S,s]use/) || ($id_distro =~ /[O,o]pen[S,s]use/)) { + $device{username} = "tor"; + $device{distribution} = "opensuse"; + } + return %device; } } -1; \ No newline at end of file +1; diff --git a/lib/Nipe/Utils/Install.pm b/lib/Nipe/Utils/Install.pm index 980c455..5fe3eee 100644 --- a/lib/Nipe/Utils/Install.pm +++ b/lib/Nipe/Utils/Install.pm @@ -12,7 +12,8 @@ package Nipe::Utils::Install { "fedora" => "dnf install -y tor iptables", "centos" => "yum -y install epel-release tor iptables", "void" => "xbps-install -y tor iptables", - "arch" => "pacman -S --noconfirm tor iptables" + "arch" => "pacman -S --noconfirm tor iptables", + "opensuse" => "zypper install -y tor iptables" ); if ($device{distribution} eq "void") { @@ -29,4 +30,4 @@ package Nipe::Utils::Install { } } -1; \ No newline at end of file +1;