diff --git a/snigdhaos+blackarch+chaotic/pacman.conf b/snigdhaos+blackarch+chaotic/pacman.conf index e69de29..8e6de4a 100644 --- a/snigdhaos+blackarch+chaotic/pacman.conf +++ b/snigdhaos+blackarch+chaotic/pacman.conf @@ -0,0 +1,109 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = auto + +#IgnorePkg = +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +ILoveCandy +#NoProgressBar +#CheckSpace +VerbosePkgLists +DisableDownloadTimeout +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[snigdhaos-core] +Include = /etc/pacman.d/snigdhaos-mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[snigdhaos-extra] +Include = /etc/pacman.d/snigdhaos-mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist + +[blackarch] +Include = /etc/pacman.d/blackarch-mirrorlist \ No newline at end of file diff --git a/snigdhaos+blackarch/dockerfile b/snigdhaos+blackarch/dockerfile new file mode 100644 index 0000000..605ac21 --- /dev/null +++ b/snigdhaos+blackarch/dockerfile @@ -0,0 +1,50 @@ +# Stage 1: Build the root filesystem +FROM archlinux:base-devel AS rootfs + +# Update system and install base packages +RUN pacman -Syu --noconfirm && \ + pacman -S --needed --noconfirm pacman-contrib git openssh sudo curl + +# Add custom pacman configuration +COPY pacman.conf /etc/pacman.conf + +# Download and configure the Snigdha OS mirrorlist +RUN curl -fsSL https://raw.githubusercontent.com/Snigdha-OS/snigdhaos-pkgbuilds/refs/heads/master/snigdhaos-mirrorlist/snigdhaos-mirrorlist \ + -o /etc/pacman.d/snigdhaos-mirrorlist + +# Initialize pacman keyring and trust Snigdha OS signing key +RUN pacman-key --init && \ + pacman-key --recv-keys E1415F19F21171F2 --keyserver keyserver.ubuntu.com && \ + pacman-key --lsign-key E1415F19F21171F2 + +# Install Snigdha OS-specific packages and keyring +RUN pacman -Sy && \ + pacman -S --needed --noconfirm snigdhaos-keyring snigdhaos-mirrorlist && \ + pacman -Syu --noconfirm + +# Add BlackArch repository +RUN curl -fsSL https://blackarch.org/strap.sh -o /tmp/strap.sh && \ + chmod +x /tmp/strap.sh && \ + /tmp/strap.sh && \ + pacman -Syu --noconfirm + +# Clean up cache and temporary files to reduce image size +RUN rm -rf /var/lib/pacman/sync/* && \ + find /var/cache/pacman/ -type f -delete && \ + pacman -Sc --noconfirm + +# Stage 2: Create the final minimal container +FROM scratch + +# Metadata about the container +LABEL org.opencontainers.image.title="Snigdha OS with BlackArch" \ + org.opencontainers.image.description="Snigdha OS - Arch-based Linux distribution for Penetration Testing and Ethical Hacking, with BlackArch repository preconfigured" \ + org.opencontainers.image.version="1.0" \ + org.opencontainers.image.authors="Snigdha OS Team" \ + org.opencontainers.image.licenses="GPL-3.0-or-later" + +# Copy the prepared root filesystem +COPY --from=rootfs / / + +# Default command +CMD ["/usr/bin/bash"] diff --git a/snigdhaos+blackarch/pacman.conf b/snigdhaos+blackarch/pacman.conf new file mode 100644 index 0000000..9ecfd82 --- /dev/null +++ b/snigdhaos+blackarch/pacman.conf @@ -0,0 +1,106 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = auto + +#IgnorePkg = +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +ILoveCandy +#NoProgressBar +#CheckSpace +VerbosePkgLists +DisableDownloadTimeout +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[snigdhaos-core] +Include = /etc/pacman.d/snigdhaos-mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[snigdhaos-extra] +Include = /etc/pacman.d/snigdhaos-mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs +[blackarch] +Include = /etc/pacman.d/blackarch-mirrorlist \ No newline at end of file diff --git a/chaotic-snigdhaos/dockerfile b/snigdhaos+chaotic/dockerfile similarity index 100% rename from chaotic-snigdhaos/dockerfile rename to snigdhaos+chaotic/dockerfile diff --git a/chaotic-snigdhaos/pacman.conf b/snigdhaos+chaotic/pacman.conf similarity index 98% rename from chaotic-snigdhaos/pacman.conf rename to snigdhaos+chaotic/pacman.conf index 8e6de4a..f9bbbf8 100644 --- a/chaotic-snigdhaos/pacman.conf +++ b/snigdhaos+chaotic/pacman.conf @@ -104,6 +104,3 @@ Include = /etc/pacman.d/mirrorlist #Server = file:///home/custompkgs [chaotic-aur] Include = /etc/pacman.d/chaotic-mirrorlist - -[blackarch] -Include = /etc/pacman.d/blackarch-mirrorlist \ No newline at end of file diff --git a/base-snigdhaos/dockerfile b/snigdhaos/dockerfile similarity index 100% rename from base-snigdhaos/dockerfile rename to snigdhaos/dockerfile diff --git a/base-snigdhaos/pacman.conf b/snigdhaos/pacman.conf similarity index 100% rename from base-snigdhaos/pacman.conf rename to snigdhaos/pacman.conf