My standard configuration files for Debian and basic services
Go to file
Asif Bacchus d867177614 Remove suspend option, enabled by default 2024-01-07 00:03:20 -07:00
config Remove suspend option, enabled by default 2024-01-07 00:03:20 -07:00
.gitattributes updated main readme and added gitattributes 2019-03-06 18:27:38 -07:00 Updated blog post link in readme 2019-03-06 22:19:32 -07:00 removed github as listed official address for script 2019-01-09 05:56:22 -07:00

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!