├── private.sh ├── private2.sh ├── README.md ├── style.sh ├── nexus-vps.json ├── .bashrc ├── vpsfree.sh └── PteroVM.sh /private.sh: -------------------------------------------------------------------------------- 1 | apt update 2 | apt upgrade -y 3 | apt install sudo curl wget git neofetch -y 4 | rm -rf /home/container/installer.sh 5 | -------------------------------------------------------------------------------- /private2.sh: -------------------------------------------------------------------------------- 1 | apk update 2 | apk upgrade 3 | apk add package neofetch curl git wget sudo 4 | rm -rf /home/container/installer.sh 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FREE VPS Pterodactyl [ E . G . G ] 2 | --------------------- 3 | # [ UBUNTU & DEBIAN & Alphine ] 💚 4 | - Centos Soon ! 5 | --------------------- 6 | # 🔶 Installion 7 | --------------------- 8 | - Click On Nests > Import EGG / and add nexus-vps.json 9 | - Create a server with the EGG! 10 | --------------------- 11 | # Here ya go, Done! 12 | --------------------- 13 | # ✨ Credits 14 | - dxomg / DC: dxomg 15 | - JOO / DC: j6_o 16 | -------------------------------------------------------------------------------- /style.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | BLACK="\e[30m" 3 | RED="\e[31m" 4 | GREEN="\e[32m" 5 | YELLOW="\e[33m" 6 | BLUE="\e[34m" 7 | MAGENTA="\e[35m" 8 | CYAN="\e[36m" 9 | WHITE="\e[37m" 10 | large="\e#3" 11 | BOLD="\e[1m" 12 | neofetch 13 | echo -e "ㅤ" 14 | echo -e "ㅤ" 15 | echo -e "ㅤ" 16 | echo -e "ㅤ" 17 | echo -e "ㅤ" 18 | echo -e "ㅤ" 19 | echo -e "ㅤ" 20 | 21 | echo -e "${YELLOW} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " 22 | echo -e "${BOLD}${GREEN}Powered By" 23 | echo -e "${RED}Apex.Cloud ©️ Company 🌟" 24 | echo "VPS By _2w3 (Jake)" 25 | echo -e "${YELLOW} - - - - - - - - - - - - - - - - ${WHITE}[ ${BOLD}${GREEN}TYPE YOUR COMMAND ${WHITE}]${YELLOW} - - - - - - - - - - - - - - " 26 | -------------------------------------------------------------------------------- /nexus-vps.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2023-08-09T01:24:11+02:00", 8 | "name": "vps", 9 | "author": "pterodactylmarket@kitten.systems", 10 | "description": "vps", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:debian": "ghcr.io\/pterodactyl\/yolks:debian" 14 | }, 15 | "file_denylist": [], 16 | "startup": "bash install.sh", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{}", 20 | "logs": "{}", 21 | "stop": "exit" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/bash\r\n# hello\r\ncd \/mnt\/server\r\ncurl https:\/\/raw.githubusercontent.com\/abdalla435\/VPS-Pterodactyl-EGG\/main\/PteroVM.sh -o install.sh\r\nchmod -R 777 *\r\necho \"click start~ meow\"", 26 | "container": "ghcr.io\/pterodactyl\/installers:debian", 27 | "entrypoint": "bash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "test", 33 | "description": "", 34 | "env_variable": "test", 35 | "default_value": "test", 36 | "user_viewable": false, 37 | "user_editable": false, 38 | "rules": "required|string|max:20", 39 | "field_type": "text" 40 | } 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | # ~/.bashrc: executed by bash(1) for non-login shells. 2 | # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 3 | # for examples 4 | if [ -f /home/container/installer.sh ]; then 5 | bash /home/container/installer.sh 6 | fi 7 | bash /home/container/style.sh 8 | # If not running interactively, don't do anything 9 | [ -z "$PS1" ] && return 10 | 11 | 12 | # don't put duplicate lines in the history. See bash(1) for more options 13 | # ... or force ignoredups and ignorespace 14 | HISTCONTROL=ignoredups:ignorespace 15 | 16 | # append to the history file, don't overwrite it 17 | shopt -s histappend 18 | 19 | # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) 20 | HISTSIZE=1000 21 | HISTFILESIZE=2000 22 | 23 | # check the window size after each command and, if necessary, 24 | # update the values of LINES and COLUMNS. 25 | shopt -s checkwinsize 26 | 27 | # make less more friendly for non-text input files, see lesspipe(1) 28 | [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" 29 | 30 | # set variable identifying the chroot you work in (used in the prompt below) 31 | if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then 32 | debian_chroot=$(cat /etc/debian_chroot) 33 | fi 34 | 35 | # set a fancy prompt (non-color, unless we know we "want" color) 36 | case "$TERM" in 37 | xterm-color) color_prompt=yes;; 38 | esac 39 | 40 | # uncomment for a colored prompt, if the terminal has the capability; turned 41 | # off by default to not distract the user: the focus in a terminal window 42 | # should be on the output of commands, not on the prompt 43 | #force_color_prompt=yes 44 | 45 | if [ -n "$force_color_prompt" ]; then 46 | if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then 47 | # We have color support; assume it's compliant with Ecma-48 48 | # (ISO/IEC-6429). (Lack of such support is extremely rare, and such 49 | # a case would tend to support setf rather than setaf.) 50 | color_prompt=yes 51 | else 52 | color_prompt= 53 | fi 54 | fi 55 | 56 | if [ "$color_prompt" = yes ]; then 57 | PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 58 | else 59 | PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 60 | fi 61 | unset color_prompt force_color_prompt 62 | 63 | # If this is an xterm set the title to user@host:dir 64 | case "$TERM" in 65 | xterm*|rxvt*) 66 | PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" 67 | ;; 68 | *) 69 | ;; 70 | esac 71 | 72 | # enable color support of ls and also add handy aliases 73 | if [ -x /usr/bin/dircolors ]; then 74 | test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" 75 | alias ls='ls --color=auto' 76 | #alias dir='dir --color=auto' 77 | #alias vdir='vdir --color=auto' 78 | 79 | alias grep='grep --color=auto' 80 | alias fgrep='fgrep --color=auto' 81 | alias egrep='egrep --color=auto' 82 | fi 83 | 84 | # some more ls aliases 85 | alias ll='ls -alF' 86 | alias la='ls -A' 87 | alias l='ls -CF' 88 | 89 | # Alias definitions. 90 | # You may want to put all your additions into a separate file like 91 | # ~/.bash_aliases, instead of adding them here directly. 92 | # See /usr/share/doc/bash-doc/examples in the bash-doc package. 93 | 94 | if [ -f ~/.bash_aliases ]; then 95 | . ~/.bash_aliases 96 | fi 97 | 98 | # enable programmable completion features (you don't need to enable 99 | # this, if it's already enabled in /etc/bash.bashrc and /etc/profile 100 | # sources /etc/bash.bashrc). 101 | #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then 102 | # . /etc/bash_completion 103 | #fi 104 | -------------------------------------------------------------------------------- /vpsfree.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear 3 | GREEN='\033[0;32m' 4 | YELLOW='\033[1;33m' 5 | RED='\033[0;31m' 6 | echo " 7 | ####################################################################################### 8 | # 9 | # VPSFREE.ES SCRIPTS 10 | # 11 | # Copyright (C) 2022 - 2023, VPSFREE.ES 12 | # 13 | # 14 | #######################################################################################" 15 | echo "Select an option:" 16 | echo "1) LXDE - XRDP" 17 | echo "2) PufferPanel" 18 | echo "3) Install Basic Packages" 19 | echo "4) Install Nodejs" 20 | read option 21 | 22 | if [ $option -eq 1 ]; then 23 | clear 24 | echo -e "${RED}Downloading... Please Wait" 25 | apt update && apt upgrade -y 26 | export SUDO_FORCE_REMOVE=yes 27 | apt remove sudo -y 28 | apt install lxde -y 29 | apt install xrdp -y 30 | echo "lxsession -s LXDE -e LXDE" >> /etc/xrdp/startwm.sh 31 | clear 32 | echo -e "${GREEN}Downloading and installation completed!" 33 | echo -e "${YELLOW}Select RDP Port" 34 | read selectedPort 35 | 36 | sed -i "s/port=3389/port=$selectedPort/g" /etc/xrdp/xrdp.ini 37 | clear 38 | service xrdp restart 39 | clear 40 | echo -e "${GREEN}RDP Created And Started on Port $selectedPort" 41 | elif [ $option -eq 2 ]; then 42 | clear 43 | echo -e "${RED}Downloading... Please Wait" 44 | apt update && apt upgrade -y 45 | export SUDO_FORCE_REMOVE=yes 46 | apt remove sudo -y 47 | apt install curl wget git python3 -y 48 | curl -s https://packagecloud.io/install/repositories/pufferpanel/pufferpanel/script.deb.sh | bash 49 | apt update && apt upgrade -y 50 | curl -o /bin/systemctl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl3.py 51 | chmod -R 777 /bin/systemctl 52 | apt install pufferpanel 53 | clear 54 | echo -e "${GREEN}PufferPanel installation completed!" 55 | echo -e "${YELLOW}Enter PufferPanel Port" 56 | read pufferPanelPort 57 | 58 | sed -i "s/\"host\": \"0.0.0.0:8080\"/\"host\": \"0.0.0.0:$pufferPanelPort\"/g" /etc/pufferpanel/config.json 59 | echo -e "${YELLOW}Enter the username for the admin user:" 60 | read adminUsername 61 | echo -e "${YELLOW}Enter the password for the admin user:" 62 | read adminPassword 63 | echo -e "${YELLOW}Enter the email for the admin user:" 64 | read adminEmail 65 | 66 | pufferpanel user add --name "$adminUsername" --password "$adminPassword" --email "$adminEmail" --admin 67 | clear 68 | echo -e "${GREEN}Admin user $adminUsername added successfully!${NC}" 69 | systemctl restart pufferpanel 70 | clear 71 | echo -e "${GREEN}PufferPanel Created & Started - PORT: ${NC}$pufferPanelPort${GREEN}" 72 | elif [ $option -eq 3 ]; then 73 | clear 74 | echo -e "${RED}Downloading... Please Wait" 75 | apt update && apt upgrade -y 76 | apt install git curl wget sudo lsof iputils-ping -y 77 | curl -o /bin/systemctl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl3.py 78 | chmod -R 777 /bin/systemctl 79 | clear 80 | echo -e "${GREEN}Basic Packages Installed!" 81 | echo -e "${RED}sudo / curl / wget / git / lsof / ping" 82 | elif [ $option -eq 4 ]; then 83 | #!/bin/bash 84 | 85 | echo "Choose a Node.js version to install:" 86 | echo "1. 12.x" 87 | echo "2. 13.x" 88 | echo "3. 14.x" 89 | echo "4. 15.x" 90 | echo "5. 16.x" 91 | echo "6. 17.x" 92 | echo "7. 18.x" 93 | echo "8. 19.x" 94 | echo "9. 20.x" 95 | 96 | read -p "Enter your choice (1-9): " choice 97 | 98 | case $choice in 99 | 1) 100 | version="12" 101 | ;; 102 | 2) 103 | version="13" 104 | ;; 105 | 3) 106 | version="14" 107 | ;; 108 | 4) 109 | version="15" 110 | ;; 111 | 5) 112 | version="16" 113 | ;; 114 | 6) 115 | version="17" 116 | ;; 117 | 7) 118 | version="18" 119 | ;; 120 | 8) 121 | version="19" 122 | ;; 123 | 9) 124 | version="20" 125 | ;; 126 | *) 127 | echo "Invalid choice. Exiting." 128 | exit 1 129 | ;; 130 | esac 131 | echo -e "${RED}Downloading... Please Wait" 132 | apt remove --purge node* nodejs npm -y 133 | apt update && apt upgrade -y && apt install curl -y 134 | curl -sL "https://deb.nodesource.com/setup_${version}.x" -o /tmp/nodesource_setup.sh 135 | bash /tmp/nodesource_setup.sh 136 | apt update -y 137 | apt install -y nodejs 138 | clear 139 | echo -e "${GREEN}Node.js version $version has been installed." 140 | 141 | else 142 | echo -e "${RED}Invalid option selected.${NC}" 143 | fi 144 | -------------------------------------------------------------------------------- /PteroVM.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ############################# 4 | # Linux Installation # 5 | ############################# 6 | 7 | # Define the root directory to /home/container. 8 | # We can only write in /home/container and /tmp in the container. 9 | ROOTFS_DIR=/home/container 10 | 11 | export PATH=$PATH:~/.local/usr/bin 12 | 13 | PROOT_VERSION="5.3.0" # Some releases do not have static builds attached. 14 | 15 | # Detect the machine architecture. 16 | ARCH=$(uname -m) 17 | 18 | # Check machine architecture to make sure it is supported. 19 | # If not, we exit with a non-zero status code. 20 | if [ "$ARCH" = "x86_64" ]; then 21 | ARCH_ALT=amd64 22 | elif [ "$ARCH" = "aarch64" ]; then 23 | ARCH_ALT=arm64 24 | else 25 | printf "Unsupported CPU architecture: ${ARCH}" 26 | exit 1 27 | fi 28 | 29 | # Download & decompress the Linux root file system if not already installed. 30 | if [ ! -e "$ROOTFS_DIR/.installed" ]; then 31 | echo "#######################################################################################" 32 | echo "#" 33 | echo "# > ApexCloud VPS <" 34 | echo "#" 35 | echo "# Copyright (C) 2022 - 2023, Apex.Cloud" 36 | echo "#" 37 | echo "#" 38 | echo "#######################################################################################" 39 | 40 | echo "" 41 | echo "* [0] Debian" 42 | echo "* [1] Ubuntu" 43 | echo "* [2] Alpine" 44 | 45 | read -p "Enter OS (0-2): " input 46 | 47 | case $input in 48 | 49 | 0) 50 | wget --no-hsts -O /tmp/rootfs.tar.xz \ 51 | "https://github.com/termux/proot-distro/releases/download/v3.10.0/debian-${ARCH}-pd-v3.10.0.tar.xz" 52 | apt download xz-utils 53 | deb_file=$(find "$ROOTFS_DIR" -name "*.deb" -type f) 54 | dpkg -x "$deb_file" ~/.local/ 55 | rm "$deb_file" 56 | tar -xJf /tmp/rootfs.tar.xz -C "$ROOTFS_DIR" 57 | mkdir $ROOTFS_DIR/home/container/ -p 58 | 59 | wget -O $ROOTFS_DIR/home/container/installer.sh \ 60 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/private.sh" 61 | wget -O $ROOTFS_DIR/home/container/.bashrc \ 62 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/.bashrc" 63 | wget -O $ROOTFS_DIR/home/container/style.sh \ 64 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/style.sh" 65 | ;; 66 | 67 | 1) 68 | wget --no-hsts -O /tmp/rootfs.tar.gz \ 69 | "http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.4-base-${ARCH_ALT}.tar.gz" 70 | tar -xf /tmp/rootfs.tar.gz -C "$ROOTFS_DIR" 71 | mkdir $ROOTFS_DIR/home/container/ -p 72 | 73 | wget -O $ROOTFS_DIR/home/container/installer.sh \ 74 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/private.sh" 75 | wget -O $ROOTFS_DIR/home/container/.bashrc \ 76 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/.bashrc" 77 | wget -O $ROOTFS_DIR/home/container/style.sh \ 78 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/style.sh" 79 | ;; 80 | 81 | 2) 82 | wget --no-hsts -O /tmp/rootfs.tar.gz \ 83 | "https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/x86_64/alpine-minirootfs-3.18.3-${ARCH}.tar.gz" 84 | tar -xf /tmp/rootfs.tar.gz -C "$ROOTFS_DIR" 85 | mkdir $ROOTFS_DIR/etc/profile.d/ -p 86 | 87 | wget -O $ROOTFS_DIR/home/container/installer.sh \ 88 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/private.sh" 89 | wget -O $ROOTFS_DIR/home/container/.bashrc \ 90 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/.bashrc" 91 | wget -O $ROOTFS_DIR/home/container/style.sh \ 92 | "https://github.com/abdalla435/VPS-Pterodactyl-EGG/raw/main/style.sh" 93 | ;; 94 | 95 | *) 96 | echo "Invalid selection. Exiting." 97 | exit 1 98 | ;; 99 | esac 100 | fi 101 | 102 | ################################ 103 | # Package Installation & Setup # 104 | ################################# 105 | 106 | # Download static APK-Tools temporarily because minirootfs does not come with APK pre-installed. 107 | if [ ! -e "$ROOTFS_DIR/.installed" ]; then 108 | # Download the packages from their sources 109 | mkdir -p "$ROOTFS_DIR/usr/local/bin" 110 | wget --no-hsts -O "$ROOTFS_DIR/usr/local/bin/proot" "https://github.com/proot-me/proot/releases/download/v${PROOT_VERSION}/proot-v${PROOT_VERSION}-${ARCH}-static" 111 | # Make PRoot executable. 112 | chmod 755 "$ROOTFS_DIR/usr/local/bin/proot" 113 | fi 114 | 115 | # Clean-up after installation complete & finish up. 116 | if [ ! -e "$ROOTFS_DIR/.installed" ]; then 117 | # Add DNS Resolver nameservers to resolv.conf. 118 | printf "nameserver 1.1.1.1\nnameserver 1.0.0.1" > "${ROOTFS_DIR}/etc/resolv.conf" 119 | # Wipe the files we downloaded into /tmp previously. 120 | rm -rf /tmp/rootfs.tar.xz /tmp/sbin 121 | # Create .installed to later check whether Alpine is installed. 122 | touch "$ROOTFS_DIR/.installed" 123 | fi 124 | 125 | # Print some useful information to the terminal before entering PRoot. 126 | # This is to introduce the user with the various Alpine Linux commands. 127 | 128 | 129 | ########################### 130 | # Start PRoot environment # 131 | ########################### 132 | 133 | # This command starts PRoot and binds several important directories 134 | # from the host file system to our special root file system. 135 | "$ROOTFS_DIR/usr/local/bin/proot" \ 136 | --rootfs="${ROOTFS_DIR}" \ 137 | -0 -w "/root" -b /dev -b /sys -b /proc -b /etc/resolv.conf --kill-on-exit \ 138 | /bin/bash 139 | 140 | --------------------------------------------------------------------------------