4

Part 4: DigitalOcean App Platform Hackathon Submission

 3 years ago
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

GitHub

Permissive License

MIT

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: ""
Enter fullscreen modeExit fullscreen mode

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK