beclab / Olares

Olares - Open-Source SelfHosted Alternative to Public Clouds
https://www.olares.xyz/
Other
731 stars 17 forks source link
home-automation homelab kubernetes self-hosted
# Olares - Open-Source SelfHosted Alternative to Public Clouds [![Mission](https://img.shields.io/badge/Mission-Let%20people%20own%20their%20data%20again-purple)](#)
[![Last Commit](https://img.shields.io/github/last-commit/beclab/olares)](https://github.com/beclab/olares/commits/main) ![Build Status](https://github.com/beclab/olares/actions/workflows/release-daily.yaml/badge.svg) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/beclab/olares)](https://github.com/beclab/olares/releases) [![GitHub Repo stars](https://img.shields.io/github/stars/beclab/olares?style=social)](https://github.com/beclab/olares/stargazers) [![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.com/invite/BzfqrgQPDK) [![License](https://img.shields.io/badge/License-Olares-darkblue)](https://github.com/beclab/olares/blob/main/LICENSE.md)

Readme in English Readme in Chinese

https://github.com/user-attachments/assets/5ea2fe30-7bd2-49ed-be26-e12f1d5d8cb1

Build your local AI assistants, sync data across places, self-host your workspace, stream your own media, and more—all in your sovereign cloud made possible by Olares.

Website · Documentation · Download LarePass · Olares Apps · Olares Space

[!IMPORTANT]
We just finished our rebranding from Terminus to Olares recently. For more information, refer to our rebranding blog.

Table of Contents

Introduction

Transform your edge device into a sovereign cloud with Olares - a free, self-hosted alternative to public clouds. Powered by Kubernetes, Olares brings cloud-level capabilities to your home without compromising privacy or ease of use. By securely storing your data and accessing your self-hosted services from anywhere via Olares, you gain complete control over your digital life.

Typical use cases of Olares include:

🤖 Local AI: Host and run world-class open-source AI models locally, including large language models, image generation, and speech recognition. Create custom AI assistants that integrate seamlessly with your personal data and applications, all while ensuring enhanced privacy and control.

💻Personal data repository: Securely store, sync, and manage your photos, documents, and important files in a unified storage and access anywhere.

🛠️ Self-hosted workspace: Create a free, powerful workspace for your team or family with open source selfhosted alternatives.

🎥 Private media server: Host your own streaming services with your personal media collections.

🏡 Smart Home Hub: Create a central control point for your IoT devices and home automation.

🤝 User-owned decentralized social media: Easily install decentralized social media apps such as Mastodon, Ghost, and WordPress on Olares, allowing you to build a personal brand without the risk of being banned or paying platform commissions.

📚 Learning platform: Explore self-hosting, container orchestration, and cloud technologies hands-on.

Motivation and design

We believe the current state of the internet, where user data is centralized and exploited by monopolistic corporations, is deeply flawed. Our goal is to empower individuals with true data ownership and control.

Olares provides a next-generation decentralized Internet framework consisting of the following three integral components:

Tech stacks

Public clouds have IaaS, PaaS, and SaaS layers. Olares provides open-source alternatives to these layers.

Tech Stacks

Features

Olares offers a wide array of features designed to enhance security, ease of use, and development flexibility:

Feature comparison

To help you understand how Olares stands out in the landscape, we've created a comparison table that highlights its features alongside those of other leading solutions in the market.

Legend:

Olares Synology TrueNAS CasaOS Unraid
Source Code License Olares License Closed GPL 3.0 Apache 2.0 Closed
Built On Kubernetes Linux Kubernetes Docker Docker
Multi-Node
Build-in Apps ✅ (Rich desktop apps) ✅ (Rich desktop apps) ❌ (CLI) ✅ (Simple desktop apps) ✅ (Dashboard)
Free Domain Name
Auto SSL Certificate 🚀 🛠️ 🛠️ 🛠️
Reverse Proxy 🚀 🛠️ 🛠️ 🛠️
VPN Management 🚀 🛠️ 🛠️ 🛠️ 🛠️
Graded App Entrance 🚀 🛠️ 🛠️ 🛠️ 🛠️
Multi-User Management ✅ User management
🚀 Resource isolation
✅ User management
🛠️ Resource isolation
✅ User management
🛠️ Resource isolation
✅ User management
🛠️ Resource isolation
Single Login for All Apps 🚀
Cross-Node Storage 🚀 (Juicefs+
MinIO)
Database Solution 🚀 (Built-in cloud-native solution) 🛠️ 🛠️ 🛠️ 🛠️
Disaster Recovery 🚀 (MinIO's Erasure Coding) ✅ RAID ✅ RAID ✅ RAID ✅ Unraid Storage
Backup ✅ App Data
✅ User Data
✅ User Data ✅ User Data ✅ User Data ✅ User Data
App Sandboxing ❌ (K8S's namespace)
App Ecosystem ✅ (Official + third-party) ✅ (Majorly official apps) ✅ (Official + third-party submissions) ✅ Majorly official apps ✅ (Community app market)
Developer Friendly ✅ IDE
✅ CLI
✅ SDK
✅ Doc
✅ CLI
✅ SDK
✅ Doc
✅ CLI
✅ Doc
✅ CLI
✅ Doc
✅ Doc
Local LLM Hosting 🚀 🛠️ 🛠️ 🛠️ 🛠️
Local LLM app development 🚀 🛠️ 🛠️ 🛠️ 🛠️
Client Platforms ✅ Android
✅ iOS
✅ Windows
✅ Mac
✅ Chrome Plugin
✅ Android
✅ iOS
Client Functionality ✅ (All-in-one client app) ✅ (14 separate client apps)

Getting started

Refer to Getting Started Guide to spin up your Olares on Linux, Windows, Mac, or Raspberry Pi.

Project navigation

Olares consists of numerous code repositories publicly available on GitHub. The current repository is responsible for the final compilation, packaging, installation, and upgrade of the operating system, while specific changes mostly take place in their corresponding repositories.

The following table lists the project directories under Olares and their corresponding repositories. Find the one that interests you:

Framework components | Directory | Repository | Description | | --- | --- | --- | | [frameworks/app-service](https://github.com/beclab/olares/tree/main/frameworks/app-service) | | A system framework component that provides lifecycle management and various security controls for all apps in the system. | | [frameworks/backup-server](https://github.com/beclab/olares/tree/main/frameworks/backup-server) | | A system framework component that provides scheduled full or incremental cluster backup services. | | [frameworks/bfl](https://github.com/beclab/olares/tree/main/frameworks/bfl) | | Backend For Launcher (BFL), a system framework component serving as the user access point and aggregating and proxying interfaces of various backend services. | | [frameworks/GPU](https://github.com/beclab/olares/tree/main/frameworks/GPU) | | GPU sharing mechanism that allows multiple processes (or containers running on Kubernetes) to securely run on the same physical GPU concurrently, each having the whole GPU memory available. | | [frameworks/l4-bfl-proxy](https://github.com/beclab/olares/tree/main/frameworks/l4-bfl-proxy) | | Layer 4 network proxy for BFL. By prereading SNI, it provides a dynamic route to pass through into the user's Ingress. | | [frameworks/osnode-init](https://github.com/beclab/olares/tree/main/frameworks/osnode-init) | | A system framework component that initializes node data when a new node joins the cluster. | | [frameworks/system-server](https://github.com/beclab/olares/tree/main/frameworks/system-server) | | As a part of system runtime frameworks, it provides a mechanism for security calls between apps. | | [frameworks/tapr](https://github.com/beclab/olares/tree/main/frameworks/tapr) | | Olares Application Runtime components. | System-Level Applications and Services
System-Level Applications and Services | Directory | Repository | Description | | --- | --- | --- | | [apps/analytic](https://github.com/beclab/olares/tree/main/apps/analytic) | | Developed based on [Umami](https://github.com/umami-software/umami), Analytic is a simple, fast, privacy-focused alternative to Google Analytics. | | [apps/market](https://github.com/beclab/olares/tree/main/apps/market) | | This repository deploys the front-end part of the application market in Olares. | | [apps/market-server](https://github.com/beclab/olares/tree/main/apps/market-server) | | This repository deploys the back-end part of the application market in Olares. | | [apps/argo](https://github.com/beclab/olares/tree/main/apps/argo) | | A workflow engine for orchestrating container execution of local recommendation algorithms. | | [apps/desktop](https://github.com/beclab/olares/tree/main/apps/desktop) | | The built-in desktop application of the system. | | [apps/devbox](https://github.com/beclab/olares/tree/main/apps/devbox) | | An IDE for developers to port and develop Olares applications. | | [apps/LarePass](https://github.com/beclab/olares/tree/main/apps/LarePass) | | A free alternative to 1Password and Bitwarden for teams and enterprises of any size Developed based on [Padloc](https://github.com/padloc/padloc). It serves as the client that helps you manage DID, Olares ID, and Olares devices. | | [apps/files](https://github.com/beclab/olares/tree/main/apps/files) | | A built-in file manager modified from [Filebrowser](https://github.com/filebrowser/filebrowser), providing management of files on Drive, Sync, and various Olares physical nodes. | | [apps/notifications](https://github.com/beclab/olares/tree/main/apps/notifications) | | The notifications system of Olares | | [apps/profile](https://github.com/beclab/olares/tree/main/apps/profile) | | Linktree alternative in Olares| | [apps/rsshub](https://github.com/beclab/olares/tree/main/apps/rsshub) | | A RSS subscription manager based on [RssHub](https://github.com/DIYgod/RSSHub). | | [apps/settings](https://github.com/beclab/olares/tree/main/apps/settings) | | Built-in system settings. | | [apps/system-apps](https://github.com/beclab/olares/tree/main/apps/system-apps) | | Built based on the _kubesphere/console_ project, system-service provides a self-hosted cloud platform that helps users understand and control the system's runtime status and resource usage through a visual Dashboard and feature-rich ControlHub. | | [apps/wizard](https://github.com/beclab/olares/tree/main/apps/wizard) | | A wizard application to walk users through the system activation process. |
Third-party Components and Services | Directory | Repository | Description | | --- | --- | --- | | [third-party/authelia](https://github.com/beclab/olares/tree/main/third-party/authelia) | | An open-source authentication and authorization server providing two-factor authentication and single sign-on (SSO) for your applications via a web portal. | | [third-party/headscale](https://github.com/beclab/olares/tree/main/third-party/headscale) | | An open source, self-hosted implementation of the Tailscale control server in Olares to manage Tailscale in LarePass across different devices. | | [third-party/infisical](https://github.com/beclab/olares/tree/main/third-party/infisical) | | An open-source secret management platform that syncs secrets across your teams/infrastructure and prevents secret leaks. | | [third-party/juicefs](https://github.com/beclab/olares/tree/main/third-party/juicefs) | | A distributed POSIX file system built on top of Redis and S3, allowing apps on different nodes to access the same data via POSIX interface. | | [third-party/ks-console](https://github.com/beclab/olares/tree/main/third-party/ks-console) | | Kubesphere console that allows for cluster management via a Web GUI. | | [third-party/ks-installer](https://github.com/beclab/olares/tree/main/third-party/ks-installer) | | Kubesphere installer component that automatically creates Kubesphere clusters based on cluster resource definitions. | | [third-party/kube-state-metrics](https://github.com/beclab/olares/tree/main/third-party/kube-state-metrics) | | kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects. | | [third-party/notification-mananger](https://github.com/beclab/olares/tree/main/third-party/notification-manager) | | Kubesphere's notification management component for unified management of multiple notification channels and custom aggregation of notification content. | | [third-party/predixy](https://github.com/beclab/olares/tree/main/third-party/predixy) | | Redis cluster proxy service that automatically identifies available nodes and adds namespace isolation. | | [third-party/redis-cluster-operator](https://github.com/beclab/olares/tree/main/third-party/redis-cluster-operator) | | A cloud-native tool for creating and managing Redis clusters based on Kubernetes. | | [third-party/seafile-server](https://github.com/beclab/olares/tree/main/third-party/seafile-server) | | The backend service of Seafile (Sync Drive) for handling data storage. | | [third-party/seahub](https://github.com/beclab/olares/tree/main/third-party/seahub) | | The front-end and middleware service of Seafile (Sync Drive) for handling file sharing, data synchronization, etc. | | [third-party/tailscale](https://github.com/beclab/olares/tree/main/third-party/tailscale) | | Tailscale has been integrated in LarePass of all platforms. |
Additional libraries and components | Directory | Repository | Description | | --- | --- | --- | | [build/installer](https://github.com/beclab/olares/tree/main/build/installer) | | The template for generating the installer build. | | [build/manifest](https://github.com/beclab/olares/tree/main/build/manifest) | | Installation build image list template. | | [libs/fs-lib](https://github.com/beclab/olares/tree/main/libs) | | The SDK library for the iNotify-compatible interface implemented based on JuiceFS. | | [scripts](https://github.com/beclab/olares/tree/main/scripts) | | Assisting scripts for generating the installer build. |

Contributing to Olares

We are welcoming contributions in any form:

Community & contact

Staying ahead

Star the Olares project to receive instant notifications about new releases and updates.

star us

Special thanks

The Olares project has incorporated numerous third-party open source projects, including: Kubernetes, Kubesphere, Padloc, K3S, JuiceFS, MinIO, Envoy, Authelia, Infisical, Dify, Seafile,HeadScale, tailscale, Redis Operator, Nitro, RssHub, predixy, nvshare, LangChain, Quasar, TrustWallet, Restic, ZincSearch, filebrowser, lego, Velero, s3rver, Citusdata.