Last year I started working on GetPut Adventures and then let it slide onto the backburner after NaNoWriMo was over. I’m picking the project back up again– only to find that the notes past-me left future-me leave a lot to be desired.
So, welcome to the first of the many ‘how they heck did I do this again’ posts! 😂
My current setup is:
RDS – has the MySQL database
Elastic Beanstalk – has the backend Java/SpringBoot .jar file (manually updated)
AWS Amplify – has the Angular frontend setup to auto-update from the GitHub repository
I’ve got a whole bunch of tickets set up in JIRA already to track the things I wanted to do, but I don’t have them broken out into what order to do them in (or anything useful).
The very basic gameplay exists (and works!), but the story isn’t complete and I still have to manually enter things in the database. I also ran into some issues while playtesting that mean I may need to overhaul how the game works for parts of the storyline.
Also, the program also only supports one story and I’d like to expand it to house a library of stories with similar but not identical gamestyles.
Thus Step 1 is going to be to step back and re-architect the whole thing. Whee! (Coding-wise, Step 1 will be to get the GameMaster’s interface setup and working so I don’t have to interact with the database manually.)
Step 0 is going to be making sure everything is setup correctly on my computer (and on AWS) so that I can properly deploy and test things.
Step 0: Download updates, SSL, Test current build
I’m using IntelliJ for the backend work and Visual Studio Code for the front end, so went and pulled updates for both. I’ve been kicking around the idea of using Docker for the GM side of things (since it’s meant to be separate from the actual gameplay side), so I updated that as well.
The project is up on GitHub and although there’ve been no changes, I’ve done a pull and verified that it thinks it’s up to date. (I’m using GitKraken because everyone needs a little mythical sea creature in their life!)
If you click my referral link for GitKraken here, they’ll give me stickers/t-shirts/socks as rewards if enough folks use it and upgrade to paid. Silly, but fun! 😂
Right now I’m still using a public repo for everything, but I’m swapping that to private. That means having to buy an upgrade to GitHub ($48 year) and GitKraken ($49 year), which isn’t that bad. I already pay IntelliJ $89 a year, so I suppose that’s not really insane for a hobby/jobskills investment.
I made sure getputadventuresweb and getputadventuresweb-ui still build and run locally without issues (other than the fact my SSL has expired).
Setting up Let’s Encrypt SSL Certificate on an Elastic Beanstalk Environment with domain hosting by Sitegrounds
Yeah… So this may not be useful to anyone but me, but I’m going to document it anyways! 😉
- Connect to the environment via PuTTY
- Install Certbot and ask for a certificate (four steps below)
wget -O epel.rpm –nv https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y ./epel.rpm sudo yum install python2-certbot-nginx.noarch sudo certbot -i nginx -a manual --preferred-challenges dns -d your.domain.here --expand
- It will give you something like this
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.your.domain.here with the following value: blahblahblahIamAcodeblahblahblah Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- On SiteGround go to the Websites tab
- Click on Site Tools under the domain you are using
- Then click on Domain on the left-hand menu
- And then on DNS Zone Editor (in the submenu that opens)
- Create a new TXT record using the Value that Certbot supplied (you need to add _acme-challenge in front of whatever domain you’re using so it can find it)
If all goes well you should get a Congratulations message with information on where the certificates have been stored.
Then just doublecheck to make sure things are working again and huzzah! (They did work, thank goodness!)
At some point I need to go back and recreate the whole Elastic Beanstalk environment so I make sure I get all the setup steps written down properly. For now, this will work!
Now it’s time to sit down, break out the doodling paper, and start Step 1 (architecting the GM’s interface).