DigitalOcean Academy is the official learning-content repository for DigitalOcean on the Meshery Academy platform. It hosts structured learning paths, challenges, certifications, and Meshery infrastructure designs β helping engineers learn how to manage cloud-native infrastructure with Meshery on DigitalOcean.
π Live site: https://digitalocean.layer5.io/academy
| Purpose | Primary source of DigitalOcean-specific Meshery learning content |
| Platform | Runs on the shared Layer5 Academy platform |
| Authoring | Markdown-based content with live local preview via Hugo |
| Content types | Learning paths Β· Challenges Β· Certifications Β· Infrastructure designs |
| Org ID | 3e2f9c82-1a4c-4781-adf9-99ec22cd994e |
Before you begin, ensure you have the following installed:
| Tool | Version | Link |
|---|---|---|
| Hugo (extended) | β₯ 0.156.0 | Install Hugo |
| Go | β₯ 1.24 | Install Go |
| Node.js / npm | LTS | Install Node.js |
| Git | Latest | Install Git |
# Fork this repository on GitHub, then clone your fork
git clone https://github.com/<your-username>/digitalocean-academy.git
cd digitalocean-academynpm installStart the Hugo development server with drafts and future content enabled:
hugo server -DOr use the Makefile target (includes draft and future content):
make siteThe site will be available at http://localhost:1313/academy/ (or the port shown in your terminal).
Note: The local preview uses basic styling. Full Academy branding is applied after content is integrated into the cloud platform.
| Command | Description |
|---|---|
make setup |
Install npm dependencies |
make build |
Build the site for production |
make clean |
Clear build cache and restart the dev server |
make theme-update |
Update the academy-theme Hugo module to the latest version |
digitalocean-academy/
βββ .github/ # GitHub workflows, issue templates, PR templates
β βββ build/ # Makefile includes
β βββ readme/images/ # README assets
β βββ workflows/ # CI/CD pipelines
β βββ PULL_REQUEST_TEMPLATE.md
βββ assets/json/ # JSON data assets
βββ content/ # π All learning content lives here
β βββ _index.md # Site root page
β βββ learning-paths/ # Learning paths scoped by org ID
β βββ certifications/ # Certification content
β βββ challenges/ # Challenge content
βββ designs/ # Meshery infrastructure designs (YAML)
βββ layouts/ # Hugo layout overrides & shortcodes
β βββ _partials/ # Partial templates
β βββ shortcodes/ # Custom Hugo shortcodes
βββ public/ # Generated site output (git-ignored)
βββ resources/ # Hugo resource cache
βββ go.mod / go.sum # Go module (pulls academy-theme)
βββ hugo.yaml # Hugo configuration
βββ Makefile # Build & dev targets
βββ package.json # Node.js dependencies
βββ README.md # β You are here
The Academy content follows this structure: Learning Path β Course β Chapter β Lesson.
content/
βββ learning-paths/
βββ _index.md
βββ 3e2f9c82-1a4c-4781-adf9-99ec22cd994e/ # DigitalOcean org UID
βββ <your-learning-path>/
βββ _index.md
βββ <your-course>/
βββ _index.md
βββ content/
βββ lesson-1.md
βββ lesson-2.md
Use the usestatic shortcode (not standard Markdown image links) for tenant-aware asset paths:
- Place your image in
static/3e2f9c82-1a4c-4781-adf9-99ec22cd994e/images/ - Reference it in your lesson:

{{< card title="Video: Example" >}}
<video width="100%" height="100%" controls>
<source src="https://example.com/video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
{{< /card >}}
Assessment files use the Academy test layout. Question and option IDs must be unique within their scope.
---
title: "Assessment Example"
id: "assessment-example"
type: "test"
layout: "test"
passPercentage: 70
maxAttempts: 3
timeLimit: 30
numberOfQuestions: 1
questions:
- id: "q1"
text: "DigitalOcean Academy content is authored in Markdown."
type: "true-false"
marks: 1
options:
- id: "true"
text: "True"
isCorrect: true
- id: "false"
text: "False"
---We welcome contributions! Please follow the fork β branch β commit β push β pull request workflow:
- Fork this repository on GitHub.
- Clone your fork locally:
git clone https://github.com/<your-username>/digitalocean-academy.git cd digitalocean-academy
- Create a branch for your changes:
git checkout -b feature/<your-username>/<issue-number>
- Make your changes β add or edit content in
content/, fix bugs, improve docs. - Preview locally to verify:
hugo server -D
- Commit with a sign-off (required by DCO):
git commit -s -m "docs: describe your change" - Push to your fork:
git push origin feature/<your-username>/<issue-number>
- Open a Pull Request against the
masterbranch of this repository.
For a detailed guide on the fork-and-pull workflow, see CONTRIBUTING-gitflow.md.
- All commits must be signed-off (Developer Certificate of Origin).
- Pull requests should reference an open issue.
- See CONTRIBUTING.md for the full contribution guide.
- See CODE_OF_CONDUCT.md for community standards.
| Repository | Description |
|---|---|
| meshery/meshery | Meshery core project |
| meshery-extensions/meshery-academy | Meshery Academy content |
| meshery-extensions/digitalocean-academy | This repository (upstream) |
| layer5io/academy-theme | Academy Hugo theme β styles, shortcodes, layouts |
| layer5io/academy-build | Build pipeline that aggregates academies for publishing |
This repository is available as open source under the terms of the Apache 2.0 License.