From bf79df4ab06f718c5ffac662c4100cf1ac3577c3 Mon Sep 17 00:00:00 2001 From: acholyn Date: Mon, 8 Apr 2024 11:55:57 +0100 Subject: [PATCH 1/8] updating and streamlining docs --- .ebextensions/db-migrate.config | 11 --- README.md | 4 +- docs/AWScurrentSetup.md | 64 ----------------- docs/awsSSL.md | 2 +- docs/baseAWSSetup.md | 84 +++++++++++++++++++++++ docs/{fullSetup.md => howtoSetupBase.md} | 65 ++++++++++++------ docs/imgs/VPCresource_map.png | Bin 0 -> 178473 bytes 7 files changed, 130 insertions(+), 100 deletions(-) delete mode 100644 .ebextensions/db-migrate.config delete mode 100644 docs/AWScurrentSetup.md create mode 100644 docs/baseAWSSetup.md rename docs/{fullSetup.md => howtoSetupBase.md} (59%) create mode 100644 docs/imgs/VPCresource_map.png diff --git a/.ebextensions/db-migrate.config b/.ebextensions/db-migrate.config deleted file mode 100644 index 8e47b8c8..00000000 --- a/.ebextensions/db-migrate.config +++ /dev/null @@ -1,11 +0,0 @@ -container_commands: - 01_migrate_and_collectstatic: - test: "[ -f /var/app/current/manage.py ]" - command: "python manage.py migrate && python manage.py collectstatic --no-input && echo db-migrate has run" - leader_only: true - ignoreErrors: true -option_settings: - aws:elasticbeanstalk:application:environment: - DJANGO_SETTINGS_MODULE: museum_of_dreams_project.settings.aws - aws:elasticbeanstalk:environment:proxy:staticfiles: - /static: static diff --git a/README.md b/README.md index bcc70f9a..ab637f3e 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,8 @@ python manage.py test mod_app/tests ### See these other files for recreating the setup etc. -#### [Setting up from scratch](docs/fullSetup.md) +#### [Setting up from scratch](docs/howtoSetupBase.md) -#### [Current AWS Settings](docs/AWScurrentSetup.md) +#### [Current AWS Settings](docs/baseAWSSetup.md) #### [AWS chatbot](docs/AWSchatbot.md) diff --git a/docs/AWScurrentSetup.md b/docs/AWScurrentSetup.md deleted file mode 100644 index f52ff9cc..00000000 --- a/docs/AWScurrentSetup.md +++ /dev/null @@ -1,64 +0,0 @@ -# Current Setup - -Currently the AWS system is set up such that: - -## VPC - -There is one VPC called `MuseumofDreams` -This has 6 subnets across 3 availability zones (eu-west-2 a, b & c) - -`eu-west-2a` has subnets `mod_subnet-a1`, `mod_subnet-a2` and `RDS-Pvt-subnet-1`. The `mod_subnet-a`s are used for the production site - -`eu-west-2b` has subnets `mod_subnet-b1` and `RDS-Pvt-subnet-3`. This is for the staging site - -`eu-west-2c` has `RDS-Pvt-subnet-2`. This isn't really used currently. - -`eu-west-2a & b` have internet gateways attached to their respective routing tables and so are available to the internet. - -## IAM - -The IAM configuration is that laid out in the [IAM Roles section](settingUp.md) of setting up. The role is called `MuseumofDreams_EB_EC2` - -## RDS - -There are two RDS instances, one for staging (`mod-mysql-dev-db`) and one for prod (`mod-mysql-ebdb-prod`). - -They are almost identical in their setup but the production availability zone is `eu-west-2c` and staging is `eu-west-2a` and they have different secondary security groups to connect with their respective environments - `rds-ec2-1` for production and `ec2-rds-1` for staging. - -Please note that the subnets in the RDS console are `RDS-Pvt-subnet` - -## ElasticBeanstalk - -There is one EBS application - Museum od Dreams site and it has 2 environments - ...`env-1` which is production and ...`env-dev` for staging - -The workflow is that development is done on a feature branch and this gets merged into `development` and the CodePipeline for the staging site deploys these updates. When these have been reviewed and approved, they can be merged into `main` and the production CodePipeline will deploy a new version of production. - -Production uses the `rds-ec2-1` security group and should have availability zones matching `mod-subnet-a` and `RDS-Pvt-subnet-2` - -Staging uses `ec2-rds-1` security group and should have availability zones matching `mod-subnet-b` and `RDS-Pvt-subnet-1` - -There are saved configurations to launch instances from if issues arise and an environment needs to be terminated. Make sure you detach the security groups before doing this (can be done from the security group console). -The advised configurations are `db site` and `mod dev setup with db`. The difference is in the env variables defined at the end of the config - the `DB_HOSTNAME`s are different. These can always be updated if the wrong one is launched. - -## Security Groups - -As outlined above, production uses the `rds-ec2-1` security group. This should have rules to allow connections for MYSQL from the same security group (this is why we attach it to the RDS instance) and also one of these from the scaling group security group attached to the prod site environment. - -The staging security group `ec2-rds-1` follows the same pattern. - - -## Restoring DB instances - -If ever you need to spin up a new verison of the db, this should be done from *backups*, **not** snapshots as snapshots do not allow you to set an initial db name, which is necessary for EBS to connect to the RDS. - -# Accessing the db through an EC2 shell - -The following commands are important to run anytime you have to use the shell to manually run commands (this shouldn't be often!) - -``` -cd /var/app -source venv/staging-LQM1lest/bin/activate -cd current - -export $(/opt/elasticbeanstalk/bin/get-config --output YAML environment | sed -r 's/: /=/' | xargs) -``` diff --git a/docs/awsSSL.md b/docs/awsSSL.md index 999bfb2a..4c322172 100644 --- a/docs/awsSSL.md +++ b/docs/awsSSL.md @@ -18,4 +18,4 @@ Go to the EB environment, go to the `Configuration` tab and go to the section ab Once the changes have been applied, go to your `EC2 Security Groups` and here you should see a new load balancer type for your environment. I recommend changing the name to include LB or something similar so you can tell them apart easily. -On your environment's security group, the inbound rules should include http traffic from the load balancer, add it if it doesn't. Update the inbound rules in the load balancer's security group to allow HTTPS traffic from: itself, 0.0.0.0 (anywhere), the database and the environment. Also allow HTTP from anywhere. +On your environment's security group, the inbound rules should include http traffic from the load balancer, add it if it doesn't. Update the inbound rules in the load balancer's security group to allow HTTPS traffic from 0.0.0.0 (anywhere), the database and the environment. Also allow HTTP from anywhere. diff --git a/docs/baseAWSSetup.md b/docs/baseAWSSetup.md new file mode 100644 index 00000000..a8d908ca --- /dev/null +++ b/docs/baseAWSSetup.md @@ -0,0 +1,84 @@ +# Current Setup + +Currently the AWS system is set up such that: + +## VPC + +There is one VPC called `MuseumofDreams`. +This has subnets across 3 availability zones (eu-west-2 a, b & c) +Below is a diagram of how the subnets are laid out. + +![VPC resource map](imgs/VPCresource_map.png) + +Internet gateways allow the assigned routetables and their subnets to be exposed to the internet. Both `mod_routetable_subnet`s are exposed to the internet and are used for the EB apps and their load balancers, whilst the `RDS-Pvt-rt` is for the databases, shielding them from public internet access. + +They have been distributed between dev and prod as shown because load balancers are required to be in at least 2 different availability zones and require subnets with internet gateways. The instances of the EB apps can have subnets with and without an internet gateway. The configuration for these will be covered in the ElasticBeanstalk section. + + +## IAM + +The IAM configuration is that laid out in the [IAM Roles section](howtoSetupBase.md) of setting up. There is a role called `MuseumofDreams_EB_EC2`. +There is also a user called `mod_site`. + +## RDS + +There are two RDS instances, one for staging (`mod-mysql-dev-db`) and one for prod (`mod-mysql-ebdb-prod`). + +They are almost identical in their setup aside from their availability zones and secondary security groups to connect with their respective environments - `rds-ec2-1` for production and `ec2-rds-1` for staging. + + +## ElasticBeanstalk + +There is one EBS application - Museum of Dreams site and it has 2 environments - ...`env` which is production and ...`env-dev` for staging. + +The workflow is that development is done on a feature branch and this gets merged into `development` and the CodePipeline for the staging site deploys these updates. When these have been reviewed and approved, they can be merged into `main` and the production CodePipeline will deploy a new version of production. + +There are saved configurations for both dev and prod environments with load balancers (`mod prod config` and `dev scaling config`), which have most of the necessary selections, the exception being regarding security groups and subnets that will be covered below. You can also set these up with scaling single instances instead of load balancers and then change to load balancers later on (necessary for [SSL](awsSSL.md)) + +They should also both use the `moddbkey` for EC2 access and `MuseumofDreams_EB_EC2` for the EC2 instance profile. + +### Configuration +**Production** + +| Parameter name | Value/s | +|----|---| +|instance subnets | `mod-subnet-a1`, `mod-subnet-c1`, `RDS-Pvt-subnet-2`| +|additional ec2 security groups | `rds-ec2-1`| +|load balancer subnets | `mod-subnet-a1`, `mod-subnet-c1`| +--- + + +**Staging** + +| Parameter name | Value/s | +|----|---| +|instance subnets | `mod-subnet-a2`, `mod-subnet-b1`, `RDS-Pvt-subnet-1`| +|additional ec2 security groups | `ec2-rds-1`| +|load balancer subnets | `mod-subnet-a2`, `mod-subnet-b1`| +--- + +Use the saved configurations to launch instances if an environment needs to be terminated and spun up again. Make sure you detach the security groups before doing this (can be done from the security group console). + + +## Security Groups + +Security groups allow traffic to pass between the instances attached to the SG and any others that have been defined in the incoming/outgoing rules. If traffic is allowed in via one rule it is also allowed out by that same rule, which means you only need to define it once. + +Each EC2 instance has a default SG and a load balancer SG and these are automatically populated when an instance is launched. The additional groups are attached to the EC2 instances so that they can communicate with the MySQL databases. + + +## Restoring DB instances + +If ever you need to spin up a new verison of the db, this should be done from *backups*, **not** snapshots as snapshots do not allow you to set an initial db name, which is necessary for EBS to connect to the RDS. + +# Accessing the db through an EC2 shell + +The following commands are important to run anytime you have to use the shell to manually run commands (this shouldn't be often!) + +``` +cd /var/app +source venv/staging-LQM1lest/bin/activate +cd current + +export $(/opt/elasticbeanstalk/bin/get-config --output YAML environment | sed -r 's/: /=/' | xargs) +``` diff --git a/docs/fullSetup.md b/docs/howtoSetupBase.md similarity index 59% rename from docs/fullSetup.md rename to docs/howtoSetupBase.md index 7a407fb8..433c4e0a 100644 --- a/docs/fullSetup.md +++ b/docs/howtoSetupBase.md @@ -25,19 +25,25 @@ packages: This will address issues with setting up the mysql db. -Also create [db-migrate.config](../.ebextensions/db-migrate.config). +You should also create a `.platform` directory, which will execute scripts when an instance starts. **This is not within the `.ebextensions` directory.** + +Create [db-migrate script](../.platform/hooks/postdeploy/01_db-migrate.sh) and [nginx upload conf](../.platform/nginx/conf.d/proxy.conf) + +These will allow migrations and `collectstatic` to automatically run when the app is deployed and will print some output to the logs, which may assist with debugging; and for the upload amount to be increased. + -This will allow migrations and `collectstatic` to automatically run when the app is deployed. ## Settings We have separate settings files for AWS and local development. -See [settings/local.py](museum_of_dreams_project/settings/local.py) and [settings/aws.py](museum_of_dreams_project/settings/aws.py) for the contents. There is a staging.py which is for the staging environment on AWS to define a separate host. +See [settings/local.py](../museum_of_dreams_project/settings/local.py) and [settings/aws.py](../museum_of_dreams_project/settings/aws.py) for the contents. There is a [staging.py](../museum_of_dreams_project/settings/staging.py) which is for the staging environment on AWS to define a separate host. -You also need to point `wsgi.py` and `asgi.py` to the AWS settings file +You also need to point `wsgi.py` and `asgi.py` to the AWS settings file. # Recreating AWS Setup +These instructions will walk you through creating one web app. It is recommended you repeat some of the processes so that you can have separate development/staging and production versions. + As this website is hosted on AWS you will need an account to access all of these services. There are a few things to set up across different services, namely: - VPC @@ -57,7 +63,7 @@ From the menu on the left, select `Internet Gateways`.Create and attach an Inter ## IAM Roles Go to the IAM console. Under the `Access Management` heading on the left, select `Roles`. -Create a new Role and attach the following policies: +Create a new Role for the EC2 instances and attach the following policies: - AdministratorAccess-AWSElasticBeanstalk - AmazonEC2FullAccess @@ -67,6 +73,10 @@ Create a new Role and attach the following policies: These will allow for communication betweeen the ElasticBeanstalk application, the EC2 instances it will create to host the application and the RDS database. +You can also create a User called `mod_site` which will allow the app to access other services. Attach the following policies: +- AmazonS3FullAccess +- AmazonSESFullAccess + ## RDS Go to the RDS console. Select `Databases` and then `Create new database`. @@ -74,20 +84,22 @@ Choose standard create and MySQL (not the Aurora one unless you have a spare £8 The next thing to change is to attach it to the VPC you created. Choose one of the subnets it will live in. Do not allow public access. -You can check if there are any security groups available and select `rds-ec2-1` if you have access to it, otherwise, if you haven't created any security groups yourself, choose create new security group, I named mine `rds-ec2-1` since it will allow the `rds` instance to connect to the `ec2` instance, in `subnet 1` but you can choose another appropriate name. The rest you can leave as default. +If you already created relevant security groups, select one. Otherwise, create a new one and name it as you see fit, remember you will be creating one for staging and one for production. +The rest you can leave as default. -Just allow password authentication. +Allow password authentication. Under `Additional Configurations` you should see `initial db name`, this should be `ebdb`. The rest can be left as default. Create the db and wait for it to spin up. +Repeat to create your prod/staging version. ## ElasticBeanstalk -We'll be using ElasticBeanstalk (EBS) to host our application as the process is a bit more streamlined than with just creating an EC2 instance since EBS allows for more abstraction and less manual config. +We'll be using ElasticBeanstalk (EB, sometimes EBS) to host our application as the process is a bit more streamlined than with just creating an EC2 instance since EB allows for more abstraction and less manual config. -Go to the EBS console and choose `Applications` from the left side menu. Create a new Application with an appropriate name. Then create an environment: +Go to the EB console and choose `Applications` from the left side menu. Create a new Application with an appropriate name. Then create an environment: -Choose Web tier. I'd recommend customising the domain name for ease of access but you don't need to. The platform should be Python. Everything else on that page can be left as default. +Choose Web tier. I'd recommend customising the domain name for ease of access but you don't need to as you can purchase a custom domain. The platform should be Python. Everything else on that page can be left as default. On the next page (service access), select `use an existing role` and select the IAM role you created. If you have an EC2 key, feel free to add it (you'll be able to ssh into the EC2 instance from your local machine) but it's not necessary. Select the same IAM role for the EC2 instance profile. @@ -97,7 +109,7 @@ On the next page, select the security group you created for the RDS instance. On the next page, turn off (uncheck) managed updates (these so far have only caused issues when they run and fail) and scroll to the `Platform Software` section, it should ask you to define the `WSGI path`, it should be `museum_of_dreams_project.wsgi`. -Next, scroll to the bottom where it should have `Environment Variables` or `Environment Properties`. Add some new ones: +Next, scroll to the bottom where it should have `Environment Variables` or `Environment Properties`. Some of these will vary between staging and production. Add some new ones: - `DJANGO_SETTINGS_MODULE` (this is the path to your settings/aws.py file .settings.aws) - `RDS_HOSTNAME` (this is the endpoint for the RDS instance) @@ -105,20 +117,29 @@ Next, scroll to the bottom where it should have `Environment Variables` or `Envi - `RDS_DB_NAME` (this should be ebdb) - `RDS_USERNAME` (this should be the username you chose or admin if you didn't change it) - `RDS_PASSWORD` (this should be the master password you set on the db) +- `PYTHONPATH` This is where the app is hosted on the ec2 instance: `/var/app/venv/staging-LQM1lest` + -Above this section is a `Static Files` section. You should add `/media` and `/static` as paths, with `media` and `static` as their respective directories. +Above this section is a `Static Files` section. You should add `/static` as paths, with `static` as its respective directory. If you plan to use S3 for your static files, please see [S3 for static files](s3ForStatic.md) -You can review and create the environment. This will take some time. +You can review and create the environment. This will take some time. Repeat for the staging/prod version. + ## Security Groups -Whilst the environment is being created, you can check if the security group you defined is available in the VPC console. It will be in `Security Groups` under the `Security` tab in the left hand menu. +Go view your available security groups in the EC2 console. It will be in `Security Groups` under the `Networks & Security` tab in the left hand menu. + +You should have at least one defined for your database and at least one for the EB environment you created. It may be helpful to rename the EB load balancer group to distinguish it from the main EB app one. -If it's available, click on it and scroll to the bottom to edit inbound rules. Allow MySQl connections through the security group that was created for the scaling group attached to your environment, you may also want to allow SSH from this group. +|Security group|Inbound rules| +|---|---| +|for database| allow MySQL TCP from the same sg| +|for eb app| allow ssh from anywhere (optional), allow http from the load balancer group (should be set automatically)| +|for eb load balancer| allow http and https from anywhere (should be set automatically)| +--- -Ensure that the security group you defined on the RDS instance (and then selected in the EBS setup) has been set for MySQL connections. ## CodePipeline @@ -128,16 +149,16 @@ Choose GitHub v2 for the source, and then select the repo and branch. You may ne If the repo is under an organisation, try typing the name as `/`. **If you don't have permissions, you should contact your administrator or relevant AWS advisor to set up a GitHub App to ensure it doesn't disrupt other connections.** -After this, move on to the deploy step (skip build) and choose deploy and select the EBS environment you created. +After this, move on to the deploy step (skip build) and choose deploy and select the EB environment you created. This will automatically pull in changes to the branch you select and deploy them to the environment. -_**NB**_ +### _**NB**_ -If you have more than one environment (one for prod, one for staging for eg.), you should have separate pipelines for each. The current CodePipelines pull from `main` for production and `development` for staging. +You should have separate pipelines for each version of the web app - one for staging and one for production. The current CodePipelines pull from `main` for production and `development` for staging. ## Logging into the Admin -Once you've set everything up, check you can access the website at the domain you set (or through the EBS console: `Go to environment` button). If this seems to be in order, go to the EC2 console and find the associated instance for your EBS environment. Click `connect` and you're free to connect through the browser (default method). Once you're in the shell, you'll need to navigate to the app and create a superuser so you can log in to the admin site. +Once you've set everything up, check you can access the website at the domain you set (or through the EB console: `Go to environment` button). If this seems to be in order, go to the EC2 console and find the associated instance for your EB environment. Click `connect` and you're free to connect through the browser (default method). Once you're in the shell, you'll need to navigate to the app and create a superuser so you can log in to the admin site. ``` cd /var/app @@ -145,13 +166,13 @@ source venv/staging-LQM1lest/bin/activate cd current ``` -We have to expose the variables from the EBS environment to the shell we're in +We have to expose the variables from the EB environment to the shell we're in ``` export $(/opt/elasticbeanstalk/bin/get-config --output YAML environment | sed -r 's/: /=/' | xargs) ``` -If this is the first time setting up this app, you may need to run the migrations (this should be handled automatically in future with the `db-migrate.config` file in `.ebextensions`) +If this is the first time setting up this app, you may need to run the migrations (this should be handled automatically in future with the `db-migrate.sh` file in `.platform`) ``` python manage.py migrate diff --git a/docs/imgs/VPCresource_map.png b/docs/imgs/VPCresource_map.png new file mode 100644 index 0000000000000000000000000000000000000000..26c514552c99367cedbadf6a0033c0f99720c2df GIT binary patch literal 178473 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 S^08k7K0g_m84~p!BmM&NL*wND literal 0 HcmV?d00001 From d3530d97f3901cd010a9f4b9a6a1e7027a05354d Mon Sep 17 00:00:00 2001 From: acholyn Date: Tue, 9 Apr 2024 10:27:17 +0100 Subject: [PATCH 2/8] adding info about how to set up email notifs --- README.md | 4 ++++ docs/AWSses.md | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 docs/AWSses.md diff --git a/README.md b/README.md index ab637f3e..c68520fd 100644 --- a/README.md +++ b/README.md @@ -45,3 +45,7 @@ python manage.py test mod_app/tests #### [Current AWS Settings](docs/baseAWSSetup.md) #### [AWS chatbot](docs/AWSchatbot.md) + +#### [Using S3 for staticfiles](docs/s3ForStatic.md) + +#### [Setting up email notifications](docs/AWSses.md) diff --git a/docs/AWSses.md b/docs/AWSses.md new file mode 100644 index 00000000..35e920c5 --- /dev/null +++ b/docs/AWSses.md @@ -0,0 +1,11 @@ +# Setting up email notification system for changes on the website + +These instructions assume you have purchased a domain name. + +I followed the instructions in [this article](https://medium.com/hackernoon/the-easiest-way-to-send-emails-with-django-using-ses-from-aws-62f3d3d33efd). You don't need the seciton on sending from personal emails, but do need the section sending from a domain (that you've purchased). + +When you have set up a domain in SES, you need to ensure you have selected "publish to Route 53" so that the details (DKIM) get added to the relevant domain name. + +To include it in the admin for select models, I created a mixin which expands the `save_model` function and added the mixin to the admin models. This way, whenever the model is saved in the admin, the researchers should be notified. I also opted to use a template for the html message rather than plain text. + +You can view the [code for the mixin](../mod_app/utils/mixins.py) and the [email template](../mod_app/templates/email_template.html) From a7b25e12e1d0fb5c854daa4ffb1b38341dbb7a13 Mon Sep 17 00:00:00 2001 From: acholyn Date: Tue, 9 Apr 2024 10:28:45 +0100 Subject: [PATCH 3/8] small addition --- docs/AWSses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AWSses.md b/docs/AWSses.md index 35e920c5..d28d98d0 100644 --- a/docs/AWSses.md +++ b/docs/AWSses.md @@ -4,7 +4,7 @@ These instructions assume you have purchased a domain name. I followed the instructions in [this article](https://medium.com/hackernoon/the-easiest-way-to-send-emails-with-django-using-ses-from-aws-62f3d3d33efd). You don't need the seciton on sending from personal emails, but do need the section sending from a domain (that you've purchased). -When you have set up a domain in SES, you need to ensure you have selected "publish to Route 53" so that the details (DKIM) get added to the relevant domain name. +When you have set up a domain in SES, you need to ensure you have selected "publish to Route 53" so that the details (DKIM) get added to the relevant domain name. You don't need to set up the `Custom MAIL FROM domain` unless you want to (allows you to send from abc.yourdomain), if you do, ensure you publish those credentials to Route 53. To include it in the admin for select models, I created a mixin which expands the `save_model` function and added the mixin to the admin models. This way, whenever the model is saved in the admin, the researchers should be notified. I also opted to use a template for the html message rather than plain text. From 34cdfc7b2c6167d7f877f08e35033199a254f390 Mon Sep 17 00:00:00 2001 From: acholyn Date: Tue, 9 Apr 2024 13:58:55 +0100 Subject: [PATCH 4/8] reducing mod_site s3 perms --- docs/howtoSetupBase.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/howtoSetupBase.md b/docs/howtoSetupBase.md index 433c4e0a..744e53b3 100644 --- a/docs/howtoSetupBase.md +++ b/docs/howtoSetupBase.md @@ -73,9 +73,13 @@ Create a new Role for the EC2 instances and attach the following policies: These will allow for communication betweeen the ElasticBeanstalk application, the EC2 instances it will create to host the application and the RDS database. -You can also create a User called `mod_site` which will allow the app to access other services. Attach the following policies: -- AmazonS3FullAccess -- AmazonSESFullAccess +You can also create a User called `mod_site` which will allow the app to access other services. Attach the AmazonSESFullAccess policy and create a new inline policy that will allow: +``` +"s3:PutObject", +"s3:GetObject", +"s3:GetObjectAttributes" +``` +This will limit the actions of the app to just putting and retrieving files. ## RDS From 765831416d4da5cc3923d2df9b1ddd6c45fb7f70 Mon Sep 17 00:00:00 2001 From: acholyn Date: Thu, 11 Apr 2024 12:00:13 +0100 Subject: [PATCH 5/8] adding a bit of blurb to distinguish current and setup files --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c68520fd..0ef3e005 100644 --- a/README.md +++ b/README.md @@ -40,11 +40,11 @@ python manage.py test mod_app/tests ### See these other files for recreating the setup etc. -#### [Setting up from scratch](docs/howtoSetupBase.md) +#### [Setting up from scratch](docs/howtoSetupBase.md) This covers how you'd go about recreating the setup from scratch -#### [Current AWS Settings](docs/baseAWSSetup.md) +#### [Current AWS Settings](docs/baseAWSSetup.md) This describes our current AWS settings without the processes of setting up, with a bit more explanation of why they are what they are -#### [AWS chatbot](docs/AWSchatbot.md) +#### [How to set up the AWS chatbot for notifications](docs/AWSchatbot.md) #### [Using S3 for staticfiles](docs/s3ForStatic.md) From 1db917b30404ab1f9052a091742e0fd16270ead3 Mon Sep 17 00:00:00 2001 From: acholyn Date: Mon, 15 Apr 2024 12:28:28 +0100 Subject: [PATCH 6/8] adding a development SOP --- README.md | 8 ++++++-- docs/developmentSOP.md | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 docs/developmentSOP.md diff --git a/README.md b/README.md index 0ef3e005..844c9e80 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ The production website is hosted at http://museumofdreamworlds.eu-west-2.elastic The staging one is http://museumofdreams.eu-west-2.elasticbeanstalk.com/ and is built from the `development` branch -The more public versions are https://museumofdreamworlds.org and https://staging.museumofdreamworlds.org +The offical versions are https://museumofdreamworlds.org and https://staging.museumofdreamworlds.org -Development should be done locally and staged to the website. At present this is not a production version. +Development should be done locally and staged to the staging website before putting the code on production. ## Getting Started @@ -26,6 +26,10 @@ If it's your first time initialising the app on your machine, you may need to ru python manage.py migrate python manage.py createsuperuser ``` +### AWS + +This project is hosted on AWS, if you do not have access to the account, let [Amanda Ho-Lyn](mailto:a.ho-lyn@ucl.ac.uk) know and she will arrange this. +You may find it beneficial to read through the [current AWS setup docs](docs/baseAWSSetup.md) to gain an understanding of the architecture of the project. Also have a look at the [development SOP](docs/developmentSOP.md) for an idea of the general development flow. ### Running tests diff --git a/docs/developmentSOP.md b/docs/developmentSOP.md new file mode 100644 index 00000000..6502de61 --- /dev/null +++ b/docs/developmentSOP.md @@ -0,0 +1,15 @@ +# Standard development procedure + +This document outlines the recommended way we develop and publish features for this project. + +#### 1. Begin to develop code locally on new branch + +#### 2. If you are working on a feature that needs to be tested on staging whilst in development, use the `dev-feature-test-pipeline` pipeline and edit it to point towards your branch. You will have to manually release the change. Be sure to notify your colleagues _before_ doing this to ensure there is no conflict in the versions. + +#### 3. Once you've finished developing the feature, open a PR to `development`. Once merged, double check the behaviour is as expected on staging. + +#### 4. Once confirmed, open a PR to `main` and once merged, check the behaviour is as expected on production. You may wish to inform the researchers via email. + +#### 5. On the the next! 😁 + +If you have any questions, contact [Amanda Ho-Lyn](mailto:a.ho-lyn@ucl.ac.uk) From 512045e9e027c2889a4e71e23d0b1700b63533c8 Mon Sep 17 00:00:00 2001 From: acholyn Date: Tue, 16 Apr 2024 12:27:02 +0100 Subject: [PATCH 7/8] making note of availability zone subnets to prevent faulty launches --- docs/baseAWSSetup.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/baseAWSSetup.md b/docs/baseAWSSetup.md index a8d908ca..37de1130 100644 --- a/docs/baseAWSSetup.md +++ b/docs/baseAWSSetup.md @@ -42,7 +42,7 @@ They should also both use the `moddbkey` for EC2 access and `MuseumofDreams_EB_E | Parameter name | Value/s | |----|---| -|instance subnets | `mod-subnet-a1`, `mod-subnet-c1`, `RDS-Pvt-subnet-2`| +|instance subnets | `mod-subnet-a1`, `mod-subnet-c1`, `RDS-Pvt-subnet-3`| |additional ec2 security groups | `rds-ec2-1`| |load balancer subnets | `mod-subnet-a1`, `mod-subnet-c1`| --- @@ -52,12 +52,13 @@ They should also both use the `moddbkey` for EC2 access and `MuseumofDreams_EB_E | Parameter name | Value/s | |----|---| -|instance subnets | `mod-subnet-a2`, `mod-subnet-b1`, `RDS-Pvt-subnet-1`| +|instance subnets | `mod-subnet-a2`, `mod-subnet-b1`, `RDS-Pvt-subnet-2`| |additional ec2 security groups | `ec2-rds-1`| |load balancer subnets | `mod-subnet-a2`, `mod-subnet-b1`| --- Use the saved configurations to launch instances if an environment needs to be terminated and spun up again. Make sure you detach the security groups before doing this (can be done from the security group console). +Ensure the private subnets for the instances are in a different availability zone from the public subnets (which overlap with the load balancer subnets) to prevent instances being launched in a private subnet by mistake. ## Security Groups From fbf0f42f1a5934398b1590a9fa291844a46bcf71 Mon Sep 17 00:00:00 2001 From: acholyn Date: Thu, 30 May 2024 12:45:34 +0100 Subject: [PATCH 8/8] updating readme --- README.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 844c9e80..ca438aa1 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ The staging one is http://museumofdreams.eu-west-2.elasticbeanstalk.com/ and is The offical versions are https://museumofdreamworlds.org and https://staging.museumofdreamworlds.org -Development should be done locally and staged to the staging website before putting the code on production. +Development should be done locally and pushed to the staging website where researchers can test features and sign off on them before putting the code on production. ## Getting Started -To work on this project as is, clone the repo into an appropriate folder (eg. `museum_of_dreams_project`). Create a venv at the top level and start it. Then install the requirements and launch the app +To work on this project as is, clone the repo into an appropriate folder (eg. `museum_of_dreams_project`). Create a venv at the top level and start it. Then install the requirements and launch the app. We use `requirements-base.txt` as AWS looks for `requirements.txt` and we don't need to install MySQL locally (we use a local sqlite db). ``` python3 -m venv modvenv @@ -40,11 +40,23 @@ To run the tests locally, run python manage.py test mod_app/tests ``` +### Technologies used + +This project uses a number of technologies, including: +- [Django 4.2](https://docs.djangoproject.com/en/4.2/) +- [OpenProps](https://open-props.style/#colors) (CSS variable package) +- [CK Editor 4](https://ckeditor.com/docs/ckeditor4/latest/index.html) +- [Fuse.js](https://www.fusejs.io/) +- [AWS](aws.com) + +Others which have tangentially helped with development: +- Hypothesis +- Figma --- -### See these other files for recreating the setup etc. +### See these other files for recreating the AWS setup and other features. -#### [Setting up from scratch](docs/howtoSetupBase.md) This covers how you'd go about recreating the setup from scratch +#### [Setting up from scratch](docs/howtoSetupBase.md) This covers how you'd go about recreating the AWS setup from scratch #### [Current AWS Settings](docs/baseAWSSetup.md) This describes our current AWS settings without the processes of setting up, with a bit more explanation of why they are what they are