diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index cbda8da4c4..28c1063a2a 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -31,7 +31,7 @@ jobs: files: 'content/**/*.md' separator: "\n" - - uses: DavidAnson/markdownlint-cli2-action@v19 + - uses: DavidAnson/markdownlint-cli2-action@v18 if: steps.changed-files.outputs.any_changed == 'true' with: globs: ${{ steps.changed-files.outputs.all_changed_files }} diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index 3f401a6110..8029656299 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -579,5 +579,3 @@ table tfoot { .disable-copy{ display: inline; } - -@import "modules/academy-styles.scss"; diff --git a/assets/scss/modules/_academy-styles.scss b/assets/scss/modules/_academy-styles.scss deleted file mode 100644 index 909e3c7fdc..0000000000 --- a/assets/scss/modules/_academy-styles.scss +++ /dev/null @@ -1,235 +0,0 @@ -.page-content { - h1 { - font-weight: 700; - margin-bottom: 0.5rem; - } - .lead { - margin-bottom: 2rem; - } -} -.hover-link { - color: inherit; - text-decoration: none !important; - transition: 0.3s ease-in; - font-weight: inherit; - &:hover { - color: $dark-purple; - } -} -.course-item { - padding: 59px 36px; - border-radius: 12px; - border: 1px solid #1d2d3520; - &:not(:last-child) { - margin-bottom: 36px; - } - // resetting styles START - p, - h2, - ul, - ul li { - margin: 0; - } - // resetting styles END - .content { - padding-right: 24px; - } - .inner { - h2 { - font-weight: 700; - } - p { - margin-top: 11px; - } - } - img { - border-radius: 6px; - } - .main-cta{ - padding: 5px 17px 4px 17px; - background: #4D29B4; - color: $white; - margin-top: 20px; - span{ - &:first-child{ - margin-right: 8px; - } - } - i{ - font-size: 16px; - } - } -} -.lessons-list-container { - margin-top: 25px; - margin: 9px 0; - small { - font-size: 12px; - } - .lesson-list-item { - border-top: 1px solid $gray-600; - padding: 4px 0; - &:last-child { - border-bottom: 1px solid $gray-600; - } - a { - font-weight: 600; - } - } -} - -.lessons-list { - .lessons-item { - &:not(:last-child) { - margin-bottom: 36px; - } - } -} - -.lessons-item { - .content { - padding-top: 5px; - padding-left: 24px; - // resetting styles START - p, - h2, - ul, - ul li { - margin: 0; - } - // resetting styles END - h2 { - font-size: 20px; - } - .content-text { - margin-top: 14px; - } - .btn-with-icon { - margin-top: 17px; - } - } - img { - border-radius: 6px; - } - &.compact{ - .content{ - .up-next-text{ - margin-bottom: 5px; - display: block; - color: $dark-purple; - } - .content-text{ - margin-top: 7px; - } - .btn-with-icon { - margin-top: 11px; - text-decoration: none; - } - } - } -} - -.btn-with-icon { - display: inline-flex; - align-items: center; - border: 1px solid rgba($black, 0.13); - border-radius: 6px; - text-transform: uppercase; - font-weight: 700; - font-size: 14px; - color: $body-color; - padding: 5px 18px 4px 18px; - transition: .3s ease; - &:hover{ - background: $dark-purple; - color: $white; - } - span:first-child { - margin-right: 6px; - } -} - -.img-light-shadow{ - box-shadow: 0px 0px 15px #dfdfdf; -} - -.video-thumbnail{ - position: relative; - border-radius: 5px; - width: 100%; - cursor: pointer; - iframe{ - aspect-ratio: 16/9; - } - .play-btn{ - display: flex; - align-items: center; - justify-content: center; - border-radius: 1000px; - border: 2px solid $white; - height: 60px; - width: 60px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - i { - font-size: 25px; - color: $white; - opacity: 0.7; - transition: opacity 0.3s; - position: relative; - left: 1px; - } - &:hover{ - i{ - opacity: 1; - } - } - } - - &.played{ - img{ - display: none; - } - .play-btn{ - display: none; - } - } -} - -@media (max-width: 992px) { - .course-item { - padding: 36px; - .content { - padding: 0; - } - } - -} - -@media (max-width: 768px) { - .course-item { - padding: 36px 18px; - .inner { - h2 { - font-size: 22px; - } - } - .main-cta{ - margin-top: 0; - } - } - .lessons-item{ - .content{ - padding: 0; - padding-top: 18px; - .content-text { - margin-top: 10px; - } - .btn-with-icon { - margin-top: 10px; - } - } - } -} diff --git a/content/en/academy/_index.md b/content/en/academy/_index.md index 150382fb5c..982c73059c 100644 --- a/content/en/academy/_index.md +++ b/content/en/academy/_index.md @@ -3,13 +3,22 @@ title: "LocalStack Academy" linkTitle: "LocalStack Academy" weight: 30 description: > - Welcome to our comprehensive LocalStack e-course! Whether you're a seasoned developer or just starting + (**Deprecated**) Welcome to our comprehensive LocalStack e-course! Whether you're a seasoned developer or just starting your cloud journey, this course is tailored to equip you with the essential knowledge to harness the power of LocalStack. Dive into the world of LocalStack, where you'll not only expedite your development process but also enhance your efficiency in building and testing cloud applications. cascade: type: docs slug: academy +toc_hide: true dev_hub: true -type: academy ---- \ No newline at end of file +--- + +
+
+ +

+ LocalStack Academy is deprecated and no longer maintained. We recommend using the official LocalStack documentation for the latest information. In addition, you can find various LocalStack integrations, tools, frameworks, and platforms on the Awesome LocalStack GitHub repository. You can continue to access the LocalStack Academy content on our LocalStack 101 and Development & Deployment with LocalStack YouTube playlists. +

+
+
diff --git a/content/en/academy/localstack-101/_index.md b/content/en/academy/localstack-101/_index.md index f8f9fd4161..bb6a387749 100644 --- a/content/en/academy/localstack-101/_index.md +++ b/content/en/academy/localstack-101/_index.md @@ -1,11 +1,16 @@ --- title: "LocalStack 101" -linkTitle: "LocalStack 101" -weight: 6 -description: > - This LocalStack course will walk you through everything you need to know to get started using LocalStack - and on your way to becoming a more efficient and productive Cloud developer. Have fun exploring! -type: academy -thumbnail: localstack101.png -layout: single ---- \ No newline at end of file +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/cloud-pods/index.md b/content/en/academy/localstack-101/cloud-pods/index.md new file mode 100644 index 0000000000..2b5e312b03 --- /dev/null +++ b/content/en/academy/localstack-101/cloud-pods/index.md @@ -0,0 +1,17 @@ +--- +title: "Cloud Pods and Collaborative Work" +weight: 7 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/course-overview/index.md b/content/en/academy/localstack-101/course-overview/index.md new file mode 100644 index 0000000000..786bd17271 --- /dev/null +++ b/content/en/academy/localstack-101/course-overview/index.md @@ -0,0 +1,19 @@ +--- +title: "Course Overview" +weight: 1 +toc_hide: true +hide_summary: true +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/full-project-demo/index.md b/content/en/academy/localstack-101/full-project-demo/index.md new file mode 100644 index 0000000000..25b0aaa27f --- /dev/null +++ b/content/en/academy/localstack-101/full-project-demo/index.md @@ -0,0 +1,17 @@ +--- +title: "Full Project Demo" +weight: 6 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/getting-started/index.md b/content/en/academy/localstack-101/getting-started/index.md new file mode 100644 index 0000000000..e6e5ce7770 --- /dev/null +++ b/content/en/academy/localstack-101/getting-started/index.md @@ -0,0 +1,17 @@ +--- +title: "Getting started" +weight: 4 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/lesson-1/index.md b/content/en/academy/localstack-101/lesson-1/index.md deleted file mode 100644 index 27b69146c5..0000000000 --- a/content/en/academy/localstack-101/lesson-1/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Course Overview" -linkTitle: "Course Overview" -weight: 1 -description: > - In this first video, we will explore the diverse sections covered in this e-course, providing - an overview of the exciting topics to be discussed. Discover the course's main themes and gain insight - into specific sections through a concise overview, allowing you to easily navigate to your preferred content. -length: 01:47 -leadimage: overview.png -videoUrl: https://www.youtube.com/embed/VLL-BI1AWcc -type: lessons -URL: "/academy/localstack-101/course-overview/" ---- diff --git a/content/en/academy/localstack-101/lesson-1/overview.png b/content/en/academy/localstack-101/lesson-1/overview.png deleted file mode 100644 index b00c6fe342..0000000000 Binary files a/content/en/academy/localstack-101/lesson-1/overview.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-2/index.md b/content/en/academy/localstack-101/lesson-2/index.md deleted file mode 100644 index 60a6f30032..0000000000 --- a/content/en/academy/localstack-101/lesson-2/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "What is LocalStack" -linkTitle: "What is LocalStack" -weight: 2 -description: > - Discover the power of LocalStack, a game-changing platform enabling Cloud Development Teams to test and - develop Cloud applications locally. Replacing AWS in most use cases, LocalStack ships as a - Docker image, and supports APIs for over 70 AWS services, along with advanced collaboration features and CI integrations. -length: 01:58 -leadimage: what-is-ls.png -videoUrl: https://www.youtube.com/embed/B2EML5L3-tw -type: lessons -url: "/academy/localstack-101/what-is-localstack/" ---- - -In this lesson, we'll talk about LocalStack: - -- The revolutionary platform that brings cloud testing to your local machine, simplifying the development process. -- A drop-in replacement for AWS, ships as a user-friendly Docker image, ensuring effortless installation and setup. -- Supports over 70 AWS services and capable of a diverse range of functionalities, including compute (Lambda, ECS, EKS), various database (DynamoDB, RDS, DocumentDB), and messaging services (SQS, Kinesis, MSK). -- Tackles sophisticated and exotic APIs (QLDB, Athena, Glue) and helps enhance your skill set. -- Contains advanced collaboration features and seamless CI integrations that foster team productivity. -- Our mission is to empower developers with control over their environments, eliminating time-consuming cloud dev and test loops. -- You can focus on developing exceptional products to solve real-world challenges with LocalStack as your game-changing companion. - -Embrace the future of cloud development and have fun exploring! - -Further reading: - -- [An overview of LocalStack](https://localstack.cloud/) -- [LocalStack Documentation](https://docs.localstack.cloud/overview) -- [LocalStack Service Coverage](https://docs.localstack.cloud/user-guide/aws/feature-coverage/) -- [Learning Resources for Everything AWS](https://aws.amazon.com/developer/learning/) -- [Documentation for AWS Services](https://docs.aws.amazon.com/) diff --git a/content/en/academy/localstack-101/lesson-2/what-is-ls.png b/content/en/academy/localstack-101/lesson-2/what-is-ls.png deleted file mode 100644 index 348a482641..0000000000 Binary files a/content/en/academy/localstack-101/lesson-2/what-is-ls.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-3/index.md b/content/en/academy/localstack-101/lesson-3/index.md deleted file mode 100644 index 4f0e73b4a4..0000000000 --- a/content/en/academy/localstack-101/lesson-3/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Why LocalStack" -linkTitle: "Why LocalStack" -weight: 3 -description: > - LocalStack is a game-changing platform for cloud developers, offering enhanced productivity, cost savings, and simplified maintenance. - With faster deployment and reduced dependency on infrastructure teams, developers can unleash their full - potential and streamline cloud workflows. -length: 03:39 -leadimage: why-ls.png -videoUrl: https://www.youtube.com/embed/EDGIBpUpYWU -type: lessons -url: "/academy/localstack-101/why-localstack/" ---- - -Let's imagine this scenario: Alice, a software developer, takes on the task of creating a serverless -Web application on AWS Cloud. -However, she faces slow and tedious development due to cloud dependencies (DBs, VMs, MQs, etc.). -Every local change needs to be packaged and uploaded to the cloud for testing. -The solution for her trouble is LocalStack — a revolutionary platform that brings cloud resources to her -local machine, enabling efficient development and testing. - -LocalStack is the ultimate platform for cloud developers, offering a wide array of benefits to enhance productivity, reduce costs, and simplify maintenance. -This comprehensive course will equip you with the knowledge and skills to harness LocalStack's power and revolutionize your cloud development workflow. - -Key Takeaways: - -- Developer Productivity: -Witness significant time savings as LocalStack eliminates deployment bottlenecks. -Learn from real-world examples, where developers can save hours in a day by deploying changes faster. -Experience LocalStack's incredible performance, as benchmarked against managed streams for Kafka, delivering up to 60x faster. -Say goodbye to dependencies on infrastructure teams for resource access. -- Cost Efficiency: -Discover how LocalStack cuts down maintenance expenses by streamlining multiple environments (staging, development, testing). -- Simplified Maintenance: -Embrace a hassle-free cloud development experience as DevOps teams experience less overhead managing cloud infrastructure and services for developers. -Unleash your cloud development potential with LocalStack and join our course to become a cloud development master. - -Further reading: - -- [The Importance of End-to-End Testing](https://circleci.com/blog/what-is-end-to-end-testing/#c-consent-modal) -- [Testing Serverless Applications](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/) -- [How Understanding Billing is Complicated and Risky](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html) -- [LocalStack in CI](https://docs.localstack.cloud/user-guide/ci/) -- [Third Party Integrations](https://docs.localstack.cloud/user-guide/integrations/) diff --git a/content/en/academy/localstack-101/lesson-3/why-ls.png b/content/en/academy/localstack-101/lesson-3/why-ls.png deleted file mode 100644 index a52b496687..0000000000 Binary files a/content/en/academy/localstack-101/lesson-3/why-ls.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-4/getting-started.png b/content/en/academy/localstack-101/lesson-4/getting-started.png deleted file mode 100644 index 6552aa1ff3..0000000000 Binary files a/content/en/academy/localstack-101/lesson-4/getting-started.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-4/index.md b/content/en/academy/localstack-101/lesson-4/index.md deleted file mode 100644 index ee0396da28..0000000000 --- a/content/en/academy/localstack-101/lesson-4/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Getting started" -linkTitle: "Getting started" -weight: 4 -description: > - Discover multiple ways to dive into LocalStack's world of cloud development. Learn the easiest - method, using the LocalStack CLI, or alternatively, you can pull the Docker image, run it or include it in - Docker Compose, and start using AWS services. -length: 03:43 -leadimage: getting-started.png -videoUrl: https://www.youtube.com/embed/CzX4mfiS058 -type: lessons -url: "/academy/localstack-101/getting-started/" ---- - -There are several LocalStack installation methods to kickstart your cloud development journey. -Discover multiple pathways to initiate your LocalStack experience: - -You'll understand the diverse approaches to LocalStack installation: - -1. Quickstart with LocalStack CLI: -- Install `awscli-local` and `localstack` via `pip install`. - On macOS you can use `brew install`. -- Start LocalStack using `localstack start`. -- Create a bucket and list buckets using `awslocal s3 mb s3://test` and `awslocal s3 ls`. -2. Alternative - Docker: Dive into an alternate installation method using Docker: pull the image and run it, it's that easy. -3. Docker Compose: Explore yet another approach via Docker Compose. - -Further reading: - -- [Getting Started with LocalStack](https://docs.localstack.cloud/overview/) -- [Better Understanding the Concepts of Image, Container, and Quickly Getting Started with Docker](https://docs.docker.com/get-started/) -- [What is AWS CLI](https://aws.amazon.com/cli/) -- [What is AWS CLI local](https://docs.localstack.cloud/user-guide/integrations/aws-cli/) -- [Pip Documentation](https://pypi.org/project/pip/) -- [Docker Compose Docs](https://docs.docker.com/get-started/08_using_compose/) diff --git a/content/en/academy/localstack-101/lesson-5/index.md b/content/en/academy/localstack-101/lesson-5/index.md deleted file mode 100644 index 4a9cc3fcf1..0000000000 --- a/content/en/academy/localstack-101/lesson-5/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Web App and Resource Browser" -linkTitle: "Web App and Resource Browser" -weight: 5 -description: > - LocalStack Web Application lets you view and manage all aspects of the LocalStack platform. - In this guide you will learn about Resource Browser, that allows you to view, manage, and - deploy AWS resources locally while building & testing cloud applications locally. -length: 03:29 -leadimage: web-app.png -videoUrl: https://www.youtube.com/embed/SoXtngYp-8k -type: lessons -url: "/academy/localstack-101/web-app-resource-browser/" ---- - -In this informative video we guide you through the essential steps of the LocalStack platform: - -- Witness the seamless login flow and discover how to configure the web app. -- Learn how to effortlessly connect your LocalStack Account to enable a smooth integration experience. -- Explore the Resource Browser as we demonstrate how to list and create fundamental resources. -- To create an account for LocalStack, visit [app.localstack.cloud/sign-up](https://app.localstack.cloud/sign-up). - You can sign up with your email address or one of our supported social identity providers (such as GitHub). - -Further reading: - -- [Web App Documentation](https://docs.localstack.cloud/user-guide/web-application/) -- [Resource Browser](https://docs.localstack.cloud/user-guide/web-application/resource-browser/) diff --git a/content/en/academy/localstack-101/lesson-5/web-app.png b/content/en/academy/localstack-101/lesson-5/web-app.png deleted file mode 100644 index 9088ef507d..0000000000 Binary files a/content/en/academy/localstack-101/lesson-5/web-app.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-6/full-demo.png b/content/en/academy/localstack-101/lesson-6/full-demo.png deleted file mode 100644 index a6636e6e71..0000000000 Binary files a/content/en/academy/localstack-101/lesson-6/full-demo.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-6/index.md b/content/en/academy/localstack-101/lesson-6/index.md deleted file mode 100644 index a359c6ccf3..0000000000 --- a/content/en/academy/localstack-101/lesson-6/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Full Project Demo" -linkTitle: "Full Project Demo" -weight: 6 -description: > - This video explores one of our many Developer Hub sample applications, a note-taking application. We'll take you - through the full process, from checking out the GitHub project, to running the functioning app on LocalStack. -length: 03:56 -leadimage: full-demo.png -videoUrl: https://www.youtube.com/embed/cQxg3Dnteyc -type: lessons -url: "/academy/localstack-101/full-project-demo/" ---- - -Discover the ins and outs of one of our Developer Hub's practical sample applications—a note-taking platform. -This video tutorial offers a comprehensive walk-through, beginning with the checkout of the GitHub project and -culminating in deploying the operational application on LocalStack. -Covering the essentials, we'll guide you -through dependency installation, backend and frontend build, and a detailed exploration of the application's service -diagram to unveil the integral components at play. - -Further exploring: - -- [LocalStack Developer Hub Applications](https://docs.localstack.cloud/applications) diff --git a/content/en/academy/localstack-101/lesson-7/cloud-pod.png b/content/en/academy/localstack-101/lesson-7/cloud-pod.png deleted file mode 100644 index 427c39e19d..0000000000 Binary files a/content/en/academy/localstack-101/lesson-7/cloud-pod.png and /dev/null differ diff --git a/content/en/academy/localstack-101/lesson-7/index.md b/content/en/academy/localstack-101/lesson-7/index.md deleted file mode 100644 index 6f6d1cc805..0000000000 --- a/content/en/academy/localstack-101/lesson-7/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Cloud Pods and Collaborative Work" -linkTitle: "Cloud Pods and Collaborative Work" -weight: 7 -description: > - Discover Cloud Pods: a mechanism offering persistent snapshots of LocalStack's application state. - Uncover their significance in enabling reproducible applications, collaborative sandboxing, and - consistent AWS API parity. Engage in a brief and enlightening demo showcasing their practicality. -length: 03:29 -leadimage: cloud-pod.png -videoUrl: https://www.youtube.com/embed/InqTdSvxuag -type: lessons -url: "/academy/localstack-101/cloud-pods/" ---- - -This video will cover: - -What are Cloud Pods ? - -- Unveil the concept of Cloud Pods, designed to capture a persistent snapshot of LocalStack's application state. -Deviate from the default ephemeral state by leveraging Cloud Pods' capability to preserve data across restarts. - -How are cloud pods useful ? - -- Gain insight into the advantages they offer, including the creation of shareable local cloud sandboxes. -Learn about the collaborative potential of distributing and sharing pods among team members and discover -how Cloud Pods contribute to reproducibility in applications and pre-seeding test environments. - -Demo - -- Dive into a concise yet impactful demo that brings Cloud Pods to life. -Witness firsthand how they empower developers in various scenarios, especially for collaboration. - -
-Further reading: - -- [Cloud Pods Documentation]({{< ref "user-guide/state-management/cloud-pods" >}}) -- [Cloud Pods Browser](https://docs.localstack.cloud/user-guide/web-application/cloud-pods-browser/) diff --git a/content/en/academy/localstack-101/localstack101.png b/content/en/academy/localstack-101/localstack101.png deleted file mode 100644 index 81633ebb41..0000000000 Binary files a/content/en/academy/localstack-101/localstack101.png and /dev/null differ diff --git a/content/en/academy/localstack-101/web-app-resource-browser/index.md b/content/en/academy/localstack-101/web-app-resource-browser/index.md new file mode 100644 index 0000000000..8bbf597f54 --- /dev/null +++ b/content/en/academy/localstack-101/web-app-resource-browser/index.md @@ -0,0 +1,17 @@ +--- +title: "Web App and Resource Browser" +weight: 5 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/what-is-localstack/index.md b/content/en/academy/localstack-101/what-is-localstack/index.md new file mode 100644 index 0000000000..68990617e1 --- /dev/null +++ b/content/en/academy/localstack-101/what-is-localstack/index.md @@ -0,0 +1,17 @@ +--- +title: "What is LocalStack" +weight: 2 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-101/why-localstack/index.md b/content/en/academy/localstack-101/why-localstack/index.md new file mode 100644 index 0000000000..afaf33a8e0 --- /dev/null +++ b/content/en/academy/localstack-101/why-localstack/index.md @@ -0,0 +1,17 @@ +--- +title: "Why LocalStack" +weight: 3 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/_index.md b/content/en/academy/localstack-deployment/_index.md new file mode 100644 index 0000000000..81d44ec9dc --- /dev/null +++ b/content/en/academy/localstack-deployment/_index.md @@ -0,0 +1,18 @@ +--- +title: "Development & Deployment with LocalStack" +toc_hide: true +hide_summary: true +aliases: +- /academy/localstack-development/ +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/cloud-pods/index.md b/content/en/academy/localstack-deployment/cloud-pods/index.md new file mode 100644 index 0000000000..3369440a71 --- /dev/null +++ b/content/en/academy/localstack-deployment/cloud-pods/index.md @@ -0,0 +1,17 @@ +--- +title: "Cloud pods - Team Collaboration" +weight: 8 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/course-overview/index.md b/content/en/academy/localstack-deployment/course-overview/index.md new file mode 100644 index 0000000000..605f79e927 --- /dev/null +++ b/content/en/academy/localstack-deployment/course-overview/index.md @@ -0,0 +1,17 @@ +--- +title: "Course Overview" +weight: 1 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/deploy-app-ls/index.md b/content/en/academy/localstack-deployment/deploy-app-ls/index.md new file mode 100644 index 0000000000..0d1ea3d731 --- /dev/null +++ b/content/en/academy/localstack-deployment/deploy-app-ls/index.md @@ -0,0 +1,17 @@ +--- +title: "Deploy a full fledged containerised application using LocalStack" +weight: 2 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/github-action-ls/index.md b/content/en/academy/localstack-deployment/github-action-ls/index.md new file mode 100644 index 0000000000..6dd2b11c36 --- /dev/null +++ b/content/en/academy/localstack-deployment/github-action-ls/index.md @@ -0,0 +1,17 @@ +--- +title: "Setup GitHub Action workflow that starts up LocalStack and deploys the infrastructure" +weight: 7 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/iam-policy-stream/index.md b/content/en/academy/localstack-deployment/iam-policy-stream/index.md new file mode 100644 index 0000000000..24a15b1b9b --- /dev/null +++ b/content/en/academy/localstack-deployment/iam-policy-stream/index.md @@ -0,0 +1,17 @@ +--- +title: "Security Testing with IAM Policy Stream" +weight: 6 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/infra-cloudformation/index.md b/content/en/academy/localstack-deployment/infra-cloudformation/index.md new file mode 100644 index 0000000000..0e83973d7d --- /dev/null +++ b/content/en/academy/localstack-deployment/infra-cloudformation/index.md @@ -0,0 +1,17 @@ +--- +title: "Creating infra with CloudFormation locally" +weight: 5 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/infra-terraform/index.md b/content/en/academy/localstack-deployment/infra-terraform/index.md new file mode 100644 index 0000000000..3c3678ee44 --- /dev/null +++ b/content/en/academy/localstack-deployment/infra-terraform/index.md @@ -0,0 +1,17 @@ +--- +title: "Creating infrastructure with Terraform locally" +weight: 4 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-deployment/ls-integrations/index.md b/content/en/academy/localstack-deployment/ls-integrations/index.md new file mode 100644 index 0000000000..691e836f47 --- /dev/null +++ b/content/en/academy/localstack-deployment/ls-integrations/index.md @@ -0,0 +1,17 @@ +--- +title: "LocalStack Integrations - Infrastructure-as-Code and CI tools " +weight: 3 +toc_hide: true +hide_summary: true +--- + + + + + + + + +

If you are not redirected within 3 seconds, click here.

+ + diff --git a/content/en/academy/localstack-development/_index.md b/content/en/academy/localstack-development/_index.md deleted file mode 100644 index bce735d7b1..0000000000 --- a/content/en/academy/localstack-development/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Development & Deployment with LocalStack" -linkTitle: "Development & Deployment with LocalStack" -weight: 8 -description: > - This course on LocalStack guides you in creating and deploying applications using LocalStack. We cover scenarios around deploying applications with various integrations, such as Terraform and CloudFormation, and integrating CI workflows for your AWS applications. In addition, you will learn about the IAM Policy Stream for automatically generating required IAM policies and Cloud Pods for team collaboration & debugging. Explore the course to learn more about LocalStack and enjoy the learning experience. -type: academy -thumbnail: course-thumbnail.png -layout: single ---- diff --git a/content/en/academy/localstack-development/course-thumbnail.png b/content/en/academy/localstack-development/course-thumbnail.png deleted file mode 100644 index 10df309332..0000000000 Binary files a/content/en/academy/localstack-development/course-thumbnail.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-1/index.md b/content/en/academy/localstack-development/lesson-1/index.md deleted file mode 100644 index 523223414f..0000000000 --- a/content/en/academy/localstack-development/lesson-1/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Course Overview" -linkTitle: "Course Overview" -weight: 1 -description: > - In this video, we'll delve into topics covered in this module, focusing on developing and deploying with LocalStack. In this module, we'll deploy a container application that uses various AWS services. You will learn more about LocalStack integrations, IAM Policy Stream, and Cloud Pods that help improve your local cloud development, testing, and collaborative experience. -length: 02:05 -leadimage: overview.png -videoUrl: https://www.youtube.com/embed/XDIat6laW28?si=dHaNCDWnCCZ7eYP8 -type: lessons -URL: "/academy/localstack-deployment/course-overview/" ---- diff --git a/content/en/academy/localstack-development/lesson-1/overview.png b/content/en/academy/localstack-development/lesson-1/overview.png deleted file mode 100644 index 179f78ff02..0000000000 Binary files a/content/en/academy/localstack-development/lesson-1/overview.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-2/deploy-app.png b/content/en/academy/localstack-development/lesson-2/deploy-app.png deleted file mode 100644 index 0de981197d..0000000000 Binary files a/content/en/academy/localstack-development/lesson-2/deploy-app.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-2/index.md b/content/en/academy/localstack-development/lesson-2/index.md deleted file mode 100644 index 31d2604e01..0000000000 --- a/content/en/academy/localstack-development/lesson-2/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Deploy a full fledged containerised application using LocalStack" -linkTitle: "Deploy a full fledged containerised application using LocalStack" -weight: 2 -description: > - In this video, we'll guide you through deploying a real-world application that uses various AWS services, such as DynamoDB, ECS, API Gateway, and more. We'll attempt to input data into DynamoDB using the deployed application and then retrieve the same data using the Localstack's DynamoDB resource browser to demonstrate how Localstack enhances the developer experience for cloud applications. -length: 08:03 -leadimage: deploy-app.png -videoUrl: https://www.youtube.com/embed/qIB79b-iw2U?si=n7j8WgvZZPoV95KD -type: lessons -url: "/academy/localstack-deployment/deploy-app-ls/" ---- - -In this lesson, we'll guide you through deploying a [continer-based application](https://github.com/localstack/localstack-workshop/tree/main/02-serverless-api-ecs-apigateway), which mimics the complexity of a real-world application. -We are using the following AWS services and their features to build our infrastructure: - -- [Elastic Container Service](https://docs.localstack.cloud/user-guide/aws/elastic-container-service/) to create and deploy our containerized application. -- [DynamoDB](https://docs.localstack.cloud/user-guide/aws/dynamodb/) as a key-value and document database to persist our data. -- [API Gateway](https://docs.localstack.cloud/user-guide/aws/apigatewayv2/) to expose the containerized services to the user through HTTP APIs. -- [Cognito User Pools](https://docs.localstack.cloud/user-guide/aws/cognito/) for user authentication and authorizing requests to container APIs. -- [Amplify](https://docs.localstack.cloud/user-guide/aws/amplify/) to create the user client with ReactJS to send requests to container APIs. -- [S3](https://docs.localstack.cloud/user-guide/aws/s3/) to deploy the Amplify application to make the web application available to users. -- [IAM](https://docs.localstack.cloud/user-guide/aws/iam/) to create policies to specify roles and permissions for various AWS services. - -Additionally, we'll explore the **Resource Browser**, that enables you to perform basic management operations for the locally deployed AWS resources during the development and testing process, in a fashion similar to the AWS Management Console. - -Finally, we'll manually generate certain resources using `awslocal`, a wrapper over the `aws` CLI which re-routes requests to LocalStack, to demonstrate how LocalStack can be used to create and manage resources locally. - -Further reading: - -- [Field Notes: Serverless Container-based APIs with Amazon ECS and Amazon API Gateway](https://aws.amazon.com/blogs/architecture/field-notes-serverless-container-based-apis-with-amazon-ecs-and-amazon-api-gateway/) -- [What is `awslocal` CLI?](https://docs.localstack.cloud/user-guide/integrations/aws-cli/#localstack-aws-cli-awslocal) -- [LocalStack Resource Browser](https://docs.localstack.cloud/user-guide/web-application/resource-browser/) diff --git a/content/en/academy/localstack-development/lesson-3/index.md b/content/en/academy/localstack-development/lesson-3/index.md deleted file mode 100644 index e2ecc2bd64..0000000000 --- a/content/en/academy/localstack-development/lesson-3/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "LocalStack Integrations - Infrastructure-as-Code and CI tools " -linkTitle: "LocalStack Integrations - Infrastructure-as-Code and CI tools " -weight: 3 -description: > - In this video, we will see how LocalStack can be used with infrastructure-as-code (IaC) and continuous integration (CI) tools to enable local development more efficient, and foster team collaboration. LocalStack integrations allow you to use your favorite tools to create and manage AWS resources locally. -length: 03:09 -leadimage: ls-integrations.png -videoUrl: https://www.youtube.com/embed/YV0Zs6UNI9I?si=dD8VzemepxA1Pzkg -type: lessons -url: "/academy/localstack-deployment/ls-integrations/" ---- - -LocalStack integrates with various Infrastructure as Code tools like [Terraform](https://docs.localstack.cloud/user-guide/integrations/terraform/) or [Pulumi](https://docs.localstack.cloud/user-guide/integrations/pulumi/) assist in configuration management with added advantages like version control, ease of editing, and reproducibility. -Additionally, LocalStack integrates with various CI platforms, such as [GitHub Actions](https://docs.localstack.cloud/user-guide/ci/github-actions/) or [CircleCI](https://docs.localstack.cloud/user-guide/ci/circle-ci/), to enable the cloud integrations tests before pushing changes to production. - -We discuss how LocalStack integrates with infrastructure-as-code (IaC) and continuous integration (CI) tools. -Towards the end, we'll demonstrate a [Terraform deployment of a PostgreSQL Aurora cluster](https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/tree/v8.1.1/examples/postgresql) on LocalStack, highlighting the time and resource savings compared to deploying directly on AWS. - -Additionally, we'll provide examples of using LocalStack with Terraform and Pulumi for reference. - -Further reading: - -- [Terraform samples](https://github.com/localstack-samples/localstack-terraform-samples) -- [Pulumi samples](https://github.com/localstack-samples/localstack-pulumi-samples) -- [Infrastructure as Code with LocalStack](https://youtu.be/bx2XpR9xLFA) diff --git a/content/en/academy/localstack-development/lesson-3/ls-integrations.png b/content/en/academy/localstack-development/lesson-3/ls-integrations.png deleted file mode 100644 index be731901bf..0000000000 Binary files a/content/en/academy/localstack-development/lesson-3/ls-integrations.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-4/index.md b/content/en/academy/localstack-development/lesson-4/index.md deleted file mode 100644 index 6a2a4579aa..0000000000 --- a/content/en/academy/localstack-development/lesson-4/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Creating infrastructure with Terraform locally" -linkTitle: "Creating infrastructure with Terraform locally" -weight: 4 -description: > - In this video, we'll utilize LocalStack's Terraform integration to deploy and configure local AWS resources on LocalStack. We'll use tflocal, a wrapper CLI that enables you to run Terraform commands against LocalStack. Alternatively you can use terraform CLI directly with minor modifications to the Terraform configuration, a topic we'll cover later in the video. -length: 08:03 -leadimage: infra-terraform.png -videoUrl: https://www.youtube.com/embed/lsF3kewOeBU?si=Pdjd0KDpnza6ifxJ -type: lessons -url: "/academy/localstack-deployment/infra-terraform/" ---- - -In this video, we'll utilize Terraform to deploy AWS resources locally through LocalStack. -These resources include DynamoDB tables, API Gateway, and VPC. -We'll use `tflocal`, a wrapper CLI that serves as a wrapper on the `terraform` CLI to execute Terraform commands against LocalStack. - -Here's a breakdown of the steps we'll take: - -- We'll create a `main.tf` file and then apply the Terraform configuration on LocalStack. -- We'll demonstrate various configuration options for setting up the infrastructure for our application. -- After applying Terraform, we'll inspect the output, showcasing deployed resources such as API URLs, ECS cluster name, and VPC ID. -- Towards the end, we'll verify the deployment and resource creation using the Resource Browser. - -Further reading: - -- [What is `tflocal`?](https://docs.localstack.cloud/user-guide/integrations/terraform/#tflocal-wrapper-script) -- [Tutorial: Host a static website locally using Simple Storage Service (S3) and Terraform with LocalStack](https://docs.localstack.cloud/tutorials/s3-static-website-terraform/) -- [Custom Service Endpoint configuration for LocalStack](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/custom-service-endpoints#localstack) diff --git a/content/en/academy/localstack-development/lesson-4/infra-terraform.png b/content/en/academy/localstack-development/lesson-4/infra-terraform.png deleted file mode 100644 index 3494b19fd6..0000000000 Binary files a/content/en/academy/localstack-development/lesson-4/infra-terraform.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-5/index.md b/content/en/academy/localstack-development/lesson-5/index.md deleted file mode 100644 index 5264adbc97..0000000000 --- a/content/en/academy/localstack-development/lesson-5/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Creating infra with CloudFormation locally" -linkTitle: "Creating infra with CloudFormation locally" -weight: 5 -description: > - In this video, we'll explore how you can use AWS CloudFormation with LocalStack. AWS CloudFormation allows you to declaratively define your AWS cloud architecture, specifying resources like S3 Buckets and Lambda Functions. To deploy using AWS CloudFormation, we'll use awslocal, a wrapper CLI around the AWS command line interface. -length: 03:41 -leadimage: infra-cloudformation.png -videoUrl: https://www.youtube.com/embed/K0OgQ5eq588?si=djvJJwwz794l2L_o -type: lessons -url: "/academy/localstack-deployment/infra-cloudformation/" ---- - -In this video, we'll utilize [AWS CloudFormation](https://docs.localstack.cloud/user-guide/aws/cloudformation/) to deploy AWS resources locally through LocalStack. -These resources include DynamoDB tables, API Gateway, and VPC. -We'll use `awslocal`, a wrapper CLI that serves as a wrapper on the `aws` CLI to execute Terraform commands against LocalStack. - -Here's a breakdown of the steps we'll take: - -- We'll guide you through the entire CloudFormation Stack, demonstrating various configuration options for creating the infrastructure for our application. -- After deploying the CloudFormation Stack, we'll examine some outputted resources, including API URLs, ECS cluster names, VPC ID, and more. -- Finally, we'll verify the deployment and confirm the creation of resources using the Resource Browser. - -Further reading: - -- [What is AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) -- [What features are supported in LocalStack CloudFormation?](https://docs.localstack.cloud/user-guide/aws/cloudformation/#feature-coverage) -- [LocalStack CloudFormation Coverage](https://docs.localstack.cloud/references/coverage/coverage_cloudformation/) diff --git a/content/en/academy/localstack-development/lesson-5/infra-cloudformation.png b/content/en/academy/localstack-development/lesson-5/infra-cloudformation.png deleted file mode 100644 index c0bc6cda8f..0000000000 Binary files a/content/en/academy/localstack-development/lesson-5/infra-cloudformation.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-6/iam-policy-stream.png b/content/en/academy/localstack-development/lesson-6/iam-policy-stream.png deleted file mode 100644 index 11469f3380..0000000000 Binary files a/content/en/academy/localstack-development/lesson-6/iam-policy-stream.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-6/index.md b/content/en/academy/localstack-development/lesson-6/index.md deleted file mode 100644 index 8fa56ee13b..0000000000 --- a/content/en/academy/localstack-development/lesson-6/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Security Testing with IAM Policy Stream" -linkTitle: "Security Testing with IAM Policy Stream" -weight: 6 -description: > - In this video, we'll talk about the IAM policy Stream. When developing an application, we often need access to AWS resources like DynamoDB, RDS, etc. To grant this access, we create IAM roles and assign permissions through policies. Determining these policies can be challenging — the IAM policy stream simplifies this task by identifying the necessary permissions for your cloud applications. -length: 02:56 -leadimage: iam-policy-stream.png -videoUrl: https://www.youtube.com/embed/TOBLG2Z6xAM?si=Lk6P7j7VpMQoob0F -type: lessons -url: "/academy/localstack-deployment/iam-policy-stream/" ---- - -In this video, we'll explore the [IAM Policy Stream](https://docs.localstack.cloud/user-guide/security-testing/iam-policy-stream/) that assists in assigning precise IAM permissions to a resource. -This ensures accurate and secure access to the resource. - -Here's a breakdown of the steps we'll take: - -1. Enable IAM Policy Stream on the [LocalStack Web Application](https://app.localstack.cloud/policy-stream). -2. Trigger an AWS API request from the CLI, triggering the generation of the necessary policy for the request. -3. Submit another request to generate the corresponding policy for the resource. -4. Explore the **Summary Policy** section to view the consolidated policy for both requests. - -Further reading: - -- [Security Testing](https://docs.localstack.cloud/user-guide/security-testing/) -- [IAM Policy Stream](https://youtube.com/watch?v=HQ2V44ImJ3E) -- [Generate IAM policies locally with LocalStack](https://hashnode.localstack.cloud/generate-iam-policies-locally-using-localstack) diff --git a/content/en/academy/localstack-development/lesson-7/github-action.png b/content/en/academy/localstack-development/lesson-7/github-action.png deleted file mode 100644 index 8e38402ce1..0000000000 Binary files a/content/en/academy/localstack-development/lesson-7/github-action.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-7/index.md b/content/en/academy/localstack-development/lesson-7/index.md deleted file mode 100644 index c318b2d93e..0000000000 --- a/content/en/academy/localstack-development/lesson-7/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Setup GitHub Action workflow that starts up LocalStack and deploys the infrastructure" -linkTitle: "Setup GitHub Action workflow that starts up LocalStack and deploys the infrastructure" -weight: 7 -description: > - In this video, we will employ LocalStack's GitHub Actions integration to deploy our application's infrastructure on LocalStack. Additionally, we will perform a diagnostic test to validate the deployment, ensuring that the infrastructure is set up correctly. This will enable you to conduct cloud integration tests for your application and infrastructure. -length: 03:22 -leadimage: github-action.png -videoUrl: https://www.youtube.com/embed/XNh8aSaT9v0?si=do2ZMVfb6F6Tmzby -type: lessons -url: "/academy/localstack-deployment/github-action-ls" ---- - -LocalStack allows organizations to automate their application testing and integration process using continuous integration (CI). -You can seamlessly integrate LocalStack with your current CI platform. -LocalStack offers native plugin for [CircleCI](https://circleci.com/developer/orbs/orb/localstack/platform) & [GitHub Actions](https://github.com/marketplace/actions/setup-localstack), and a universal driver for other CI platforms. -This integration enables you to include LocalStack's local AWS cloud emulation in your CI pipelines, leverage advanced features such as Cloud Pods and CI analytics, and execute your test and integration suite before deploying to production. - -Here's a breakdown of the steps we'll take: - -- We'll look the `main.yml` file located in the `.github` directory. - This file sets up LocalStack on the GitHub Action runner. -- We install `awslocal` and `tflocal` to deploy the local infrastructure on LocalStack's cloud emulator running in the CI pipeline. -- Following this deployment, we utilize `awslocal` to validate the deployed resources and conduct a diagnostic test on LocalStack to ensure everything is functioning correctly. - -Further reading: - -- [Configuring CI Keys in LocalStack](https://docs.localstack.cloud/user-guide/ci/ci-keys/) -- [LocalStack CI Analytics](https://docs.localstack.cloud/user-guide/ci/ci-analytics/) -- [GitHub Actions & Infrastructure Testing with LocalStack](https://hashnode.localstack.cloud/github-actions-infrastructure-testing-with-localstack) -- [Github Actions & End-to-End Testing with Testcontainers & LocalStack](https://hashnode.localstack.cloud/github-actions-end-to-end-testing-with-testcontainers-localstack) diff --git a/content/en/academy/localstack-development/lesson-8/cloud-pods.png b/content/en/academy/localstack-development/lesson-8/cloud-pods.png deleted file mode 100644 index 4d6eeec3ca..0000000000 Binary files a/content/en/academy/localstack-development/lesson-8/cloud-pods.png and /dev/null differ diff --git a/content/en/academy/localstack-development/lesson-8/index.md b/content/en/academy/localstack-development/lesson-8/index.md deleted file mode 100644 index 9bcfc08e08..0000000000 --- a/content/en/academy/localstack-development/lesson-8/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Cloud pods - Team Collaboration" -linkTitle: "Cloud pods - Team Collaboration" -weight: 8 -description: > - In this video, we'll delve into Cloud pods, which allow you to snapshot the present state of your LocalStack instance and share it with your team. We'll load a Cloud Pod in our environment through the Web Application. This Cloud Pod will load the infrastructure and application onto our currently active LocalStack instance without manually deploying any resources. -length: 03:47 -leadimage: cloud-pods.png -videoUrl: https://www.youtube.com/embed/ZJP2xfvwR_g?si=aG9TPQK7XtwlvFq5 -type: lessons -url: "/academy/localstack-deployment/cloud-pods" ---- - -LocalStack is an ephemeral environment by nature. -It means that when you stop your LocalStack instance, all data is removed. -However, by using [Cloud Pods](https://docs.localstack.cloud/user-guide/state-management/cloud-pods/), you can preserve the LocalStack state. -Cloud Pods are snapshots of your LocalStack instance's state that can be saved, versioned, shared, and restored. - -In this video, we'll follow the [quickstart](https://app.localstack.cloud/quickstart) to import Cloud Pods shared by our team member into our LocalStack instance and observe how this process supports local development and deployment of cloud applications. - -Further reading: - -- [State Management in LocalStack](https://docs.localstack.cloud/user-guide/state-management/) -- [LocalStack Cloud Pods](https://hashnode.localstack.cloud/localstack-cloud-pods) -- [LocalStack 101: Cloud Pods and Collaborative Work](https://youtu.be/InqTdSvxuag) diff --git a/layouts/academy/list.html b/layouts/academy/list.html deleted file mode 100644 index 16afd24711..0000000000 --- a/layouts/academy/list.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ .Content }} - -
- {{ $parent := .Page }} - {{ $pages := (where .Site.Pages "Section" .Section).ByWeight }} - {{ $pages = (where $pages "Type" "!=" "search") }} - {{ $pages = (where $pages ".Params.hide_summary" "!=" true) }} - {{ $pages = (where $pages ".Parent" "!=" nil) }} - {{ $pages = (where $pages "Parent.File.UniqueID" "==" $parent.File.UniqueID) }} - {{ if or $parent.Params.no_list (eq (len $pages) 0) }} - {{/* If no_list is true or we don't have subpages we don't show a list of subpages */}} - {{ else }} - {{/* Otherwise we show a nice formatted list of subpages with page descriptions */}} - {{ range $pages }} -
-
-
-
-
-

{{.Title}}

-

{{.Description}}

-
- {{ $lessons := .Pages }} - {{ $maxLessonsLen := 5 }} - -
- {{ $visibleLessons := first $maxLessonsLen $lessons }} - {{ len $lessons }} lessons -
    - {{ range $visibleLessons }} -
  • -

    {{ .Title }}

    -

    {{.Params.length}}

    -
  • - {{ end }} -
- {{ if gt (len $lessons) $maxLessonsLen }} - {{ sub (len $lessons) $maxLessonsLen }} more lessons - {{ end }} -
- -
-
- -
- - Start the Course - - -
- {{ end }} - {{ end }} -
- - {{ if (.Site.Config.Services.Disqus.Shortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - - diff --git a/layouts/academy/single.html b/layouts/academy/single.html deleted file mode 100644 index 020b42afae..0000000000 --- a/layouts/academy/single.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.Config.Services.GoogleAnalytics.ID)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.Params.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - - diff --git a/layouts/lessons/single.html b/layouts/lessons/single.html deleted file mode 100644 index 61d6fcf147..0000000000 --- a/layouts/lessons/single.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "navbar.html" . }} -
-
-
-
- - -
- {{ partial "version-banner.html" . }} - {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} -
-

{{ .Title }}

- {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} - {{ $image := .Resources.GetMatch (printf "*%s*" (.Params.leadimage)) }} - {{ $videoUrl := .Params.videoUrl }} - {{ with $image }} - {{if $videoUrl}} -
- -
-
- {{end}} - {{end}} - {{.Content}} - {{ $nextLesson := .PrevInSection }} - {{ with $nextLesson }} - - {{ end }} - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.Config.Services.GoogleAnalytics.ID)) }} - {{ partial "feedback.html" .Site.Params.ui.feedback }} -
- {{ end }} - {{ if (.Site.Params.DisqusShortname) }} -
- {{ partial "disqus-comment.html" . }} - {{ end }} - {{ partial "page-meta-lastmod.html" . }} -
-
-
-
- {{ partial "footer.html" . }} -
- {{ partial "scripts.html" . }} - - - diff --git a/layouts/partials/feedback-academy.html b/layouts/partials/feedback-academy.html deleted file mode 100644 index 51dfe41232..0000000000 --- a/layouts/partials/feedback-academy.html +++ /dev/null @@ -1,61 +0,0 @@ - -
-

Feedback

-

Was this page helpful?

- - -

- {{ .yes | safeHTML }} -

-

- {{ .no | safeHTML }} -

-
-

For feedback and queries join our Community Slack

-
- diff --git a/layouts/partials/page-meta-links-academy.html b/layouts/partials/page-meta-links-academy.html deleted file mode 100644 index 0e51636169..0000000000 --- a/layouts/partials/page-meta-links-academy.html +++ /dev/null @@ -1,50 +0,0 @@ -{{ if .File }} -{{ $pathFormatted := replace .File.Path "\\" "/" -}} -{{ $gh_repo := ($.Param "github_repo") -}} -{{ $gh_url := ($.Param "github_url") -}} -{{ $gh_subdir := ($.Param "github_subdir") -}} -{{ $gh_project_repo := ($.Param "github_project_repo") -}} -{{ $gh_branch := (default "main" ($.Param "github_branch")) -}} -
-{{ if $gh_url -}} - {{ warnf "Warning: use of `github_url` is deprecated. For details see https://www.docsy.dev/docs/adding-content/repository-links/#github_url-optional" -}} - {{ T "post_edit_this" }} -{{ else if $gh_repo -}} - {{ $gh_repo_path := printf "%s/content/%s" $gh_branch $pathFormatted -}} - {{ if and ($gh_subdir) (.Site.Language.Lang) -}} - {{ $gh_repo_path = printf "%s/%s/content/%s/%s" $gh_branch $gh_subdir ($.Site.Language.Lang) $pathFormatted -}} - {{ else if .Site.Language.Lang -}} - {{ $gh_repo_path = printf "%s/content/%s/%s" $gh_branch ($.Site.Language.Lang) $pathFormatted -}} - {{ else if $gh_subdir -}} - {{ $gh_repo_path = printf "%s/%s/content/%s" $gh_branch $gh_subdir $pathFormatted -}} - {{ end -}} - - {{/* Adjust $gh_repo_path based on path_base_for_github_subdir */ -}} - {{ $ghs_base := $.Param "path_base_for_github_subdir" -}} - {{ $ghs_rename := "" -}} - {{ if reflect.IsMap $ghs_base -}} - {{ $ghs_rename = $ghs_base.to -}} - {{ $ghs_base = $ghs_base.from -}} - {{ end -}} - {{ with $ghs_base -}} - {{ $gh_repo_path = replaceRE . $ghs_rename $gh_repo_path -}} - {{ end -}} - - {{ $viewURL := printf "%s/tree/%s" $gh_repo $gh_repo_path -}} - {{ $editURL := printf "%s/edit/%s" $gh_repo $gh_repo_path -}} - {{ $issuesURL := printf "%s/issues/new?title=%s" $gh_repo (safeURL $.Title ) -}} - {{ $newPageStub := resources.Get "stubs/new-page-template.md" -}} - {{ $newPageQS := querify "value" $newPageStub.Content "filename" "change-me.md" | safeURL -}} - {{ $newPageURL := printf "%s/new/%s?%s" $gh_repo $gh_repo_path $newPageQS -}} - - {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.Config.Services.GoogleAnalytics.ID)) }} - {{ partial "feedback-academy.html" .Site.Params.ui.feedback }} - {{ end }} - - -{{ end -}} -{{ with .CurrentSection.AlternativeOutputFormats.Get "print" -}} - {{ T "print_entire_section" }} -{{ end }} -
-{{ end -}}