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)