useradd -m <name>
passwd <name>
usermod -aG wheel <name>
sudo dnf install gitcurl -o /usr/local/bin/nvim -LO https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
chmod u+x /usr/local/bin/nvim# Ensure Docker is not currently installed
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
# run and enable docker
sudo systemctl enable docker
sudo systemctl start docker
# docker rootless mode: https://docs.docker.com/engine/security/rootless/# https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#installing-prebuilt-rhel-centos-oracle-linux-almalinux-rocky-linux-packages
sudo systemctl enable nginx
sudo systemctl start nginx
# fix bad gateway
sudo setsebool -P httpd_can_network_connect 1
# Managing multiple server
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabledsudo dnf install certbot python3-certbot-nginx python3-certbot-dns-cloudflare
# sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
-d example.com
# sudo certbot --nginx -d your_domain -d www.your_domain
# Auto renewal
sudo crontab -e
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --quiet