Package: pulumi-aws-miniflux
pulumi-minifluxA multi-languagePulumicomponent builder forMiniflux, the excellent open-source RSS server.What does this repository do?I use this repository to build and publish aPulumi packagethat deploys a Miniflux server on AWS. The package wraps a componentwritten in Gothat handles declaring all of the AWS infrastructure, network rules, policies, etc., to deploy a container onAWS Fargateand a managed PostgreSQL database onAmazon RDSin an easy-to-use API that you can consume inany language Pulumi supports. Just configure the passwords (as encryptedPulumi secrets) that you want to use for your Miniflux admin and PostgreSQL users, then runpulumi upand let Pulumi handle the rest.Components are published to the usual package managers:npm for JavaScript or TypeScript:https://www.npmjs.com/package/@pulumi/aws-minifluxPyPI for Python:https://pypi.org/project/pulumi-aws-miniflux/NuGet for any .NET language:https://www.nuget.org/packages/Pulumi.AwsMiniflux/This GitHub repo (i.e.,from here) for GoComponent APITypeScript/JavaScriptconstconfig=newpulumi.Config();constadminPassword=config.requireSecret("adminPassword");constdbPassword=config.requireSecret("adminPassword");constservice=newminiflux.MinifluxService("service",{adminPassword,dbPassword,});Pythonconfig=pulumi.Config();admin_password=config.get_secret("adminPassword")db_password=config.get_secret("dbPassword")service=miniflux_service.MinifluxService("service",admin_password=admin_password,db_password=db_password)Goconf:=config.New(ctx,"")adminPassword:=conf.RequireSecret("adminPassword")dbPassword:=conf.RequireSecret("dbPassword")service,err:=miniflux.NewMinifluxService(ctx,"service",&miniflux.MinifluxServiceArgs{AdminPassword:adminPassword,DbPassword:dbPassword,})C#varconfig=newPulumi.Config();varadminPassword=config.RequireSecret("adminPassword");vardbPassword=config.RequireSecret("dbPassword");varservice=newPulumi.Miniflux.MinifluxService("service",newPulumi.Miniflux.MinifluxServiceArgs{AdminPassword=adminPassword,DbPassword=dbPassword,});See below for more detailed instructions. Complete programs are available at./examples.Using published componentsAll components requirePulumi, of course. Then, assuming you'veconfigured Pulumi and AWS, you can follow the instructions below to use the component in your language of choice.TypeScript/JavaScriptOn the command line:$ pulumi new typescript
$ npm install --save @pulumi/aws-miniflux
$ pulumi config set --secret adminPassword "some-secret-password"
$ pulumi config set --secret dbPassword "some-other-secret-password"Inindex.ts:import*aspulumifrom"@pulumi/pulumi";import*asminifluxfrom"@pulumi/aws-miniflux";constconfig=newpulumi.Config();constadminPassword=config.requireSecret("adminPassword");constdbPassword=config.requireSecret("adminPassword");// Create a new Miniflux service.constservice=newminiflux.MinifluxService("service",{adminPassword,dbPassword,});// Export the URL of the service.exportconstendpoint=pulumi.interpolate`http://${service.endpoint}`;PythonOn the command line:$ pulumi new python
$ pip install pulumi_miniflux
$ pulumi config set --secret adminPassword "some-secret-password"
$ pulumi config set --secret dbPassword "some-other-secret-password"In__main.py__:importpulumifrompulumi_awsimports3frompulumi_aws_minifluximportminiflux_serviceconfig=pulumi.Config();admin_password=config.get_secret("adminPassword")db_password=config.get_secret("dbPassword")# Create a new Miniflux service.service=miniflux_service.MinifluxService("service",admin_password=admin_password,db_password=db_password)# Export the URL of the service.pulumi.export("endpoint",service.endpoint)GoOn the command line:$ pulumi new go
$ go get github.com/pulumi/pulumi-aws-miniflux/sdk/go/miniflux
$ pulumi config set --secret adminPassword "some-secret-password"
$ pulumi config set --secret dbPassword "some-other-secret-password"Inmain.go:packagemainimport("github.com/pulumi/pulumi-aws-miniflux/sdk/go/miniflux""github.com/pulumi/pulumi/sdk/v3/go/pulumi""github.com/pulumi/pulumi/sdk/v3/go/pulumi/config")funcmain(){pulumi.Run(func(ctx*pulumi.Context)error{conf:=config.New(ctx,"")adminPassword:=conf.RequireSecret("adminPassword")dbPassword:=conf.RequireSecret("dbPassword")// Create a new Miniflux service.service,err:=miniflux.NewMinifluxService(ctx,"service",&miniflux.MinifluxServiceArgs{AdminPassword:adminPassword,DbPassword:dbPassword,})iferr!=nil{returnnil}// Export the URL of the service.ctx.Export("endpoint",pulumi.Sprintf("http://%s",service.Endpoint))returnnil})}C#On the command line:$ pulumi new csharp
$ dotnet add package Pulumi.AwsMiniflux
$ pulumi config set --secret adminPassword "some-secret-password"
$ pulumi config set --secret dbPassword "some-other-secret-password"InMyStack.cs:usingPulumi;usingPulumi.Aws.S3;usingPulumi.AwsMiniflux;classMyStack:Stack{publicMyStack(){varconfig=newPulumi.Config();varadminPassword=config.RequireSecret("adminPassword");vardbPassword=config.RequireSecret("dbPassword");// Create a new Miniflux service.varservice=newPulumi.AwsMiniflux.MinifluxService("service",newPulumi.AwsMiniflux.MinifluxServiceArgs{AdminPassword=adminPassword,DbPassword=dbPassword,});// Export the URL of the service.this.Endpoint=Output.Format($"http://{service.Endpoint}");}[Output]publicOutput<string>Endpoint{get;set;}}More on how all this stuff worksPulumi PackagesPulumi Package SchemaIntroducing Packages and Multi-Language Components