diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml index 8eda92d..c061594 100644 --- a/.github/workflows/bot.yml +++ b/.github/workflows/bot.yml @@ -19,6 +19,7 @@ jobs: - parkertron - red - sinusbot + - bastion steps: - uses: actions/checkout@v3 - uses: docker/setup-buildx-action@v2 @@ -55,30 +56,30 @@ jobs: rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache - pushAmd: - name: "yolks:bot_${{ matrix.tag }}" - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - tag: - - bastion - steps: - - uses: actions/checkout@v2 - - uses: docker/setup-buildx-action@v1 - with: - version: "v0.7.0" - 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/${{ matrix.tag }} - file: ./bot/${{ matrix.tag }}/Dockerfile - platforms: linux/amd64 - push: true - tags: | - ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }} + # pushAmd: + # name: "yolks:bot_${{ matrix.tag }}" + # runs-on: ubuntu-latest + # strategy: + # fail-fast: false + # matrix: + # tag: + # - bastion + # steps: + # - uses: actions/checkout@v2 + # - uses: docker/setup-buildx-action@v1 + # with: + # version: "v0.7.0" + # 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/${{ matrix.tag }} + # 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 index c23c30c..056a813 100644 --- a/bot/bastion/Dockerfile +++ b/bot/bastion/Dockerfile @@ -1,14 +1,14 @@ -FROM --platform=$TARGETOS/$TARGETARCH node:18-bullseye +FROM --platform=$TARGETOS/$TARGETARCH mongo:6-focal LABEL author="Michael Parker" maintainer="parker@pterodactyl.io" -## install mongo -RUN wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | apt-key add - \ - && echo "deb http://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" | tee /etc/apt/sources.list.d/mongodb-org-5.0.list \ - && apt update \ - && apt install -y mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools \ +## install nodejs 18 +RUN apt update && apt install --no-install-recommends -y curl \ + && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ + && apt install -y nodejs \ + && npm install -g npm@latest \ ## install bastion reqs - && apt install -y python build-essential git libtool netcat ffmpeg iproute2 curl tzdata \ + && apt install -y python3 build-essential git libtool netcat ffmpeg iproute2 tzdata \ ## add container user && useradd -d /home/container -m container -s /bin/bash @@ -17,4 +17,4 @@ ENV USER=container HOME=/home/container WORKDIR /home/container COPY ./entrypoint.sh /entrypoint.sh -CMD ["/bin/bash", "/entrypoint.sh"] +CMD ["/bin/bash", "/entrypoint.sh"] \ No newline at end of file diff --git a/bot/bastion/entrypoint.sh b/bot/bastion/entrypoint.sh index 7859814..8a8604a 100644 --- a/bot/bastion/entrypoint.sh +++ b/bot/bastion/entrypoint.sh @@ -1,4 +1,21 @@ #!/bin/bash +#Variables +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +clear +#show versions +echo -e "${BLUE}-------------------------------------------------${NC}" +echo -e "${YELLOW}BastionBot Installation${NC}" +echo -e "${BLUE}-------------------------------------------------${NC}" +echo -e "${YELLOW}MongoDB Version:${NC} " && mongod --version +echo -e "${YELLOW}NodeJS Version:${NC} " && node -v +echo -e "${YELLOW}Python Version:${NC} " && python3 --version +echo -e "${BLUE}-------------------------------------------------${NC}" + cd /home/container # Set environment variable that holds the Internal Docker IP @@ -7,13 +24,19 @@ export INTERNAL_IP # Replace Startup Variables MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')) -echo -e ":/home/container$ ${MODIFIED_STARTUP}" +echo -e "${YELLOW}:/home/container${NC} ${MODIFIED_STARTUP}" # start mongo -mongod --fork --dbpath /home/container/mongodb/ --port 27017 --logpath /home/container/mongod.log && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done +echo -e "${BLUE}-------------------------------------------------${NC}" +echo -e "${YELLOW}starting MongoDB...${NC}" +echo -e "${BLUE}-------------------------------------------------${NC}" +mongod --fork --dbpath /home/container/mongodb/ --port 27017 --logpath /home/container/mongod.log --logRotate reopen --logappend && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done # Run the Server +echo -e "${BLUE}-------------------------------------------------${NC}" +echo -e "${YELLOW}BastionBot starting...${NC}" +echo -e "${BLUE}-------------------------------------------------${NC}" eval ${MODIFIED_STARTUP} # stop mongo -mongo --eval \"db.getSiblingDB('admin').shutdownServer()\ +mongod --eval "db.adminCommand({ "shutdown" : 1 })"