devctk 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(git -C /home/y/Projects/Toys/z-ctk log --all --oneline --decorate)",
5
+ "Bash(git -C /home/y/Projects/Toys/z-ctk status)",
6
+ "Bash(mkdir -p /home/y/Projects/Toys/z-ctk/archive)",
7
+ "Bash(mv /home/y/Projects/Toys/z-ctk/z-ctk /home/y/Projects/Toys/z-ctk/archive/z-ctk-codex)",
8
+ "Bash(uv build:*)"
9
+ ]
10
+ }
11
+ }
@@ -0,0 +1,5 @@
1
+ __pycache__/
2
+ *.egg-info/
3
+ dist/
4
+ build/
5
+ .venv/
devctk-0.1.0/DESIGN.md ADDED
@@ -0,0 +1,52 @@
1
+ # z-ctk
2
+
3
+ One-command setup for SSH-accessible rootless Podman dev containers, managed by systemd user services.
4
+
5
+ ```
6
+ uvx z-ctk --image ubuntu:24.04 --authorized-keys-file ~/.ssh/authorized_keys
7
+ ```
8
+
9
+ You get: a running container with your UID mapped in, sshd on localhost, workspace bind-mounted, passwordless sudo, and auto-start via systemd.
10
+
11
+ ## Distribution
12
+
13
+ - PyPI package, runnable via `uvx z-ctk`
14
+ - Pure Python, minimum 3.10
15
+
16
+ ## Host Requirements
17
+
18
+ Podman (rootless), systemd, loginctl. Refuses to run as root.
19
+
20
+ ## Commands
21
+
22
+ **`init`** (default) — create and start a dev container.
23
+
24
+ - `--image` (required), `--authorized-keys` or `--authorized-keys-file` (required)
25
+ - `--port` (default 39000), `--container-name` (default `<user>-dev`), `--container-user` (default host user)
26
+ - `--workspace` (default `~/dev-container`), `--no-workspace`
27
+ - `--mount`, `--device` (repeatable), extra podman flags after `--`
28
+
29
+ **`ls`** — list managed containers with status.
30
+
31
+ **`rm [NAME] [--all]`** — stop and remove container, units, and state.
32
+
33
+ ## What `init` Does
34
+
35
+ 1. Create rootless Podman container (`--userns keep-id`, `--init`, SSH port on 127.0.0.1)
36
+ 2. Bootstrap inside container: install openssh-server + sudo (apt-get), create user matching host UID/GID, configure sshd (key-only), grant passwordless sudo
37
+ 3. Install two systemd user units: container service + sshd service (depends on container)
38
+ 4. Enable and start both
39
+
40
+ ## File Layout
41
+
42
+ ```
43
+ ~/.config/systemd/user/<name>.service, <name>-sshd.service
44
+ ~/.local/state/z-ctk/<name>.json, <name>-container.sh, <name>-sshd.sh
45
+ ```
46
+
47
+ ## Constraints
48
+
49
+ - Rootless only (no root)
50
+ - SSH bound to 127.0.0.1
51
+ - apt-get containers only (Debian/Ubuntu)
52
+ - One-shot CLI; systemd handles lifecycle
devctk-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,10 @@
1
+ Metadata-Version: 2.4
2
+ Name: devctk
3
+ Version: 0.1.0
4
+ Summary: One-command SSH-accessible rootless Podman dev containers
5
+ Author: y
6
+ License-Expression: MIT
7
+ Classifier: Environment :: Console
8
+ Classifier: Operating System :: POSIX :: Linux
9
+ Classifier: Topic :: Software Development
10
+ Requires-Python: >=3.10