containerlib/README.md

48 lines
1.4 KiB
Markdown
Raw Normal View History

2024-04-07 15:40:32 +00:00
# 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.
2024-04-07 20:45:51 +00:00
## 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/`.
2024-04-07 15:40:32 +00:00
## World domination plan
Current status: v0 - Annoyingly, this already kinda works!
2024-04-07 15:40:32 +00:00
### v1: docker-compose
Initially, containerlib will return docker-compose.yml files. This allows quick implementation and moving from existing Portainer setups to staxman.
2024-04-07 15:58:34 +00:00
### v2: assume direct control
2024-04-07 15:40:32 +00:00
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.