My standard configuration files for Debian and basic services
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Asif Bacchus 35d68ffa9a update configuration, remove deprecated options 2 years ago
config update configuration, remove deprecated options 2 years ago
.gitattributes updated main readme and added gitattributes 3 years ago Updated blog post link in readme 3 years ago removed github as listed official address for script 4 years ago

My standard configuration files for Debian and basic services

This is a collection of several configuration files that I use when setting up a BASIC bare-bones Debian system. Quite often, such a system will become something else like a webserver, git-server, cloud platform, programming workstation, etc. Therefore, only a few core files applicable to nearly every conceivable installation are included here.

This archive and included script are meant to supplement my article on setting up a Debian base-system found at my blog: My Techie-Thoughts

Included files

Please refer to the in each subdirectory for a list and description of each included file.

Presently, configurations are included for:

  • BASH profiles (including aliases and custom prompt)
  • SSHd (OpenSSH server)
  • timesyncd (systemd-timesyncd configuration)

The script file (

The included script file copies all the files in this archive to the proper locations on a default Debian Stretch system. It makes backups of your existing files in-place with the extension .original. This simply saves you time and possible errors copying the files manually. The structure of this archive exactly mirrors a default Debian installation, so you can use that as a guide if you choose not to use the script.

Running the script

Please note you must either make the script executable or call it explicitly via BASH. In the latter case, you'd run the script as follows:

/bin/bash ./

If you want to make the script executable:

chmod +x

Due to location of the files being replaced, you MUST run this script as ROOT (the script will exit if you run as a different user) or run it via sudo like this (assuming you made it executable):

sudo ./

Passing a custom path to the script

If you want to test out the script before having it update your actual system configuration, you can supply an alternate destination path. This is referred to as a 'Base Path' by the script and it will show a warning if this option is used. Please note, your 'Base Path' MUST have the same directory structure as an actual system. The expected directories must already exist or the script will just throw errors and not actually copy files.

Let's assume you wanted to test the script and copy files to /testdir. You would do the following to prepare the directory with the expected structure:

mkdir -p /testdir/root
mkdir -p /testdir/etc/{skel,ssh,systemd}

Then you could invoke the script as follows (assuming you made it executable as described above):

./ /testdir

The script would then copy all files into /testdir while mirroring the structure of a live system beneath that. Again, this is useful only for testing and will NOT update your actual system!

Final thoughts

Hopefully this saves you some time and helps you standardize your new system setups with a few useful defaults. As always, if you have suggestions or want to leave feedback for me, please do so on my blog post related to this script!