@@ -42,6 +42,64 @@ Whether you’re running a small deployment or managing large fleets, **osctrl**
4242
4343You can find the documentation of the project in [ https://osctrl.net ] ( https://osctrl.net )
4444
45+ ## 🗂 Project Structure
46+
47+ ``` text
48+ osctrl/
49+ ├── cmd/ # Service and CLI entrypoints
50+ │ ├── admin/ # osctrl-admin (web UI + admin handlers/templates/static)
51+ │ ├── api/ # osctrl-api (REST API service)
52+ │ ├── cli/ # osctrl-cli (operator CLI)
53+ │ └── tls/ # osctrl-tls (osquery remote API endpoint)
54+ ├── pkg/ # Shared application packages
55+ │ ├── auditlog/ # Audit log manager
56+ │ ├── backend/ # DB manager/bootstrap
57+ │ ├── cache/ # Redis/cache managers
58+ │ ├── carves/ # File carve logic/storage integrations
59+ │ ├── config/ # Config structs/flags/validation
60+ │ ├── environments/ # Environment management
61+ │ ├── handlers/ # Shared HTTP handlers
62+ │ ├── logging/ # Log pipeline + logger backends
63+ │ ├── nodes/ # Node state/registration/cache
64+ │ ├── queries/ # Query management/scheduling/results
65+ │ ├── settings/ # Runtime settings
66+ │ ├── tags/ # Tag management
67+ │ ├── users/ # User and permissions management
68+ │ ├── utils/ # Utility helpers
69+ │ ├── types/ # Shared type definitions
70+ │ └── version/ # Version metadata
71+ ├── deploy/ # Deployment configs/scripts (docker/nginx/osquery/systemd, CI/CD, redis, config, helpers, etc.)
72+ ├── tools/ # Dev/release helpers and API test assets (Bruno collections, scripts)
73+ ├── bin/ # Built binaries (from make)
74+ ├── docker-compose-dev.yml # Local multi-service development stack
75+ ├── Makefile # Build/test/dev targets
76+ └── osctrl-api.yaml # OpenAPI specification for osctrl-api
77+ ```
78+
79+ ## 🏛 Architecture
80+
81+ ``` mermaid
82+ flowchart LR
83+ A["osquery Agents"] -->|TLS Remote API| T["osctrl-tls"]
84+ O["Operators"] -->|Web UI| W["osctrl-admin"]
85+ O -->|CLI| C["osctrl-cli"]
86+ O -->|REST| P["osctrl-api"]
87+
88+ W -->|HTTP API| P
89+ C -->|HTTP API| P
90+
91+ T --> S["Shared Packages (pkg/*)"]
92+ W --> S
93+ P --> S
94+ C --> S
95+ C -.->|Direct DB mode| D
96+
97+ S --> D["PostgreSQL Backend"]
98+ S --> R["Redis Cache"]
99+ S --> L["Log Destinations (DB, file, S3, Elastic, Splunk, Graylog, Kafka, Kinesis, Logstash)"]
100+ S --> F["Carve Storage (DB, local, S3)"]
101+ ```
102+
45103## 🛠 Development
46104
47105The fastest way to get started with ** osctrl** development is by using [ Docker] ( https://www.docker.com/ ) and [ Docker Compose] ( https://docs.docker.com/compose/ ) . But you can find other methods below.
0 commit comments