Quick Start
Quick Start
What you’ll do
Create a Team manifest (your namespace), write an Application manifest pointing to an nginx container, apply both, and verify the container is running. You’ll use only shrine generate and shrine deploy.
Step 1: create a workspace
mkdir -p ~/shrine-demo && cd ~/shrine-demoStep 2: generate a Team manifest
shrine generate team my-team --path .Shrine writes my-team.yml. Edit contact and quotas as needed; the defaults are fine for this walkthrough. Register the team so the platform knows about it:
shrine apply teams --path .Step 3: generate an Application manifest
shrine generate application hello \
--image nginx:alpine --port 80 \
--domain hello.localhost --team my-team --path .Shrine writes hello.yml:
apiVersion: shrine/v1
kind: Application
metadata:
name: hello
owner: my-team
spec:
image: nginx:alpine
port: 80
replicas: 1
routing:
domain: hello.localhost
pathPrefix: /hello
networking:
exposeToPlatform: falseStep 4: dry-run the apply
Preview what Shrine would do without touching Docker (Constitution Principle II):
shrine deploy --dry-run --path .[shrine] Planning deployment from: /home/user/shrine-demo
[dry-run] create network shrine.my-team.private
[dry-run] create container my-team.hello (nginx:alpine, port 80)Step 5: apply for real
shrine deploy --path .Shrine creates the team network, pulls the image if needed, and starts the container.
Step 6: verify
shrine status app hello
docker ps --filter name=helloStep 7: tear down
Shrine tears down by team — stops and removes every container and network the team owns:
shrine teardown my-teamWhat’s next
- CLI reference — every verb and flag documented.
- Guides — production patterns including Traefik routing, aliases, and TLS.