Self-Hosting

220 commands

sudo apt install nginxsudo systemctl start nginxsudo systemctl enable nginxsudo systemctl reload nginxsudo systemctl restart nginxsudo nginx -tsudo nginx -Tnginx -vsudo nano /etc/nginx/nginx.confsudo nano /etc/nginx/sites-available/myappsudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/sudo rm /etc/nginx/sites-enabled/myappsudo tail -f /var/log/nginx/access.logsudo tail -f /var/log/nginx/error.logsudo cat /etc/nginx/sites-available/defaultsudo gzip -t /var/log/nginx/access.log.1.gzsudo apt install caddycaddy versioncaddy runcaddy startcaddy stopcaddy reloadcaddy validate --config /etc/caddy/Caddyfilecaddy fmt --overwrite /etc/caddy/Caddyfilesudo nano /etc/caddy/Caddyfilejournalctl -u caddy -fcaddy adapt --config /etc/caddy/Caddyfiledocker run -d --name traefik -p 80:80 -p 443:443 -p 8080:8080 traefik:v3.0traefik versiontraefik healthcheckdocker logs -f traefikcurl http://localhost:8080/api/rawdatacurl http://localhost:8080/pingsudo apt install certbot python3-certbot-nginxsudo certbot --nginx -d example.com -d www.example.comsudo certbot certonly --standalone -d example.comsudo certbot renewsudo certbot renew --dry-runsudo certbot certificatessudo certbot delete --cert-name example.comsudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pemopenssl x509 -enddate -noout -in /etc/letsencrypt/live/example.com/cert.pemopenssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -datessudo ls -la /etc/letsencrypt/live/sudo ufw statussudo ufw status verbosesudo ufw enablesudo ufw disablesudo ufw allow sshsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw allow 'Nginx Full'sudo ufw deny 3306sudo ufw allow from 192.168.1.0/24sudo ufw allow from 1.2.3.4 to any port 22sudo ufw delete allow 80/tcpsudo ufw resetsudo ufw logging onsudo ufw app listsudo ufw limit sshsudo iptables -L -n -vsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables-save > /etc/iptables/rules.v4sudo iptables-restore < /etc/iptables/rules.v4sudo nano /etc/systemd/system/myapp.servicesudo systemctl daemon-reloadsudo systemctl enable --now myappsudo systemctl status myappsudo systemctl stop myappsudo systemctl disable myappsudo journalctl -u myapp -n 100 --no-pagersudo journalctl -u myapp -fsudo journalctl -u myapp --since '1 hour ago'systemctl list-units --type=service --state=runningsystemctl list-units --type=service --state=failedsudo systemctl edit myappdocker compose up -d --pull alwaysdocker compose logs -f servicenamedocker compose restart servicenamedocker compose exec servicename bashdocker compose build --no-cachedocker compose scale servicename=3docker volume create portainer_datadocker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latestdocker exec -it portainer /bin/shdocker pull portainer/portainer-ce:latestcurl -I http://localhost:3000curl -sv https://example.com 2>&1 | head -30curl -H 'Host: example.com' http://localhostss -tlnpss -tlnp | grep :80netstat -tlnplsof -i :443dig example.com Adig example.com AAAAdig example.com TXTdig example.com NSdig +trace example.comcat /etc/hostssudo nano /etc/hostscat /etc/resolv.confresolvectl statussudo apt install wireguardwg genkey | tee privatekey | wg pubkey > publickeysudo nano /etc/wireguard/wg0.confsudo wg-quick up wg0sudo wg-quick down wg0sudo systemctl enable --now wg-quick@wg0sudo wg showsudo wg showconf wg0cloudflared tunnel logincloudflared tunnel create mytunnelcloudflared tunnel route dns mytunnel app.example.comcloudflared tunnel run mytunnelcloudflared tunnel listcloudflared tunnel info mytunnelcloudflared tunnel delete mytunnelsudo cloudflared service installopenssl genrsa -out server.key 4096openssl req -new -key server.key -out server.csropenssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfsigned.key -out selfsigned.crtopenssl verify -CAfile ca.crt server.crtopenssl x509 -in cert.pem -text -nooutopenssl pkcs12 -export -out bundle.p12 -inkey server.key -in server.crtsudo apt install postgresqlsudo systemctl start postgresqlsudo -u postgres psqlsudo -u postgres createdb myapp_dbsudo -u postgres createuser myapp_userpg_dump -U myapp_user myapp_db > backup.sqlpg_dump -U myapp_user -Fc myapp_db > backup.dumppsql -U myapp_user -d myapp_db < backup.sqlpg_restore -U myapp_user -d myapp_db backup.dumpsudo apt install mysql-serversudo mysql_secure_installationmysql -u root -pmysqldump -u root -p myapp_db > backup.sqlmysql -u root -p myapp_db < backup.sqlsqlite3 myapp.db .dump > backup.sqlsqlite3 myapp.db < backup.sqldocker run -d -p 9090:9090 --name prometheus -v prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheusdocker run -d -p 3000:3000 --name grafana grafana/grafanadocker run -d -p 9100:9100 --name node-exporter -v /proc:/host/proc -v /sys:/host/sys prom/node-exportercurl http://localhost:9090/api/v1/query?query=upiostat -x 1 5du -sh /var/lib/dockerwatch -n 5 'df -h'dmesg | tail -20rsync -avz /data/ user@remote:/backup/data/rsync -avz --delete /data/ user@remote:/backup/data/rsync -avz --exclude='node_modules' /app/ user@remote:/backup/app/tar -czf backup-$(date +%Y%m%d).tar.gz /datatar -xzf backup.tar.gz -C /restore/0 2 * * * /usr/local/bin/backup.shsudo apt install borgbackupborg init --encryption=repokey user@remote:/backup/borg-repoborg create user@remote:/backup/borg-repo::'{hostname}-{now}' /databorg list user@remote:/backup/borg-repoborg extract user@remote:/backup/borg-repo::archive-nameborg prune --keep-daily=7 --keep-weekly=4 user@remote:/backup/borg-reposudo apt install fail2bansudo systemctl start fail2bansudo fail2ban-client statussudo fail2ban-client status sshdsudo fail2ban-client set sshd unbanip 1.2.3.4sudo nano /etc/fail2ban/jail.localsudo nano /etc/ssh/sshd_configsudo sshd -tsudo systemctl restart sshdsudo passwd -l rootsudo apt-get update && sudo apt-get upgrade -ysudo apt install unattended-upgradessudo dpkg-reconfigure unattended-upgradessudo lynis audit systemsudo chkrootkitsudo rkhunter --checksudo chmod 600 ~/.ssh/authorized_keyssudo chown root:root /etc/ssh/sshd_config && sudo chmod 600 /etc/ssh/sshd_configcp .env.example .envcat .env | grep -v '^#' | grep -v '^$'sudo nano /etc/environmentdocker secret create mysecret secret.txtdocker pull ghcr.io/immich-app/immich-server:releasedocker pull lscr.io/linuxserver/nextcloud:latestdocker pull vaultwarden/server:latestdocker pull ghcr.io/paperless-ngx/paperless-ngx:latestdocker pull gitea/gitea:latestdocker pull jellyfin/jellyfin:latestdocker pull plausible/analytics:latestdocker pull n8nio/n8n:latestdocker pull homeassistant/home-assistant:stabledocker pull freshrss/freshrssdocker network create app-networkdocker network inspect app-networkdocker volume inspect myapp_datadocker volume rm myapp_datassh-keygen -t ed25519 -C 'server@example.com'ssh-copy-id user@server-ipssh -i ~/.ssh/id_ed25519 user@server-ipscp -r ./app user@server-ip:/srv/appsudo hostnamectl set-hostname myservertimedatectl set-timezone America/Chicagotimedatectl statussudo adduser deploysudo usermod -aG docker deploysudo usermod -aG sudo deploysudo visudosudo swapoff -a && sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfilecat /proc/meminfo | grep -E 'MemTotal|MemAvailable|SwapTotal'curl -o /dev/null -s -w '%{http_code}' http://localhost:3000/healthcurl -sf http://localhost:3000/health || echo 'UNHEALTHY'sudo journalctl -xesudo dmesg -T | grep -i 'oom\|kill'sudo lsof -i -n -P | grep LISTENtraceroute example.commtr --report example.comping -c 4 8.8.8.8curl ifconfig.meip addr showip route show
Search all 7,657 commands instead.