{"id":21726955,"url":"https://github.com/wttech/pulumi-aem","last_synced_at":"2025-04-12T23:34:02.576Z","repository":{"id":224630249,"uuid":"760524423","full_name":"wttech/pulumi-aem","owner":"wttech","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-17T22:04:22.000Z","size":577,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-08T13:52:11.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wttech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-20T15:23:30.000Z","updated_at":"2024-08-22T14:33:29.037Z","dependencies_parsed_at":"2024-06-06T01:34:13.640Z","dependency_job_id":"b1e23c2f-ae89-490c-9b6e-d77eae88c4ce","html_url":"https://github.com/wttech/pulumi-aem","commit_stats":null,"previous_names":["wttech/pulumi-provider-aem","wttech/pulumi-aem-native","wttech/pulumi-aem"],"tags_count":20,"template":false,"template_full_name":"pulumi/pulumi-provider-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Fpulumi-aem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Fpulumi-aem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Fpulumi-aem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2Fpulumi-aem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wttech","download_url":"https://codeload.github.com/wttech/pulumi-aem/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226438817,"owners_count":17625107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-26T03:42:20.049Z","updated_at":"2024-11-26T03:42:20.703Z","avatar_url":"https://github.com/wttech.png","language":"Python","readme":"[![AEM Compose Logo](https://raw.githubusercontent.com/wttech/pulumi-aem/main/docs/logo-with-text.png)](https://github.com/wttech/aemc)\n[![WTT Logo](https://raw.githubusercontent.com/wttech/pulumi-aem/main/docs/wtt-logo.png)](https://www.wundermanthompson.com/service/technology)\n\n[![Apache License, Version 2.0, January 2004](https://raw.githubusercontent.com/wttech/pulumi-aem/main/docs/apache-license-badge.svg)](http://www.apache.org/licenses/)\n\n# AEM Compose - Pulumi Native Provider\n\nThis provider allows development teams to easily set up [Adobe Experience Manager](https://business.adobe.com/products/experience-manager/adobe-experience-manager.html) instances on virtual machines in the cloud (AWS, Azure, GCP, etc.) or bare metal machines.\nIt's based on the [AEM Compose](https://github.com/wttech/aemc) tool and aims to simplify the process of creating AEM environments without requiring deep DevOps knowledge.\n\nPublished in [Pulumi Registry](https://www.pulumi.com/registry/packages/aem/).\n\n# References\n\n* Talk at AdaptTo 2024 Conference - [First-ever IaC Providers for AEM](https://adapt.to/2024/schedule/lightning-talks/first-ever-iaac-providers-for-aem) by [Krystian Panek](mailto:krystian.panek@vml.com)\n\n## Purpose\n\nThe main purpose of this provider is to enable users to:\n\n- Set up as many AEM environments as needed with minimal effort\n- Eliminate the need for deep DevOps knowledge\n- Allow for seamless integration with popular cloud platforms such as AWS and Azure\n- Provide a simple and efficient way to manage AEM instances\n\n## Features\n\n- Easy configuration and management of AEM instances\n- Support for multiple cloud platforms and bare metal machines\n- Seamless integration with Pulumi for infrastructure provisioning\n- Based on the powerful [AEM Compose](https://github.com/wttech/aemc) tool\n\n## Quickstart\n\nThe easiest way to get started is to review, copy and adapt provided examples:\n\n1. AWS EC2 instance with private IP\n   * [Go](https://github.com/wttech/pulumi-aem/tree/main/examples/go_aws_ssm)\n   * [NodeJS](https://github.com/wttech/pulumi-aem/tree/main/examples/nodejs_aws_ssm)\n   * [Python](https://github.com/wttech/pulumi-aem/tree/main/examples/python_aws_ssm)\n   * [.NET](https://github.com/wttech/pulumi-aem/tree/main/examples/dotnet_aws_ssm)\n2. AWS EC2 instance with public IP\n   * [Go](https://github.com/wttech/pulumi-aem/tree/main/examples/go_aws_ssh)\n   * [NodeJS](https://github.com/wttech/pulumi-aem/tree/main/examples/nodejs_aws_ssh)\n   * [Python](https://github.com/wttech/pulumi-aem/tree/main/examples/python_aws_ssh)\n   * [.NET](https://github.com/wttech/pulumi-aem/tree/main/examples/dotnet_aws_ssh)\n3. Bare metal machine\n   * [Go](https://github.com/wttech/pulumi-aem/tree/main/examples/go_bare_metal)\n   * [NodeJS](https://github.com/wttech/pulumi-aem/tree/main/examples/nodejs_bare_metal)\n   * [Python](https://github.com/wttech/pulumi-aem/tree/main/examples/python_bare_metal)\n   * [.NET](https://github.com/wttech/pulumi-aem/tree/main/examples/dotnet_bare_metal)\n\n- - -\n\n## Development\n\nThis repository is showing how to create and locally test a native Pulumi provider.\n\n### Authoring a Pulumi Native Provider\n\nThis creates a working Pulumi-owned provider named `aem`.\nIt implements a random number generator that you can [build and test out for yourself](#test-against-the-example) and then replace the Random code with code specific to your provider.\n\n\n#### Prerequisites\n\nPrerequisites for this repository are already satisfied by the [Pulumi Devcontainer](https://github.com/pulumi/devcontainer) if you are using Github Codespaces, or VSCode.\n\nIf you are not using VSCode, you will need to ensure the following tools are installed and present in your `$PATH`:\n\n* [`pulumictl`](https://github.com/pulumi/pulumictl#installation)\n* [Go](https://golang.org/dl/) or 1.latest\n* [NodeJS](https://nodejs.org/en/) 14.x.  We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.\n* [Yarn](https://yarnpkg.com/)\n* [TypeScript](https://www.typescriptlang.org/)\n* [Python](https://www.python.org/downloads/) (called as `python3`).  For recent versions of MacOS, the system-installed version is fine.\n* [.NET](https://dotnet.microsoft.com/download)\n\n\n#### Build \u0026 test the Adobe Experience Manager provider\n\n1. Create a new Github CodeSpaces environment using this repository.\n1. Open a terminal in the CodeSpaces environment.\n1. Run `make build install` to build and install the provider.\n1. Run `make gen_examples` to generate the example programs in `examples/` off of the source `examples/yaml` example program.\n1. Run `make up` to run the example program in `examples/yaml`.\n1. Run `make down` to tear down the example program.\n\n##### Build the provider and install the plugin\n\n   ```bash\n   $ make build install\n   ```\n\nThis will:\n\n1. Create the SDK codegen binary and place it in a `./bin` folder (gitignored)\n2. Create the provider binary and place it in the `./bin` folder (gitignored)\n3. Generate the dotnet, Go, Node, and Python SDKs and place them in the `./sdk` folder\n4. Install the provider on your machine.\n\n##### Test against the example\n\n```bash\n$ cd examples/simple\n$ yarn link @wttech/aem\n$ yarn install\n$ pulumi stack init test\n$ pulumi up\n```\n\nNow that you have completed all of the above steps, you have a working provider that generates a random string for you.\n\n##### A brief repository overview\n\nYou now have:\n\n1. A `provider/` folder containing the building and implementation logic\n    1. `cmd/pulumi-resource-aem/main.go` - holds the provider's sample implementation logic.\n2. `deployment-templates` - a set of files to help you around deployment and publication\n3. `sdk` - holds the generated code libraries created by `pulumi-gen-aem/main.go`\n4. `examples` a folder of Pulumi programs to try locally and/or use in CI.\n5. A `Makefile` and this `README`.\n\n##### Additional Details\n\nThis repository depends on the pulumi-go-provider library. For more details on building providers, please check\nthe [Pulumi Go Provider docs](https://github.com/pulumi/pulumi-go-provider).\n\n#### Build Examples\n\nCreate an example program using the resources defined in your provider, and place it in the `examples/` folder.\n\nYou can now repeat the steps for [build, install, and test](#test-against-the-example).\n\n### Configuring CI and releases\n\n1. Follow the instructions laid out in the [deployment templates](./deployment-templates/README-DEPLOYMENT.md).\n\n### References\n\nOther resources/examples for implementing providers:\n* [Pulumi Command provider](https://github.com/pulumi/pulumi-command/blob/master/provider/pkg/provider/provider.go)\n* [Pulumi Go Provider repository](https://github.com/pulumi/pulumi-go-provider)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Fpulumi-aem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwttech%2Fpulumi-aem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Fpulumi-aem/lists"}