Part 4: DigitalOcean App Platform Hackathon Submission
source link: https://dev.to/jonjam/part-4-digitalocean-app-platform-hackathon-submission-2-445
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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
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:
Additional Resources / Info
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK