Managed workloads are first-class objects.
A service, container, VM or agent receives a stable identity, declared resources, limits, policy and audit context.
Omarchy Server is a server-oriented Omarchy fork for serious homelabs and small on-premises clusters. It explores one administrative model for workload identity, resource access, isolation, auditing, virtualization and desired state.
Linux already provides strong primitives for process isolation, mandatory access control, resource limits and virtualization. Omarchy Server does not replace those primitives. It defines a smaller administrative model and compiles that model into existing enforcement mechanisms.
A service, container, VM or agent receives a stable identity, declared resources, limits, policy and audit context.
Administrators define intended access and resource relationships. Backend-specific configuration is generated from that declaration.
The system must answer what a workload can access, what denied an operation, and which policy rule produced the result.
Userspace policy is not a substitute for enforcement. Linux security and isolation mechanisms remain the actual boundary.
A machine must remain administrable without a cluster controller, cloud service or external identity platform.
Changes outside the managed model are visible as unmanaged or drifted state. The system does not claim authority it cannot verify.
Windows NT centralized resource representation and security around objects, access tokens, security descriptors and access checks.[1][2] Omarchy Server studies those durable abstractions without attempting Windows compatibility or an NT kernel reimplementation.
The public model is intentionally smaller than the implementation surface.
The initial model keeps only concepts that improve server administration. NT's Object Manager is useful as prior art because it centralizes creation, naming, lifetime and access tracking for system objects.[3] Omarchy Server applies that idea selectively at the management layer.
principalPersistent project identity independent of transient UID/GID assignment. Human-readable names remain aliases.
workloadService, container, VM or agent with identity, runtime policy, limits and lifecycle.
resourceFilesystem tree, service, socket, secret, device, GPU, VM, volume or other managed target.
descriptorDeclared rights and audit rules attached to a resource, inspired by NT security descriptors.[4]
roleNamed rights that can be assigned to principals without encoding backend-specific groups or labels.
hostIndependent machine that resolves and enforces its own effective configuration.
policy bundleVersioned configuration that can be validated, signed and optionally distributed to multiple hosts.
eventPrincipal, workload, resource, operation, decision, rule, host and backend evidence in one schema.
The first architecture test is not whether a policy can be enforced. It is whether the system can accurately explain effective authority across all enabled backends.
$ omarchy access minecraft.prod PRINCIPAL workload:minecraft.prod HOST r940-01 FILESYSTEM /srv/minecraft/prod READ WRITE EXECUTE /srv/minecraft/backups READ everything else DENY NETWORK listen tcp:25565 ALLOW connect dns ALLOW connect db.internal:5432 ALLOW everything else DENY DEVICES gpu:a6000-0 DENY raw block devices DENY $ omarchy why minecraft.prod can-write filesystem:minecraft-world DECISION ALLOW RULE role:game-server / filesystem.write RESOURCE filesystem:minecraft-world BACKENDS mount namespace, LSM policy $ omarchy why minecraft.prod read filesystem:user-ssh DECISION DENY RULE no matching allow rule BACKENDS mount namespace, LSM policy # The report is only valid if every active enforcement layer is represented.
The project starts from original NT design material, checks which concepts remain central in current Windows, then maps only the surviving useful semantics onto Linux. Modern Windows Server configuration is treated as operational evidence, not as a feature checklist.
Recover the original invariants before later Windows product layers accumulated.
Check which early NT concepts remain structural in current Windows.
Treat current Server behavior as operational evidence, not a feature checklist.
Map desired semantics to enforceable, inspectable Linux mechanisms.
Use narrow comparisons where another system can challenge or simplify the model.
Define the semantics before committing to a policy language or backend compiler.
State what the model protects, what is trusted and what invalidates its claims.
Prototype the parts most likely to disprove the architecture before expanding scope.
Detailed work program: docs/RESEARCH.md. The research document labels statements as KNOWN, HYPOTHESIS, OPEN, DECISION or DEFER.
| Concept | NT / Windows role | Linux situation | Omarchy Server decision | Status |
|---|---|---|---|---|
| Object / resource type | Uniform representation of securable and kernel-managed resources.[1] | Strong kernel objects, but no single administrative resource vocabulary. | Typed management resources with backend adapters. | KEEP |
| SID / stable principal | Identity separated from display name; tokens carry principal and group SIDs.[5] | UID/GID remains primary Unix identity mechanism. | Stable project identity above UID/GID. | ADAPT |
| Access token | Security context associated with a process or thread.[5] | Credentials, groups, capabilities, namespaces and LSM context are separate mechanisms. | Expose an effective workload security context; do not emulate NT token internals. | ADAPT |
| Security descriptor | Owner, discretionary access policy and audit policy associated with an object.[4] | Equivalent intent is distributed across ACLs and security systems. | Unified access + audit declaration for managed resources. | KEEP |
| Object Manager | Centralized object lifecycle, namespace and access tracking.[3] | No direct administrative equivalent. | Implement only a management-level resource registry and access resolver. | ADAPT |
| Registry | Central Windows configuration database. | Linux configuration is intentionally distributed. | No registry clone. Use versioned declarative project configuration. | DROP |
| Domain / AD integration | Enterprise identity and policy distribution. | Existing LDAP, Kerberos and identity stacks already exist. | Out of initial scope; allow adapters later. | DEFER |
| Desired-state enforcement | Windows Server OSConfig applies scenario-based configuration and drift control.[6] | Many mature tools exist, but no Omarchy-specific policy owner. | Local desired state first; optional signed cluster bundles later. | ADAPT |
Each phase has an explicit exit condition. Later phases should not proceed if the earlier abstraction cannot produce an accurate effective-access model.
Define resource types, principal semantics, rights, descriptors, inheritance, audit semantics and managed/unmanaged boundaries.
Create and run managed services with declarative identity, lifecycle, resources and isolation using existing Linux components.
Add persistent principal IDs, typed resources, descriptors, policy compilation and normalized audit records.
Evaluate LSM, BPF LSM and Landlock as enforcement/audit backends. BPF LSM can attach programs to LSM hooks for MAC and audit policy; Landlock can add stackable restrictions to processes.[7][8]
Apply the same principal/resource/policy model to KVM guests and OCI-style containers without making either runtime the top-level administrative abstraction.
Add inventory, signed policy distribution, host status and drift reporting while preserving complete standalone operation.
The project is not an attempt to reproduce the Windows ecosystem or replace mature Linux subsystems.
Kernel changes are not part of the initial architecture. Existing upstream interfaces are preferred.
The project borrows selected administrative and security concepts, not Windows APIs or application compatibility.
Enterprise directory services are outside the first target. External identity can be integrated later.
The primary unit is the host and its managed workloads. Cluster orchestration is optional and limited in scope.
Generated system configuration and backend state must remain inspectable with normal Linux tools.
Root-level unmanaged changes can invalidate the model. Drift and unmanaged state must be reported rather than ignored.
These sources define the current research baseline. The project should add references when an architectural decision depends on them.
No release exists yet. The next concrete artifact is a formal design matrix covering NT concepts, modern Windows behavior, Linux enforcement options and the project decision for each concept.