aboutsummaryrefslogtreecommitdiff
path: root/provision.sh (follow)
Commit message (Expand)AuthorAgeFilesLines
* Remove git rev-parse from .envrcEuAndreh2019-05-281-1/+1
* Add backup routing before possibly tearing down machine•••Create a new backup entry before running =terraform apply=, which may (or may not) destroy the current machine. This shouldn't be an issue for the backup itself, since all of the data should be stored in a separate Block Storage Volume, but we can take advantage of the sevices already needing to be taken down in order to perform a full backup of the data. EuAndreh2019-05-281-2/+5
* WIP: take a backup during deployment•••Before possibly tearing down the machine, while all services are stopped (after the =docker-compose down= command), create a new backup with the current data. The backup tag should include the commit SHA of the deployment. EuAndreh2019-05-271-2/+3
* Run terraform init before running terraform applyEuAndreh2019-05-261-0/+1
* ci dbgEuAndreh2019-05-261-0/+1
* Fix missing argument to sshEuAndreh2019-05-261-1/+1
* Specify shell type to ShellCheck in nix-shell shebang filesEuAndreh2019-05-261-0/+1
* Use more robust Bash cd approachEuAndreh2019-05-261-1/+1
* Use nix-shell shebang to run CI scriptsEuAndreh2019-05-261-1/+2
* Prepare builds.sr.ht CI environment before running build tasks•••Make content of .envrc available to subsequent build jobs. EuAndreh2019-05-261-5/+0
* Unlock with git-crypt in setup phaseEuAndreh2019-05-261-8/+2
* Disable shellcheck 2139 offenseEuAndreh2019-05-261-0/+1
* Remove extra newline at "Done.\n" messagesEuAndreh2019-05-261-5/+5
* Fix unexpected shell scapingEuAndreh2019-05-261-1/+1
* Automate provisioning and deployment of VPS•••In order to perform that I had to remove Terraform's =.tfstate= files from the repository. Terraform does support "backends" for storing the state files, but I settled for storing it on a separate repo (vps-state). For now it solves the state management problem: - it has history of states; - all state files are GPG encrypted; - there's no coordination however, but only the CI should perform a deploy in order to avoid race conditions. I had to add GPG and SSH keys to sr.ht to achieve that: - SSH public key to my profile to authorize it to push to vps-state repo; - SSH private key to the secret builds.sr.ht environment to enable push to the repository from the pipeline; - GPG public key to git-crypt to make it possible for the pipeline to unlock the encrypted content; - GPG private key to the secret builds.sr.ht environment to enable decrypting git-crypt content from the pipeline. In order to avoid divergent environment from local and CI, the ./provision.sh script is ran through nix-shell. EuAndreh2019-05-261-0/+36
* Remove provisioning from TerraformEuAndreh2019-05-251-24/+0
* Use apt_wait before interacting with apt-getEuAndreh2019-05-251-3/+20
* Move provisioning code into provision.shEuAndreh2019-05-251-0/+7