Pactown pozwala komponować wiele niezależnych projektów markpact w spójne, zdecentralizowane ekosystemy usług. Wersja 0.1.141: Desktop/Mobile builds, IaC, Web Preview. Status: Beta
Status: ⚠️ Beta
Wersja: 0.1.141
Repozytorium: github.com/wronai/pactown
Nowości: Desktop/Mobile builds, IaC artifacts, Web Preview mode
Pactown pozwala komponować wiele niezależnych projektów markpact w spójne, zdecentralizowane ekosystemy usług. Każdy serwis definiowany jest w swoim README.md, działa we własnym sandboxie i komunikuje się z innymi usługami przez dobrze zdefiniowane interfejsy.
pip install pactown
Pactown obsługuje teraz budowanie aplikacji desktopowych i mobilnych bezpośrednio z plików markpact:
| Platforma | Framework | Status |
|---|---|---|
| Desktop | Electron | ✅ Stabilny |
| Desktop | Tauri | ✅ Stabilny |
| Desktop | PyInstaller | ✅ Stabilny |
| Desktop | PyQt | ✅ Stabilny |
| Mobile | Capacitor | ✅ Stabilny |
| Mobile | React Native | ✅ Stabilny |
| Mobile | Flutter | ✅ Stabilny |
| Mobile | Kivy | ✅ Stabilny |
Linux AppImage fix: Automatyczny patch --no-sandbox dla Electron + generowanie run.sh launchera.
Każdy sandbox generuje deklaratywne artefakty IaC:
pactown.sandbox.yaml — specyfikacja runtime, deps, run cmd, health, envDockerfile — gotowy do produkcjidocker-compose.yaml — single-service composeKontrolowane przez zmienne: PACTOWN_WRITE_IAC, PACTOWN_WRITE_IAC_MANIFEST, PACTOWN_WRITE_IAC_DOCKERFILE, PACTOWN_WRITE_IAC_COMPOSE.
Aplikacje desktopowe i mobilne mogą być uruchamiane w przeglądarce na serwerach headless (bez DISPLAY). Automatyczna detekcja i zamiana natywnych komend na HTTP server.
Pełne wsparcie dla Podman Quadlet - systemd-native container orchestration:
# Inicjalizacja środowiska z Traefikpactown quadlet init --domain example.com --email admin@example.com# Interaktywna powłoka deploymentupactown quadlet shell --tenant myproject --domain example.com# Deploy pojedynczego serwisupactown quadlet deploy ./README.md \--domain example.com \--subdomain api \--tenant myproject \--tls# Lista serwisówpactown quadlet list --tenant myproject# Logipactown quadlet logs api --tenant myproject
Pactown wspiera wiele backendów deploymentu:
| Backend | Moduł | Status | Use Case |
|---|---|---|---|
| Quadlet | deploy/quadlet.py | ✅ Production | VPS, rootless |
| Podman | deploy/podman.py | ✅ Stabilny | Development |
| Docker | deploy/docker.py | ✅ Stabilny | Local dev |
| Kubernetes | deploy/kubernetes.py | ⚠️ Beta | Cloud scale |
| Compose | deploy/compose.py | ✅ Stabilny | Export |
Moduł pactown.deploy.quadlet zawiera 33 funkcje z naciskiem na bezpieczeństwo:
# Sanitization functionssanitize_name(name) # Container name injection protectionsanitize_env_value(value) # Environment variable escapingsanitize_env_key(key) # Key validationsanitize_path(path) # Path traversal protectionsanitize_domain(domain) # Domain validation for Traefiksanitize_image(image) # Image name validationsanitize_health_check(ep) # Health endpoint sanitizationvalidate_volume(volume) # Volume mount validationcheck_dangerous_content(c) # Pattern detection
24 testy bezpieczeństwa w tests/test_quadlet_security.py pokrywające:
| Komponent | Status | Funkcje | Uwagi |
|---|---|---|---|
| CLI | ✅ Stabilny | 21 | Pełny workflow |
| Quadlet Deploy | ✅ Production | 33 | Security-first |
| Quadlet Shell | ✅ Stabilny | 23 | Interactive |
| Orchestrator | ✅ Stabilny | 18 | Parallel start |
| Resolver | ✅ Stabilny | 8 | Topological sort |
| Network | ✅ Stabilny | 19 | Port allocation |
| Registry Client | ✅ Stabilny | 21 | Sync + Async |
| Parallel | ✅ Stabilny | 6 | Wave execution |
| Desktop Builder | ✅ Stabilny | 4 frameworki | Electron, Tauri, PyInstaller, PyQt |
| Mobile Builder | ✅ Stabilny | 4 frameworki | Capacitor, React Native, Flutter, Kivy |
| IaC Generator | ✅ Stabilny | 3 artefakty | YAML, Dockerfile, Compose |
| Web Preview | ✅ Stabilny | Auto-detect | Headless server support |
| Targets | ✅ Stabilny | 10 frameworków | TargetPlatform enum + registry |
┌─────────────────────────────────────────────────────────────────┐
│ Pactown Ecosystem │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Web │───▶│ API │───▶│ Database │ │ CLI │ │
│ │ Quadlet │ │ Quadlet │ │ Quadlet │ │ shell │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ systemd user services (rootless containers) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
| Komenda | Opis |
|---|---|
pactown up <config> | Uruchom wszystkie usługi |
pactown down <config> | Zatrzymaj wszystkie usługi |
pactown status <config> | Pokaż status usług |
pactown quadlet init | Zainicjalizuj Quadlet + Traefik |
pactown quadlet shell | Interaktywna powłoka |
pactown quadlet deploy | Deploy Markdown jako serwis |
pactown quadlet list | Lista serwisów tenanta |
pactown quadlet logs | Logi serwisu (journalctl) |
pactown publish | Opublikuj do rejestru |
pactown pull | Pobierz zależności |
| Cecha | Pactown | Docker Compose | Kubernetes |
|---|---|---|---|
| Markdown as Config | ✅ | ❌ | ❌ |
| Dynamic Ports | ✅ | ❌ | ⚠️ |
| Zero-config deps | ✅ | ❌ | ❌ |
| Rootless native | ✅ Quadlet | ❌ | ❌ |
| Systemd integration | ✅ Quadlet | ❌ | ❌ |
| Learning Curve | Niska | Średnia | Wysoka |
| Production Ready | ✅ | ✅ | ✅ |
Ostatnia aktualizacja: 10 lutego 2026