When I start a new project, I carry out the same basic steps. In most cases it starts with a server install of Ubuntu. Here are the main snippets of what I carry out on a fresh install of Ubuntu 18.04 Server:
First commands after installing, and logged in to the server as the user account:
ip addr command gets an IP address, e.g. 192.168.2.26, so we can replace with the ip address in the code below with what it returns.
My minimal emacs config file (in
~/.emacs.d/init.el) is as follows :
 Source on github
Uncomplicated Firewall: ufw
/var/www folder for future applications:
The rest of the setup happens on the local workstation (in my case it’s either Mac or Linux).
Add the server IP address and hostname to
/etc/hosts on my local workstation:
Make ssh a little quicker with
Add ssh key-based authentication:
Bash alias for sshfs on the workstation (
.bash_profile on MacOS,
.bashrc on Ubuntu workstations):
Verify nginx is accessible from the workstation using curl:
At this point the server is installed with its basic packages and configuration and I can edit files from my workstation. From here I can install an application’s stack-specific packages on the server.
Feel free to get in touch with your suggestions. I look to improve and refine this. Or let me know if you adopt what I have or made use of it in some way.
(Edited from a previous version on 2019-01-14)