ย
ย
Welcome! Batteries Included is your all-in-one platform for building and running modern applications. We take the complexity out of cloud infrastructure, giving you production-ready capabilities through an intuitive and easy-to-use interface.
-
๐ Launch Production-Ready Infrastructure in Minutes
- Deploy databases, monitoring, and web services with just a few clicks
- Automatic scaling, high availability, and security out of the box
- Built on battle-tested open source technologies like Kubernetes
-
๐ป Focus on Building, Not Infrastructure
- No more wrestling with YAML or complex configurations
- Automated setup of best practices for security, monitoring, and operations
- Unified interface for managing all your services
- Runs wherever you want it to!
-
๐ข Enterprise-Grade Features, Developer-Friendly Interface
- AI/ML capabilities with integrated Jupyter notebooks and vector databases
- Automated PostgreSQL, Redis, and MongoDB deployment and management
- Built-in monitoring with Grafana dashboards and VictoriaMetrics
- Secure networking with automatic SSL/TLS certificate management
- OAuth/SSO integration with Keycloak
The fastest way to experience Batteries Included:
- Visit batteriesincl.com and create an account
- Choose your installation type (cloud, local, or existing cluster)
- Run the provided installation command
- Access your ready-to-use infrastructure dashboard
- ๐ PostgreSQL with automated backups and monitoring
- โก๏ธ Redis for caching and message queues
- ๐ MongoDB-compatible FerretDB
- ๐ฏ Vector database capabilities with pgvector
- ๐ Jupyter notebooks with pre-configured environments
- ๐ค Ollama for local LLM deployment (including DeepSeek, Phi-2, Nomic, and more)
- ๐ฎ GPU support and scaling (coming soon)
- ๐ Automated deployment and scaling
- ๐ Built-in SSL/TLS certificate management
- โ๏ธ Load balancing and traffic management
- ๐ Zero-downtime updates and serverless deployment
- ๐ก๏ธ Automated certificate management
- ๐ OAuth/SSO integration
- ๐ Network policies and mTLS
- ๐๏ธ Secure secret management
- ๐ Pre-configured Grafana dashboards
- ๐ Metrics collection with VictoriaMetrics
- ๐ Monitor all your clusters from one place!
If you want to try Batteries Included without creating an account, you can run it locally. Note that the installation will stop working after a few hours without being able to report status.
- Download
bi
from the latest GitHub release - Ensure your machine has Docker or compatible software running and configured (Linux is best supported)
- From
master
, runbi start bootstrap/local.spec.json
To get started developing or changing the code, make sure your operating system is set up and ready to go. We recommend using a Linux machine, but our code should work on any system with a docker daemon (or compatible) and a Unix-like shell. We'll need a few dependencies, ASDF, and then to start a kubernetes cluster configured for development.
Depending on your Linux distribution, you'll need to install the following dependencies:
For Ubuntu/apt-based systems:
sudo apt-get install -y docker.io build-essential curl git cmake \
libssl-dev pkg-config autoconf \
m4 libncurses5-dev inotify-tools direnv jq
# Building and Testing deps not needed for most uses
sudo apt-get install -y chromium-browser chromium-chromedriver
For Fedora/dnf-based systems:
sudo dnf install -y docker gcc gcc-c++ make curl git \
cmake openssl-devel pkgconfig autoconf m4 ncurses-devel \
inotify-tools direnv jq
# Building/Testing deps
sudo dnf install -y chromium chromedriver
After installing the dependencies, ensure Docker is enabled and your user has the right privileges:
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp docker
For MacOS you will need to install the following dependencies in addition to docker desktop or podman.
brew install cmake flock direnv
asdf is a version manager for multiple languages. We use
it to manage the tools that are useful in the project. You will need to install
asdf
and a few plugins:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
Then add the following to your bash profile (other shells will vary slightly):
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
eval "$(direnv hook bash)"
Then install all the needed plugins:
asdf plugin add erlang
asdf plugin add elixir
asdf plugin add nodejs
asdf plugin add golang
asdf plugin add goreleaser
asdf plugin add kubectl
asdf plugin add shfmt
asdf plugin add awscli
asdf plugin add kind
asdf install
This monorepo contains multiple parts that come together to build the Batteries
Included platform. bix
is our development tool that helps manage the
different parts of the project.
TLDR: bix local bootstrap && bix local dev
static
contains the code that builds and deploys
Batteries Included.
Public posts are in static/src/content/posts
.
There are other docs pages in static/src/content/docs
.
This is the main directory. It uses the
Phoenix framework, and there are several
different Elixir applications in platform_umbrella/apps
while the global
configuration is in platform_umbrella/config
.
This is the application for shared components and UI. It is used in Control Server Web and Home Server Web, and runs an instance of Storybook in development.
This is the main ecto repo for the control server that gets installed on the customer's kubernetes.
This is the phoenix web application. It's mostly Phoenix.Component
,
Phoenix.LiveComponent
and Phoenix.LiveView
. Extensively using
Tailwind CSS as the styling.
This is the code for getting the billing usage and storing it. It will be the centralized home server that all clusters report into for version updates and billing.
This is the UI for billing, and starting new clusters.
To start the development environment:
- Initialize the Kind Kubernetes cluster, PostgreSQL services, and seed the databases:
bix local bootstrap
- Launch the web servers and background processes:
bix local dev
This will start three web servers:
- http://control.127-0-0-1.batrsinc.co:4000 - Control server
- http://home.127-0-0-1.batrsinc.co:4100 - Home base server
- http://common.127-0-0-1.batrsinc.co:4200 - Common UI server
The bix local dev
command also opens an IEx console where you can explore the
process status.
To open the project in VSCode:
- Navigate to the project directory:
cd batteries-included
- Launch VSCode with the workspace configuration:
code .vscode/everything.code-workspace