diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml new file mode 100644 index 0000000..23f194e --- /dev/null +++ b/.github/workflows/bot.yml @@ -0,0 +1,40 @@ +name: build bot +on: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - bot/** +jobs: + push: + name: "yolks:bot_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - bastion + - parkertron + - red + - sinusbot + steps: + - uses: actions/checkout@v2 + - uses: docker/setup-buildx-action@v1 + with: + version: "v0.5.1" + buildkitd-flags: --debug + - uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v2 + with: + context: ./bot + file: ./bot/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64 + push: true + tags: | + ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }} diff --git a/bot/bastion/Dockerfile b/bot/bastion/Dockerfile new file mode 100644 index 0000000..18390f3 --- /dev/null +++ b/bot/bastion/Dockerfile @@ -0,0 +1,19 @@ +FROM node:14-buster + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + ## install mongo +RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - \ + && echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list \ + && apt update \ + && apt install -y mongodb-org=4.2.7 mongodb-org-server=4.2.7 mongodb-org-shell=4.2.7 mongodb-org-mongos=4.2.7 mongodb-org-tools=4.2.7 \ + ## install bastion reqs + && apt install -y python build-essential netcat ffmpeg \ + ## add container user + && useradd -d /home/container -m container -s /bin/bash + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/bot/bastion/entrypoint.sh b/bot/bastion/entrypoint.sh new file mode 100644 index 0000000..06c0ce9 --- /dev/null +++ b/bot/bastion/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/bot/parkertron/Dockerfile b/bot/parkertron/Dockerfile new file mode 100644 index 0000000..d87f516 --- /dev/null +++ b/bot/parkertron/Dockerfile @@ -0,0 +1,13 @@ +FROM alpine:3.9 + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +RUN apk add --update --no-cache git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev \ + && adduser -D -h /home/container container + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/ash", "/entrypoint.sh"] diff --git a/bot/parkertron/entrypoint.sh b/bot/parkertron/entrypoint.sh new file mode 100644 index 0000000..c39e96c --- /dev/null +++ b/bot/parkertron/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/ash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/bot/red/Dockerfile b/bot/red/Dockerfile new file mode 100644 index 0000000..77469b5 --- /dev/null +++ b/bot/red/Dockerfile @@ -0,0 +1,19 @@ +FROM python:3.8-slim + +LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" + +RUN mkdir -p /usr/share/man/man1 \ + && apt update \ + && apt -y install git ca-certificates dnsutils iproute2 wget curl xz-utils git openjdk-11-jre \ + zlib1g-dev libffi-dev git libmagickwand-dev unzip libaa1-dev build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev ffmpeg imagemagick \ + && pip install python-forecastio tweepy unidecode discord-text-sanitizer mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil \ + && useradd -m -d /home/container container \ + && mkdir -p /home/container/.config/Red-DiscordBot/ \ + && ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/bot/red/entrypoint.sh b/bot/red/entrypoint.sh new file mode 100644 index 0000000..cdb1fd1 --- /dev/null +++ b/bot/red/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} \ No newline at end of file diff --git a/bot/sinusbot/Dockerfile b/bot/sinusbot/Dockerfile new file mode 100644 index 0000000..bbc4a92 --- /dev/null +++ b/bot/sinusbot/Dockerfile @@ -0,0 +1,21 @@ +FROM ubuntu:18.04 + +LABEL maintainer="ki2007 " version="1.0" + +ENV DEBIAN_FRONTEND noninteractive + +# Install Dependencies +RUN apt update \ + && apt upgrade -y \ + && apt install -y ca-certificates less libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 locales pulseaudio python sudo x11vnc x11-xkb-utils xvfb iproute2 \ + && useradd -m -d /home/container container + +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD ["/bin/bash", "/entrypoint.sh"] diff --git a/bot/sinusbot/entrypoint.sh b/bot/sinusbot/entrypoint.sh new file mode 100644 index 0000000..33e5ddc --- /dev/null +++ b/bot/sinusbot/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace Startup Variables +MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP}