An open API service indexing awesome lists of open source software.

https://github.com/r2unit/holonet

Holonet automates the enforcement of your single source of truth, ensuring your infrastructure remains consistent and compliant.
https://github.com/r2unit/holonet

ansible ansible-automation-platform devnet devops go golang workflow-automation workflows

Last synced: 14 days ago
JSON representation

Holonet automates the enforcement of your single source of truth, ensuring your infrastructure remains consistent and compliant.

Awesome Lists containing this project

README

          

# Holonet

> [!WARNING]
> Holonet is still under development and currently in a pre‑alpha phase. Do not use it in production.

[![CodeQL](https://github.com/r2unit/holonet/actions/workflows/github-code-scanning/codeql/badge.svg?branch=develop)](https://github.com/r2unit/holonet/actions/workflows/github-code-scanning/codeql)
![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/r2unit/holonet?utm_source=oss&utm_medium=github&utm_campaign=r2unit%2Fholonet&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews)

Holonet is a platform for automating infrastructure management, making your systems reliable, auditable, and ready for advanced automation.

## Getting Started

Below are several ways to install and run Holonet. Choose the option that best fits your environment.

### 1) Docker Compose (recommended for local trials)

A ready‑to‑use Compose file is provided at deployments/compose.yml.

```bash
# From the repository root
docker compose -f deployments/compose.yml up -d

# View logs
docker compose -f deployments/compose.yml logs -f holonet
```

This will start a PostgreSQL instance and Holonet core bound to localhost:3000.

Environment variables (editable in deployments/compose.yml):
- DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME
- LOG_LEVEL, ENABLE_NETBOX, ADMIN_USERNAME, ADMIN_EMAIL, ADMIN_PASSWORD

### 2) Docker (single container)

Build and run Holonet against an existing PostgreSQL database:

```bash
# Build image
docker build -f build/package/dockerfile -t holonet:local .

# Run container (adjust DB_* to your setup)
docker run --name holonet \
-e LOG_LEVEL=debug \
-e DB_HOST=127.0.0.1 -e DB_PORT=5432 \
-e DB_USER=postgres -e DB_PASSWORD=insecure -e DB_NAME=holonet \
-e ENABLE_NETBOX=false \
-p 3000:3000 \
holonet:local
```

### 3) Kubernetes

Below is a minimal example Deployment and Service. Replace with your published image (you can build/push the Docker image from step 2) and adjust DB_* values to point to a reachable PostgreSQL service.

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: holonet
spec:
replicas: 1
selector:
matchLabels:
app: holonet
template:
metadata:
labels:
app: holonet
spec:
containers:
- name: holonet
image: your-registry/holonet:latest
ports:
- containerPort: 3000
env:
- name: LOG_LEVEL
value: debug
- name: ENABLE_NETBOX
value: "false"
- name: DB_HOST
value: postgres
- name: DB_PORT
value: "5432"
- name: DB_USER
value: postgres
- name: DB_PASSWORD
value: insecure
- name: DB_NAME
value: holonet
---
apiVersion: v1
kind: Service
metadata:
name: holonet
spec:
type: ClusterIP
selector:
app: holonet
ports:
- name: http
port: 3000
targetPort: 3000
```

Apply it with:

```bash
kubectl apply -f holonet.yaml
```

Note: You must provide a PostgreSQL instance in your cluster (e.g., via a Helm chart or your own StatefulSet/Service) and point DB_* accordingly.

### 4) Install script

If you prefer a one‑liner install on a Linux host, you can use an install script approach:

```bash
curl -fsSL https://raw.githubusercontent.com/r2unit/holonet/main/scripts/install.sh | bash
```

- The script should install a holonet binary under /usr/local/bin and optionally register a systemd service.
- If your environment restricts curl | bash, download, review, and run the script manually.
- TODO: Provide an official script URL in releases.

### 5) Binary file

You can run Holonet as a single binary.

Option A — Download from releases:
- Download the appropriate archive for your OS/arch from the GitHub Releases page.
- Extract the holonet (or holonet-core) binary and place it in your PATH (e.g., /usr/local/bin).

Option B — Build from source:

```bash
# From repository root
GO111MODULE=on go build -o holonet ./cmd/core

# Environment variables (example)
export DB_HOST=127.0.0.1
export DB_PORT=5432
export DB_USER=postgres
export DB_PASSWORD=insecure
export DB_NAME=holonet

# Run
./holonet
```

For additional guidance and advanced configuration, see the documents linked in the Documentation section below.

## Documentation