Exshome
DIY Elixir-based smart home.
System dependencies
Project goals
- Mobile-friendly
- Extensibility
- Test coverage
- Should support different Single Board Computers
Getting started with development
-
Install dependencies with
mix deps.get -
Setup database
mix ecto.setup -
Start Phoenix endpoint with
mix phx.serveror inside IEx withiex -S mix phx.server. Now you can visitlocalhost:4000from your browser.
Launching as a script
You can use bin/exshome to start an application. It is an executable Elixir script. It downloads Exshome and starts the application.
You can download the latest version here:
wget https://raw.githubusercontent.com/exshome/exshome/main/bin/exshome
chmod +x exshome
./exshomeThis script supports these environment variables:
EXSHOME_VERSION- Exshome version. You can get the latest available version at hex.pmEXSHOME_HOST- Host to listnen on, default is “0.0.0.0”.EXSHOME_PORT- Application port, default is “5000”.EXSHOME_ROOT- Path where all application data resides, default is “${HOME}/.exshome”.
Caveats
- UNIX domain socket length is limited to about 100 bytes. Application uses these sockets to communicate with MPV. It will not work if the path is larger.
Security considerations
Right now Exshome is designed to run in a home network, so it has no auth. It can be dangerous to open it for a whole Internet.