Skip to content

Terraform and Ansible templates to roll-out a mid-size Nextcloud deployment in AWS

License

Notifications You must be signed in to change notification settings

qugu/nextcloud-aws-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nextcloud-aws-deploy

Terraform and Ansible configurations to roll-out a mid-size Nextcloud deployment in AWS (https://docs.nextcloud.com/server/11/admin_manual/installation/deployment_recommendations.html#mid-sized-enterprises)

This is a personal assessment project. Some hard requirements and stuff to think about:

  • Multiple environments (test/dev/prod)
  • Must support EC2, RDS, ELB, Security Groups, S3, CloudWatch Alerts
  • Modular structure for everything possible
  • File/directory layout best practices
  • Secrets management made wisely
  • Add/remove components 1-by-1
  • Storing state remotely (remote state)
  • Must support terraform outputs

Some Ansible requirements:

  • AWS as Ansible inventory
  • Conflict resolution? Application deployment?
  • How to test code? How to rollback?
  • File/directory layout best practices

This project is under development. Alpha stage, don't run it, bro!

In the end we should get a completely working NextCloud deployment.

Usage:

  1. Create a keypair with ssh-keygen on Linux.
  2. Edit init/backend.tf and comment out terraform {} block. Rename bucket in bucket = to a unique value.
  3. Run terraform specifying the desired keypair name in AWS and the path to your new public key. In example: $ terraform plan -var 'key_name=terraform-nextcloud-keypair' -var 'public_key_path=~/.ssh/terraform-nextcloud-rsa.pub' -out "nx.plan" $ terraform apply "nx-plan.plan"
  4. Uncomment change done in step 2 to enable a remote backend in AWS S3.

About

Terraform and Ansible templates to roll-out a mid-size Nextcloud deployment in AWS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages