Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Handy things for setting up a new Ubuntu server

This is a set of scripts to help secure and enhance your experience on Ubuntu Server.

The main script will cover:

  • Timezone and Locale
  • Update of packages
  • Optional extra useful tools install
    • fail2ban - intrusion protection for SSH (and possibly other services with configuration)
    • ufw - simple command line firewall
    • curl - command line URL client
    • bash-completion - command line auto completion (TAB to cycle)
    • htop - TUI process/task manager
    • jq - parse and query JSON data
    • bc - cli calculator
  • Hostname / IPV6 / UFW configuration
  • SSH security
    • Setup non-root superuser with SSH key based login
    • Disable remote root login and password (text) logins


On a fresh install of Ubuntu 16 or 18 follow these steps to get started and the script will guide you through the rest.

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install git
cd ~
git clone
cd freshubuntu
sudo ./freshubuntu

All contents / Other optional tools

Most scripts have documentation within them so please read through them, learn and suggest improvements!

Script Name Function
freshubuntu Run this first as root for initial setup of your server for basic security needs
.screenrc Make the screen program fancier - Copy to your home directory
01-serverid Add to /etc/update-motd.d to display some info about your server on login
fail2banstatusall Script to show status of all fail2ban jails
backup Encrypted incremental backups using duplicity, some config required, see script comments. Add to daily cron and set it and forget it
letsencryptcertbot Setup free SSL/TLS certificates for websites
netdata Lightweight dashboard for monitoring server resources see readme


Handy things for setting up a new Ubuntu 16.04 - 20.04 server





No releases published


No packages published