Domus is a highly opitionated distribution of docker-compose files to deploy a home server with a single command.
Some of the features included are:
- Portainer for managing the containers.
- Homarr for the dashboard/admin panel.
- Heimdall for the home page.
- Shiori for bookmarks.
- Paperless for documents.
- Mealie for recipes and meal planning.
- Home Assistant for home automation.
- Plex for media streaming.
- Calibre Web for ebooks and comics.
- Audiobookshelf for audiobooks and podcasts.
npx @central-factory/domus
# or
npm i -g @central-factory/domus
domus
You can pass the -a flag to the setup command to directly install a set of applications.
domus -a Books,Audiobooks
First of all, you need a copy of this repository.
npx degit aitorllj93/domus my-domus
cd my-domus
npm install
npm link
You can modify the templates in portainer/templates
folder to fit your needs.
You can also customize the default applications to install in lib/node/constants.js
.
Then, you can run the setup with:
domus
Domus encourages some patterns found in other similar projects such as CasaOS to make the setup and integrations as easy as possible.
The docker-compose files are located in the portainer/templates
folder. Each service has its own folder with the docker-compose.yml
file and optionally a data
folder for the persistent data.
The docker-compose file is a standard docker-compose file with some extra features under the x-domus
keys.
All the volumes are mounted under the /DATA
folder in the host machine.
Config and databases are stored in the /DATA/AppData
folder, with the name of the service as the folder name.
Media is stored in the /DATA/Media
folder, and structured based on the type of media.
/DATA/Media/Audiobooks
/DATA/Media/Books
/DATA/Media/Documents
/DATA/Media/Movies
/DATA/Media/Music
/DATA/Media/Podcasts
/DATA/Media/TV Shows