Pulumi, in the
language you know.
Write your DanubeData infrastructure in TypeScript, Python, Go or C#. Manage databases, caches and object storage in Germany, with programs you can review alongside your application.
- European-owned
- German data centers
- TLS encrypted
npm install @danubedata/pulumi@0.1.7Use a language SDK with the Pulumi CLI. Read the provider source.
What customers say
“As a developer and cloud enthusiast, I’ve tried a lot of infrastructure platforms — but DanubeData genuinely stands out as one of the most intuitive, modern, and reliable cloud services I’ve used. From signup to deployment, everything feels thoughtfully designed and developer-centric. Deploying a VPS, cache, or database instance takes under a minute — and that’s not an exaggeration! Their intuitive dashboard and instant provisioning make launching new services effortless, even if you’re just getting started with cloud infrastructure”
A program you can make your own.
Choose a language, configure the provider and start with one resource. Each resource example is a complete program for the selected language.
Run in a new, empty project directory. The secret command prompts for your project-scoped API token; the default provider reads danubedata:apiToken. For Python, use the virtual environment created by the template.
pulumi new typescript
npm install @pulumi/pulumi @danubedata/pulumi@0.1.7
pulumi config set danubedata:apiToken --secretReplace the template program with this PostgreSQL example. resourceProfile uses a plan slug, not a display name; confirm your chosen plan in the console.
import * as danubedata from "@danubedata/pulumi";
const database = new danubedata.Database("main", {
name: "app-database",
databaseName: "myapp",
engine: "postgresql",
resourceProfile: "micro",
datacenter: "fsn1",
});
export const database = database.endpoint;Create a Redis cache with a plan slug. CPU and memory come from the selected plan.
import * as danubedata from "@danubedata/pulumi";
const sessions = new danubedata.Cache("sessions", {
name: "app-sessions",
cacheProvider: "redis",
resourceProfile: "micro",
datacenter: "fsn1",
});
export const cache = sessions.endpoint;Create a private, versioned S3-compatible bucket and export its endpoint and returned bucket name.
import * as danubedata from "@danubedata/pulumi";
const uploads = new danubedata.StorageBucket("uploads", {
name: "app-uploads",
region: "fsn1",
versioningEnabled: true,
publicAccess: false,
});
export const storage = uploads.endpointUrl;
export const bucket = uploads.minioBucketName;A complete program combining a database, a cache and a bucket. These examples omit VPS creation because of the current provider limitation below.
import * as danubedata from "@danubedata/pulumi";
const database = new danubedata.Database("main", {
name: "app-database",
databaseName: "myapp",
engine: "postgresql",
resourceProfile: "micro",
datacenter: "fsn1",
});
const sessions = new danubedata.Cache("sessions", {
name: "app-sessions",
cacheProvider: "redis",
resourceProfile: "micro",
datacenter: "fsn1",
});
const uploads = new danubedata.StorageBucket("uploads", {
name: "app-uploads",
region: "fsn1",
versioningEnabled: true,
publicAccess: false,
});
export const database = database.endpoint;
export const cache = sessions.endpoint;
export const storage = uploads.endpointUrl;
export const bucket = uploads.minioBucketName;Read existing bucket names without declaring new resources. The catalog below includes the other lookup functions.
import * as danubedata from "@danubedata/pulumi";
export const bucketNames = danubedata.getStorageBuckets()
.then(result => result.buckets.map(bucket => bucket.name));VPS creation in the current provider
The SDK does not expose cpu_platform, which the API requires. Use the console or danube CLI for new VPS instances. Explore VPS options.
A preview is a change preview, not a forecast of your bill. Check current pricing when choosing a resource plan.
Keep infrastructure close to your code.
Use the language your team knows
TypeScript, Python, Go and C# SDKs let you use functions, loops and packages to compose infrastructure.
Review infrastructure in Git
Keep programs and dependency locks in version control. Review a Pulumi preview alongside your application changes.
Separate environments with stacks
Reuse the same program with separate stacks, configuration and project-scoped tokens for development and production.
Protect tokens and state
Use Pulumi secret configuration or CI secrets for API tokens. Restrict access to the state backend and its encryption keys.
Find the resource or lookup you need.
The SDK catalog links to the generated argument and output types. Catalog membership does not mean every API feature is available through the provider.
Resources
Databases, caches and storage
Compute and hosting
Data sources
Resources in your project
Images and providers
Review package releases and pin dependencies before upgrading. The provider repository includes source and issues.
From your program to a reviewed deployment.
Create an account and token
Generate a project-scoped API token in Security > API tokens. Grant the permissions required by the resources in your program.
Create your Pulumi project
Choose a language, install its SDK and configure the token as a secret. Save your program and lock dependencies.
Preview, review and deploy
Run pulumi preview to inspect proposed changes. Run pulumi up and review its confirmation before approving the deployment.
# Run from your configured Pulumi project.
pulumi preview
# Review the proposed changes before confirming.
pulumi upPulumi questions, answered.
Create a project-scoped token in Security > API tokens in the DanubeData console. Grant the permissions your program needs. Configure it with pulumi config set danubedata:apiToken --secret, or supply DANUBEDATA_API_TOKEN through your environment. Keep it out of Git.
Link to this answer
Need help with authentication or a resource? Read the platform guides.
Put your infrastructure in a language you know.
Create an account, choose your SDK and preview a first resource before applying it.
