Coderintros
Serving Wordpress and React behind Varnish, powered by Docker.
Install / Use
/learn @e10jon/CoderintrosREADME
<br />
<div align="center">
<a href="https://coderintros.com/">
<img src="https://cf.coderintros.com/uploads/2017/06/logo.svg" alt="Coder Intros logo" title="Coder Intros" align="center" height="40" />
</a>
</div>
<br />
<br />
<hr />
What is this?
It's the code that powers coderintros.com. View it, fork it, learn from it, help make it better, or do none of those at all.
Look, I just want a profile on coderintros.com
No problem! Head on over to our suggestion page. No shame in suggesting yourself, I promise.
How to run locally
- Get the code:
git clone git@github.com:e10jc/coderintros.git - Start Docker:
./local - Route a local domain: Add
127.0.0.1 coderintros.devto/etc/hosts - Visit the site @ http://coderintros.dev/
- Visit the backend @ http://coderintros.dev/wp-admin
- Login with
adminpassword
- Login with
- Also:
- Download
gcloud-service-account.jsonto thewordpressfolder - Install the MobX Dev Tools Chrome extension
- Install the Google Analytics Debugger Chrome extension
- Download
How to deploy
Sign up for an AWS account, then do the following:
- Create an RDS instance.
- Create an Elastic Beanstalk application and environment, specifying all the environment variables from
docker-compose.yml.- Use the AWS console, or
eb create prod --elb-type application --sample -i t2.micro -k coderintros --platform "multi-container-docker-1.12.6-(generic)" -pr --vpc.id REPLACE_ME --vpc.ec2subnets REPLACE_ME,REPLACE_ME --vpc.elbpublic --vpc.publicip --vpc.elbsubnets REPLACE_ME,REPLACE_ME
- Use the AWS console, or
- In ECS, create repositories named
react,wordpress, andvarnish. - Create an Elastic IP and assign it to your Elastic Beanstalk instance.
- Add the
AmazonEC2FullAccessrole toaws-elasticbeanstalk-ec2-roleso that you can assign the Elastic IP address to your instance.
- Add the
- Create a Code Pipeline project, pulling from Github, running CodeBuild, deploying to Elastic Beanstalk.
- Define
AWS_REGION,AWS_ACCOUNT_ID,BUILD_BUCKET,PURGERS_ACL, and anything inreact/env-config.jsenvironment variables in CodeBuild. - Upload
gcloud-service-account.jsonto theBUILD_BUCKETS3 folder - Add the
AmazonEC2ContainerRegistryFullAccessandAmazonS3ReadOnlyAccesspolicies to IAM rolecode-build-coderintros-service-role.
- Define
- Push to Github and watch the magic happen!
In production
To let you know about some awesome businesses (and so that I don't forget about my accounts there) here are all the services that coderintros.com relies on:
