Untested wings concept

This commit is contained in:
Dane Everitt 2022-02-06 19:34:13 -05:00
parent 847a283039
commit 0adf79f562
4 changed files with 58 additions and 81 deletions

39
build/wings/Dockerfile Normal file
View File

@ -0,0 +1,39 @@
FROM debian:11-slim
ENV DEBIAN_FRONTEND noninteractive \
LANG C.UTF-8 \
GOBIN /usr/local/go/bin
USER root
RUN apt -y update \
&& apt -y --no-install-recommends install software-properties-common gnupg2 curl sudo \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt -y update \
&& apt -y --no-install-recommends install \
iputils-ping \
tar \
zip \
unzip \
make \
gcc \
g++ \
gdb \
python \
docker-ce \
docker-ce-cli \
containerd.io \
&& curl -OL https://go.dev/dl/go1.17.6.linux-amd64.tar.gz \
&& tar xvf go1.17.6.linux-amd64.tar.gz -C /usr/local \
&& chown -R root:root /usr/local/go \
&& rm -rf go1.17.6.linux-amd64.tar.gz \
&& /usr/local/go/bin/go get github.com/go-delve/delve/cmd/dlv \
&& usermod -aG docker root \
&& echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/bash.bashrc
EXPOSE 8080
EXPOSE 2022
WORKDIR /home/root/wings
CMD ["/bin/bash"]

View File

@ -33,6 +33,20 @@ services:
- "traefik.http.routers.app.rule=Host(`pterodactyl.test`)"
- "traefik.http.routers.app.entrypoints=https"
- "traefik.http.services.app.loadbalancer.server.port=80"
wings:
build:
context: ./build/wings
dockerfile: Dockerfile
tty: true
stdin_open: true
networks:
pterodactyl:
aliases:
- wings.pterodactyl.test
volumes:
- ./code/wings:/home/root/wings:cached
- wings-data:/var/lib/pterodactyl:delegated
- /var/run/docker.sock:/var/run/docker.sock:ro
mysql:
image: mariadb:10.7
restart: unless-stopped
@ -96,3 +110,5 @@ volumes:
driver: local
minio:
driver: local
wings-data:
driver: local

View File

@ -1,70 +0,0 @@
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
sudo cp /tmp/.deploy/supervisor/pterodactyl.conf /etc/supervisor/conf.d/pterodactyl.conf
sudo cp /tmp/.deploy/nginx/pterodactyl.test.conf /etc/nginx/sites-available/pterodactyl.test.conf
# Needed for FPM to start correctly.
sudo mkdir -p /run/php
# Disable xdebug on the CLI for _MASSIVE_ performance improvement
sudo phpdismod -s cli xdebug
cd /home/vagrant/app
sudo chown -R vagrant:vagrant *
sudo chown -R www-data:vagrant storage
sudo chmod -R 775 storage/* bootstrap/cache
# Start out in a "this isn't a new install" mode
freshInstall=false
# If no environment file is found copy the example one and then generate the key.
if [ ! -f ".env" ]; then
cp .env.example .env
fi
# Force this into local/debug mode
sed -i "s/APP_ENV=.*/APP_ENV=local/" .env
sed -i "s/APP_DEBUG=.*/APP_DEBUG=true/" .env
composer install --no-interaction --prefer-dist --no-scripts --no-progress
php artisan config:clear
# Configure the cronjob
(crontab -l 2>/dev/null; echo "* * * * * php /home/vagrant/app/artisan schedule:run >> /dev/null 2>&1") | crontab -
# Create symlink
sudo rm -f /srv/www
sudo ln -s /home/vagrant/app /srv/www
# Configure OPCache
sudo cat | sudo tee -a /etc/php/8.0/cli/conf.d/10-opcache.ini > /dev/null <<EOF
opcache.revalidate_freq = 0
opcache.max_accelerated_files = 11003
opcache.memory_consumption = 192
opcache.interned_strings_buffer = 16
opcache.fast_shutdown = 1
opcache.enable = 1
opcache.enable_cli = 1
EOF
sudo cat | sudo tee -a /etc/php/8.0/fpm/conf.d/20-xdebug.ini > /dev/null <<EOF
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
EOF
# Install development dependencies
yarn install --no-progress
# Cleanup
sudo rm -rfv /var/www
sudo rm -rv /etc/nginx/sites-enabled/*
sudo ln -s /etc/nginx/sites-available/pterodactyl.test.conf /etc/nginx/sites-enabled/pterodactyl.test.conf
# Start processes
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start pteroq:*
sudo supervisorctl restart nginx
echo "done."

View File

@ -3,23 +3,15 @@
CURRENT_DIRECTORY="$(pwd)"
cd /tmp
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-hostmanager
cd ${CURRENT_DIRECTORY}
git clone https://github.com/pterodactyl/panel.git code/panel
git clone https://github.com/pterodactyl/documentation.git code/documentation
git clone https://github.com/pterodactyl/wings.git code/wings
mkdir -p .data/certificates
mkcert -install
mkcert pterodactyl.test '*.pterodactyl.test'
mv *pterodactyl.test*-key.pem .data/certificates/pterodactyl.test-key.pem
mv *pterodactyl.test*.pem .data/certificates/pterodactyl.test.pem
cp "$(mkcert -CAROOT)/rootCA.pem" .data/certificates/root_ca.pem
# sudo gem install docker-sync
# docker-sync start
mv *pterodactyl.test*-key.pem docker/certificates/pterodactyl.test-key.pem
mv *pterodactyl.test*.pem docker/certificates/pterodactyl.test.pem
cp "$(mkcert -CAROOT)/rootCA.pem" docker/certificates/root_ca.pem