This post is part of a series detailing my journey with golang
from learning the language to entering the DigitalOcean App Platform Hackathon.
The app I built can be found on GitHub.
Part 4 details the DigitalOcean App Platform Hackathon submission and how it is deployed.
What I built
Category Submission
Random Roulette
App Link
N/A
Screenshots
Description
stock-checker is a golang
app that spawns a task every hour to check whether any of the following UK retailers have an Xbox Series X console in stock:
This is done using a web automation library that navigates each site in a headless chromium browser.
If the app determines stock is available, a text message is sent using Twilio to the configured mobile number.
This is deployed to a DigitalOcean App Platform Worker using a Dockerfile
.
Link to Source Code
Permissive License
Background
See Part 1 of this series.
How I built it
See Part 3 of this series.
Hosting and deployment
This golang
app is deployed using docker
to a Worker component on DigitalOcean's App Platform.
The DO App is defined using an Application Reference specification which is shown below:
name: stock-checker-app
region: fra
workers:
- name: bg-worker-stock-checker
github:
branch: main
deploy_on_push: true
repo: JonJam/stock-checker
dockerfile_path: Dockerfile
instance_count: 1
instance_size_slug: basic-xs
envs:
- key: SC_TWILIO_ENABLED
scope: RUN_AND_BUILD_TIME
value: "true"
- key: SC_TWILIO_ACCOUNTSID
scope: RUN_AND_BUILD_TIME
type: SECRET
value: ""
- key: SC_TWILIO_AUTHTOKEN
scope: RUN_AND_BUILD_TIME
type: SECRET
value: ""
- key: SC_TWILIO_NUMBERTO
scope: RUN_AND_BUILD_TIME
type: SECRET
value: ""
- key: SC_TWILIO_NUMBERFROM
scope: RUN_AND_BUILD_TIME
type: SECRET
value: ""
This App was then deployed using doctl.
Originally I was going to use a Deploy to DigitalOcean button, however worker components are not currently supported.
Prior to this project, I wasn't familiar with Digital Ocean so using the App Platform was new to me. The resources I found useful are listed below:
- App Platform - Workers
- App Platform - Environment variables
- App Platform - App Specification Reference
- App Platform - Tech Talk
- doctl - Reference
Additional Resources / Info
-
Top comments (0)