diff --git a/deployment/config.yml b/deployment/config.yml new file mode 100644 index 0000000..246d351 --- /dev/null +++ b/deployment/config.yml @@ -0,0 +1,6 @@ +name: 'exhangerates' +domain: 'exhangeratesapi.io' + +project_path: '/srv/exchangerates/' + +postgres_database: exchangerates diff --git a/deployment/modules/caddy/setup.sh b/deployment/modules/caddy/setup.sh new file mode 100644 index 0000000..e69de29 diff --git a/deployment/modules/falcon/setup.sh b/deployment/modules/falcon/setup.sh new file mode 100644 index 0000000..e69de29 diff --git a/deployment/modules/monitoring/setup.sh b/deployment/modules/monitoring/setup.sh new file mode 100644 index 0000000..ef4292e --- /dev/null +++ b/deployment/modules/monitoring/setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -xeu + +[[ -f setup/config-variables ]] && source setup/config-variables + +curl -sSL https://agent.digitalocean.com/install.sh | sh \ No newline at end of file diff --git a/deployment/modules/postgres/setup.sh b/deployment/modules/postgres/setup.sh new file mode 100644 index 0000000..e69de29 diff --git a/deployment/modules/system/files/10periodic b/deployment/modules/system/files/10periodic new file mode 100644 index 0000000..39230c2 --- /dev/null +++ b/deployment/modules/system/files/10periodic @@ -0,0 +1,4 @@ +APT::Periodic::Update-Package-Lists "1"; +APT::Periodic::Download-Upgradeable-Packages "0"; +APT::Periodic::AutocleanInterval "7"; +APT::Periodic::Unattended-Upgrade "1"; \ No newline at end of file diff --git a/deployment/modules/system/setup.sh b/deployment/modules/system/setup.sh new file mode 100644 index 0000000..dbcf4d6 --- /dev/null +++ b/deployment/modules/system/setup.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +set -xeu + +[[ -f setup/config-variables ]] && source setup/config-variables + +sudo apt-get update && sudo apt-get install -y \ + acl \ + unattended-upgrades \ + policykit-1 \ + ntp \ + wget \ + curl \ + git \ + unzip \ + htop \ + tmux \ + logrotate \ + fail2ban + +# Network Time Protocol +sudo service ntp start + +# Unattended upgrades +sudo cp setup/modules/system/files/10periodic /etc/apt/apt.conf.d/10periodic +sudo chown root $_ + +sudo service unattended-upgrades restart + +# Users + +# SSH: disable root login & password login +sudo sed -i -e "s/PermitRootLogin.*/PermitRootLogin no/" /etc/ssh/sshd_config +sudo sed -i -e "s/PasswordAuthentication.*/PasswordAuthentication no/" /etc/ssh/sshd_config + +sudo systemctl reload sshd diff --git a/deployment/playbook.yml b/deployment/playbook.yml new file mode 100644 index 0000000..73dcb34 --- /dev/null +++ b/deployment/playbook.yml @@ -0,0 +1,8 @@ +ssh_url: root@138.68.127.248 +ssh_port: 22 + +modules: + - monitoring + - system + # - caddy + # - falcon \ No newline at end of file diff --git a/deployment/tmp/setup/config-variables b/deployment/tmp/setup/config-variables new file mode 100644 index 0000000..f1a2001 --- /dev/null +++ b/deployment/tmp/setup/config-variables @@ -0,0 +1,4 @@ +cfg_name='exhangerates' +cfg_domain='exhangeratesapi.io' +cfg_project_path='/srv/exchangerates/' +cfg_postgres_database='exchangerates' diff --git a/deployment/tmp/setup/modules/system/files/10periodic b/deployment/tmp/setup/modules/system/files/10periodic new file mode 100644 index 0000000..39230c2 --- /dev/null +++ b/deployment/tmp/setup/modules/system/files/10periodic @@ -0,0 +1,4 @@ +APT::Periodic::Update-Package-Lists "1"; +APT::Periodic::Download-Upgradeable-Packages "0"; +APT::Periodic::AutocleanInterval "7"; +APT::Periodic::Unattended-Upgrade "1"; \ No newline at end of file