Skip to content

kaesar/onmind-hal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnMind-HAL (Home Apps Labs)

Home Apps Labs (OnMind-HAL) is a comprehensive HomeLab setup or automation tool that deploys and manages a collection of open-source (or similiar) applications using Docker containers (chosen based on my expertise). It's designed for Virtual Machines, Cloud Instances, or Virtual Private Servers (VPS).

Thinked for professionals or techie individuals, as well, IT area and infraestucture (CloudOps or DevSecOps), architecture and software development environments. That's the reason to include first serveral services for infra (IT), but also some services for HomeLab (around 100+).

I have tested the funtional flow and aceptance by myself trying installation en reinstall again and again, many but many times. The issues with containers and their repos are not about HAL (except some template).

This started from my Article about making your HomeLab: here
See other repos from my portfolio: here

Features

Simply you can use docker or podman, setup ufw & dnsmasq (linux), caddy and cloudflared tunnel client. All of this and 100+ services/containers in an automation tool.

  • Automated Installation: One-command setup for multiple services, around 100+ (even try ufw and dnsmasq, besides caddy)
  • Multi-Platform Support: Ubuntu/Debian (even WSL2: Windows Subsystem for Linux), Arch Linux, Amazon Linux 2023, macOS, Windows (MINGW64/Git Bash - experimental)
  • Container Runtime Flexibility: Docker, Colima, or Podman support on macOS and Linux
  • Template-Based Configuration: YAML templates for easy technical service customization
  • Comprehensive Logging: Detailed execution tracking for debugging
  • Podman as Alternative: Docker-first but podman could replace docker commands if you don't use Docker (experimental).
  • Cloudflared Tunnel Support: Setup for the Tunnel with Cloudflare client (cloudflared)

Many services couldn't fit in a machine, consider it's limits (memory, disk, CPU's).
For all services you need a serious machine (like a server) at least with 32GB+.

Quick Start

Just install Bun runtime, then clone OnMind-HAL to install modules, build and start. Then, open a terminal and execute next lines:

curl -fsSL https://bun.com/install | bash

macOS with Homebrew: brew install oven-sh/bun/bun
Windows: powershell -c "irm bun.sh/install.ps1|iex"

git clone https://github.com/kaesar/onmind-hal.git hal
cd hal
bun install
bun run build
bun start

Follow the interactive prompts to configure your HomeLab setup.
Docker is required, then previously install it (or Podman experimental).

Non-Interactive Mode (Script)

You can skip all prompts by providing flags:

bun run src/main.ts [--ip <address>] [--domain <domain>] [--list <services>] [--password <password>]
  • --ip (optional): Server IP address. Auto-detected if omitted. Must be a valid IPv4 address.
  • --domain (optional): Domain name (default: homelab.lan).
  • --list (optional): Comma-separated list of service names (lowercase, e.g. postgresql,redis,grafana). Uses pre-selected defaults if omitted.
  • --nolist (optional): Comma-separated list of service names to exclude. It has priority over --list and replace it.
  • --password (optional): Database/Storage password in base64. If omitted but PostgreSQL/MariaDB/MongoDB are selected, a password is generated as Admin<YY>! (YY = last two digits of current year).
  • --help: Show usage information.

Default optional services (enabled when --list is omitted): RustFS, PostgreSQL, Redis, Kafka, PocketID, Ntfy, Mailpit, Cloudflare Tunnel.

Examples:

bun run src/main.ts --domain hal.lan --nolist jenkins,onedev,backstage,seafile,twentycrm,medusajs,huly,mailserver

bun run src/main.ts --list defaults,mongodb,mariadb,n8n,floci

To install directly in Linux you can add sudo (at the beginning) for priviledges

Services

Core Services (Always Installed)

  • Caddy: Reverse proxy and web server with automatic HTTPS
  • Dockhand (Docker) or Arcane (Podman): Container management interface
  • Copyparty: File sharing and management platform

In script mode: Dockhand is selected for Docker, Arcane for Podman. In interactive mode, you can choose between Dockhand or Arcane (the user is arcane with arcane-admin to pass).

Optional Services

# Service Code Description Port
1 RustFS rustfs High-performance S3-compatible distributed object storage 9004
2 DuckDB duckdb In-memory analytical database with web UI 4214
3 PostgreSQL postgresql Relational database server 5432
4 Redis redis In-memory data store and cache 6379
5 MongoDB mongodb NoSQL database server 27017
6 MariaDB mariadb Relational database server 3306
7 ScyllaDB scylladb NoSQL Cassandra-compatible and DynamoDB-compatible database 9042
8 OpenSearch opensearch Search and analytics engine (Elasticsearch alternative) 5601
9 Qdrant qdrant Vector database for AI and RAG applications 6333
10 Kafka kafka Distributed streaming platform (with KRaft) 9092
11 Kafka UI kafkaui Web UI for managing Apache Kafka clusters 8080
12 RabbitMQ rabbitmq Message broker for distributed systems 15672
13 Ollama ollama Server for your LLM 11434
14 Open-WebUI openwebui User-friendly web interface for Ollama 3010
15 Open-NotebookLM opennotebooklm Open-source alternative to Google NotebookLM 3091
16 n8n n8n Workflow automation platform 5678
17 ToolJet tooljet Open-source low-code platform for building internal tools 3084
18 Kestra kestra Orchestration and scheduling platform 8089
19 KeystoneJS keystonejs Modern headless CMS and GraphQL API 3090
20 Keycloak keycloak Open-source identity and access management solution 8092
21 Authelia authelia Authentication and authorization server 9091
22 PocketID pocketid OIDC provider with passkeys support 8093
23 Apache-APISIX apisix Cloud-native API Gateway and microservices management 9180
24 Floci floci AWS service emulator for local development - LocalStack alternative 4566
25 Floci-AZ flociaz Azure service emulator for local development 4567
26 Floci-GCP flocigcp GCP service emulator for local development 4568
27 k3d k3d Lightweight Kubernetes in Docker for local development 6444
28 Code-Server codeserver Web-based VS Code IDE (code-server by Coder) 3081
29 JupyterLab jupyterlab Web-based interactive development environment (notebooks and code) 3082
30 Forgejo forgejo Self-hosted lightweight Git server with CI/CD (Gitea fork) 3083
31 OneDev onedev Self-hosted Git server with CI/CD 6610
32 Jenkins jenkins Automation server for building, testing, and deploying software 8100
33 Semaphore-UI semaphore Modern UI for Ansible and shell automation 3002
34 Backstage backstage Developer portal platform (Developer Portal by Spotify) 7007
35 Liquibase liquibase Database schema change management and version control 8091
36 SonarQube sonarqube Code quality and security analysis 9002
37 Trivy trivy Container security scanner 8088
38 Karate karate API, UI & performance test automation framework (VNC) 5901
39 RapiDoc rapidoc WebComponent for OpenAPI Spec viewer 8085
40 Hoppscotch hoppscotch Open-source API development ecosystem (Postman alternative) 3080
41 K6 k6 Open-source load testing tool by Grafana (OSS) Labs 6565
42 Grafana grafana Analytics and monitoring platform 3001
43 Loki loki Log aggregation system by Grafana Labs 3100
44 Prometheus prometheus Open-source systems monitoring and alerting toolkit 9090
45 Fluent-Bit fluentbit Lightweight log processor and forwarder 2020
46 Coroot coroot Open-source observability and monitoring platform 8081
47 ReDash redash SQL query editor and visualization platform 5000
48 Uptime-Kuma uptimekuma Self-hosted uptime monitoring tool 3003
49 Dozzle dozzle Lightweight Docker log viewer and monitor 8097
50 Registry registry Private Docker container registry 5002
51 Nexus-Repository nexus Universal artifact repository manager 8098
52 Infisical infisical Open-source secret management platform 8096
53 Vault vault Secrets and encryption management (HashiCorp) 8200
54 Consul consul Service discovery and configuration (HashiCorp) 8500
55 Vaultwarden vaultwarden Self-hosted Bitwarden-compatible password manager 8222
56 Linkwarden linkwarden Self-hosted bookmark manager with tagging and archiving 3101
57 Shlink shlink URL shortener with REST API and web interface 8012
58 Send send Simple, private file sharing with end-to-end encryption (Firefox Send fork) 1880
59 Filestash filestash Web-based file manager for any storage backend 8334
60 Seafile seafile Self-hosted file sync and share platform (Google Drive alternative) 8016
61 Excalidraw excalidraw Virtual whiteboard for sketching diagrams 8082
62 Draw.io drawio Web-based diagramming application 8084
63 WiseMapping wisemapping Web-based mind mapping tool (requires PostgreSQL) 8095
64 Kroki kroki API for generating diagrams (PlantUML, Mermaid, GraphViz, etc.) 8086
65 Presenton presenton Open-source AI presentation generator (Gamma/Canva alternative) 5010
66 Slidev slidev Presentation slides for developers (Markdown-based) 3031
67 Outline outline Team knowledge base and wiki 3030
68 Grist grist Modern spreadsheet with relational database capabilities 8484
69 NocoDB nocodb Open-source Airtable alternative - Smart spreadsheet 8018
70 Directus directus Open-source headless CMS and backend-as-a-service 8055
71 InsForge insforge Open-source backend platform for AI coding agents with database, auth, storage, and AI gateway 7130
72 Apache Spark spark Unified analytics engine for large-scale data processing 9093, 7077
73 TwentyCRM twentycrm Modern open-source CRM platform 3021
74 Chatwoot chatwoot Open-source customer engagement platform (Intercom/Zendesk alternative) 3092
75 MedusaJS medusajs Headless e-commerce platform (Shopify alternative) 9003
76 Huly huly All-in-one project management platform (like Jira + Notion + Slack) 8087
77 Mattermost mattermost Open-source team collaboration and messaging platform (like Slack) 8065
78 Cal.com calcom Open-source scheduling platform (Calendly alternative) 3040
79 AdGuard-Home adguard Network-wide ad and tracker blocking DNS server 3004
80 JasperReports jasperreports Business intelligence and reporting platform 8014
81 DocuSeal docuseal Open-source document signing and PDF form filling platform 3009
82 Stirling-PDF stirlingpdf Powerful locally hosted PDF manipulation tool 8090
83 Pandoc-Web pandocweb Web interface for Pandoc document converter 8094
84 Calibre-Web calibreweb Web-based ebook library management and reader 8083
85 Immich immich Self-hosted photo and video backup and management platform 2283
86 LibreTranslate libretranslate Free and open source machine translation API 5001
87 LiteLLM litellm LLM proxy with unified API for 100+ LLMs 4000
88 AnythingLLM anythingllm Multi-user AI platform with RAG, Agents, and local LLM support 3007
89 LightRAG lightrag Simple and fast graph-based Retrieval-Augmented Generation 9621
90 Voicebox voicebox Open-source AI voice studio with voice cloning, TTS, and dictation 17493
91 CopilotKit copilotkit Open-source AI agent runtime with multi-provider support 4201
92 Goose goose Open-source AI agent for code, workflows, and automation (AAIF/Linux Foundation) 8300
93 Hermes hermes Self-improving AI agent with persistent memory (Nous Research) 8642
94 OpenClaw openclaw AI agent gateway for Claude Code, OpenAI Codex and more 18789
95 Firecrawl firecrawl Open-source web scraping API with JavaScript rendering 3008
96 SearXNG searxng Privacy-respecting metasearch engine 8011
97 Plausible plausible Open-source web analytics platform (ClickHouse + PostgreSQL) 3200
98 Ntfy ntfy Self-hosted push notification server with pub/sub topics, iOS/Android apps, and attachments 8005
99 Mailpit mailpit Email testing tool for developers (fake SMTP server with web UI) 8025
100 Docker-Mailserver mailserver Full-featured mail server (SMTP, IMAP, antispam, antivirus) 25
101 Listmonk listmonk Self-hosted newsletter and mailing list manager 9000
102 Cloudflare-Tunnel cloudflared Secure tunnel to expose services without opening ports
103 Headscale headscale Self-hosted VPN server (Tailscale control server) with WireGuard 8019
104 Wetty wetty Web-based SSH terminal for secure host access 3033
105 RustDesk-Server rustdesk Open-source remote desktop server 21115

Project Structure

  ______
./ hal /
│
├─ src/
│  ├── cli/                    # Command-line interface
│  ├── core/                   # Core application logic
│  ├── distribution/           # OS-specific installation strategies
│  ├── services/               # Service implementations
│  ├── templates/              # Configuration template system
│  └── utils/                  # Utility modules
│ 
├─ templates/                  # YAML configuration templates
│  ├── services/               # Service-specific templates
│  └── config/                 # System configuration templates
│ 
└─ tests/                      # Test suite
   ├── unit/                   # Unit tests
   └── integration/            # Integration tests

Documentation

For detailed installation instructions, development guides, and advanced configuration:

Technical Documentation
If you have inconvinients with an image consider could be connectivity by the moment. Besides, podman is more experimental.

About

Home Apps Labs (OnMind-HAL), your setup for HomeLab with containers in a machine like VPS (Virtual Private Server), Local VM or Cloud Instances (EC2)

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors