mirror of
https://github.com/pockethost/pockethost.git
synced 2025-03-30 15:08:30 +00:00
67 lines
2.0 KiB
Bash
67 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
# Update the package list and upgrade all packages
|
|
apt-get update -y
|
|
apt-get upgrade -y
|
|
|
|
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt-get remove $pkg; done
|
|
|
|
# Add Docker's official GPG key:
|
|
apt-get update
|
|
apt-get install ca-certificates curl
|
|
install -m 0755 -d /etc/apt/keyrings
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
chmod a+r /etc/apt/keyrings/docker.asc
|
|
|
|
# Add the repository to Apt sources:
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
|
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
|
tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
apt-get update
|
|
|
|
apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
certbot certonly \
|
|
--dns-cloudflare \
|
|
--dns-cloudflare-credentials ~/certbot-creds.ini \
|
|
-d *.sfo-2.pockethost.io \
|
|
--agree-tos \
|
|
--no-eff-email \
|
|
--email xxx@xxxx.com
|
|
|
|
|
|
# Create user pockethost with no password
|
|
adduser --disabled-password --gecos "" pockethost
|
|
|
|
# Grant passwordless sudo privileges to pockethost
|
|
echo "pockethost ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/pockethost
|
|
|
|
# Update configurations
|
|
ufw allow OpenSSH
|
|
ufw allow https
|
|
ufw allow http
|
|
ufw allow ftp
|
|
echo "y" | ufw enable
|
|
|
|
# Copy root's authorized_keys to pockethost
|
|
mkdir -p /home/pockethost/.ssh
|
|
cp /root/.ssh/authorized_keys /home/pockethost/.ssh/authorized_keys
|
|
chown -R pockethost:pockethost /home/pockethost/.ssh
|
|
chmod 700 /home/pockethost/.ssh
|
|
chmod 600 /home/pockethost/.ssh/authorized_keys
|
|
|
|
# Add GitHub to known hosts to prevent interactive prompt
|
|
su - pockethost -c "ssh-keyscan github.com >> ~/.ssh/known_hosts"
|
|
|
|
|
|
#####
|
|
# As pockethost user
|
|
#####
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
git clone git@github.com:pockethost/pockethost.git
|
|
cd pockethost
|
|
nvm install
|
|
npm i -g pnpm pm2
|
|
pnpm i |