Need help with debian-server-tools?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

szepeviktor
338 Stars 98 Forks MIT License 976 Commits 1 Opened issues

Description

Tools and living docs 🧬 for Debian-based servers and Web Applications

Services available

!
?

Need anything else?

Contributors list

# 9,806
PHP
WordPre...
Laravel
php7
960 commits
# 301,486
C++
sparql
rdf
C
1 commit
# 735,205
Shell
C
C++
debian
1 commit
# 488,312
openssh
C
C++
debian
1 commit

Debian server tools

You find all my knowledge on GitHub in form of Bash and PHP scripts and Markdown documents.
Updated daily as I work.

Featured documents :star:

  1. Too much of a website
  2. Web application development
  3. Setting up your infrastructure and your application
  4. All things WordPress
  5. WordPress Security
  6. Running Laravel
  7. Running Drupal
  8. Monitoring on paranoid level
  9. Continuous Integration and Continuous Delivery
  10. Debian setup on UpCloud server including Resize root filesystem during boot
  11. Live list of Hostile networks
  12. Bulk mail sending

Magyar nyelvű kiemelt dokumentumok :hungary:

  1. Csapatának tagja szeretnék lenni
  2. Ismerkedés Új ügyfelekkel
  3. Teljesítménycentrikus webhely tervezése
  4. Honlap jogi dolgai + GDPR
  5. Kézi Tesztelési Kézikönyv
  6. KĂ©pek Ă©letciklusa
  7. Magyar email szolgáltatók
  8. (direct) / (none)
    Google Analytics-ben
  9. Google Analytics URL készítő

Superior cloud hosting

Install Debian on UpCloud

How UpCloud was chosen? Read https://github.com/szepeviktor/wordpress-speedtest/blob/master/README.md#how-to-choose-vps-provider

Ergonomics

How to Set Up Your Desk

Model of how systems work

Richard Cook at Velocity NY 2013

Directories

  • /debian-setup - Debian installation scripts including debian-setup.sh
  • /backup - Tools related to archiving
  • /image - Tools related to image optimization
  • /input - Tools related to the terminal
  • /mail - Tools related to email account management
  • /monitoring - Tools related to server monitoring, alert and statistics emails
  • /mysql - Tools related to database management
  • /package - Tools related to Debian packages and general packaging
  • /security - Security and SSL certificate related tools
  • /tools - Various small tools
  • /virtualization - Docker containers
  • /webserver - Tools related to building webservers

Debian install with UTC as timezone

Select Expert install.

Script development

  • Check shell scripts: http://www.shellcheck.net/
  • Code styling: https://github.com/git/git/blob/master/Documentation/CodingGuidelines
  • Bashism: https://wiki.ubuntu.com/DashAsBinSh
    checkbashisms -f bash-script.sh

Install your own SSH key

S="${HOME}/.ssh";mkdir --mode 0700 "$S";editor "${S}/authorized_keys"
ssh-keygen -v -l -f "${S}/authorized_keys"

authorized_keys
parameters:
# restrict == no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty,no-user-rc
restrict,command="echo 'Please login as the user \"debian\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAA...

Install a user's SSH key

u bash -c 'S="${HOME}/.ssh";mkdir --mode 0700 "$S";editor "${S}/authorized_keys"'
U="$(stat -c %U .)";S="$(getent passwd $U|cut -d: -f6)/.ssh";mkdir -m 0700 "$S";editor "${S}/authorized_keys";chown -R $U:$U "$S"

Retrieve public key from private key

ssh-keygen -y -f ~/.ssh/id_ecdsa

Display SSH access details

printf 'host: %s\nport: %s\nuser: %s\n' "$(hostname)" "$(/usr/sbin/sshd -T -C user=root|sed -ne 's/^port \([0-9]\+\)$/\1/p')" "$(ls -tr /home/|tail -n1)"

List sshd host keys

ls /etc/ssh/ssh_host_*_key.pub | xargs -n 1 ssh-keygen -l -f

Record terminal session

script --timing=NAME.time --append NAME.script
scriptreplay --maxdelay 1 NAME.time NAME.script

Fast and safe transit of scripts (or any data) via copy&paste

Use magic-wormhole

Pack
cat $SCRIPT|xz -9|base64 -w $((COLUMNS-1))
# alias: cat $SCRIPT | transit
Unpack
cat $PASTED_FILE|base64 -d|xz -d > $SCRIPT
# alias: cat $PASTED_FILE | transit-receive

Moving away git-dir

git init --separate-git-dir=/home/user/gitdir

Produces:

/home/user/work-dir/.git:

gitdir: /home/user/git

/home/user/gitdir/config:

worktree = /home/user/work-dir

Rescan the SCSI Bus to Add SCSI Devices

echo "- - -" > /sys/class/scsi_host/host0/scan

Flush Google public DNS cache

https://google-public-dns.appspot.com/cache

Free CDN for GitHub

https://staticaly.com/

https://cdn.staticaly.com/gh/USER/REPO/TAG/FILE

Whois servers

  • whois -h whois.iana.org $TLD
    https://www.iana.org/domains/root/db
  • dig _nicname._tcp.$TLD SRV
    https://tools.ietf.org/html/draft-sanz-whois-srv-01
  • https://github.com/rfc1036/whois/blob/next/tldservlist

AS information

whois -h whois.radb.net -- "-i origin AS202053"

ROA validation, RPKI status

whois -h whois.bgpmon.net 94.237.81.0

UNICODE owl domain name

﴾͡๏̯͡๏﴿.tk

Crontab format

.---------------- minute (0 - 59)
| .-------------- hour (0 - 23)
| |  .----------- day of month (1 - 31)
| |  | .--------- month (1 - 12)
| |  | | .------- day of week (0 - 6)
| |  | | |
* *  * * *  USER  COMMAND
crontab -e -u USER
.---------------- minute (0 - 59)
| .-------------- hour (0 - 23)
| |  .----------- day of month (1 - 31)
| |  | .--------- month (1 - 12)
| |  | | .------- day of week (0 - 6)
| |  | | |
* *  * * *  COMMAND

Cron scheduling with timezone

# Well before the actual execution time!
00 06  * * *  echo "/bin/ls -l" | at "$(date --date='TZ="Europe/Budapest" 10:30' "+\%H:\%M")" 2>/dev/null

Looking for a dedicated team member running your application or website?

Contact me: [email protected]

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.