# containerlib AWS CDK but for normal people. Don't worry about scaling and AWS bills, just rent a VPS and run my randomly-named services on it! I'm no Jia Tan but a man can dream. Also this is only going to be tested with Deno. You deserve better than node. ## Usage Use with [staxman](https://git.fromouter.space/staxman) (WIP). Usage example (v0): ```ts import { Stack } from "../mod.ts"; interface RedisStackOptions { stackName?: string; redisVersion?: string; } export class RedisStack extends Stack { constructor(props: ImmichStackOptions) { super(props.stackName ?? "immich"); const redis = this.addService("redis", { image: `registry.hub.docker.com/library/redis:${props.redisVersion ?? "alpine"}`, restart: "unless-stopped" }); } } const stack = new RedisStack({ redisVersion: "6.2-alpine" }); ``` For a more in-depth example, see the example stacks in `example/`. ## World domination plan Current status: v0 - Annoyingly, this already kinda works! ### v1: docker-compose Initially, containerlib will return docker-compose.yml files. This allows quick implementation and moving from existing Portainer setups to staxman. ### v2: assume direct control Post-MVP, containerlib will return an intermediary state representation (akin to Kubernetes manifests) that serverman can use to control OCI containers via docker API. This is basically integrating the docker-compose functionality directly within serverman.