Welcome to the repository for my home lab! This repo will house the setup and configuration files for the services running in my home lab. For more details about my current home lab and the devices part of it, check out the home lab page in my digital garden.
This repo contains the following directories at the base for different reasons:
| Directory | Purpose |
|---|---|
compose |
Storing Docker Compose files related to the services I'm currently self-hosting |
scripts |
General scripts related to the home lab that I use to run on my devices |
The compose directory contains applications separated by directories, such that the files needed to set them up and configure them are located in their own respective directories. As of now, almost all of the apps on my server have been converted to using Docker Compose for ease.
-
Clone the repository or download it as a ZIP file:
git clone https://github.com/arashnrim/homelab.git cd homelab -
Navigate into the directory of the services you are interested in.
cd compose/production/joplin-server # As an example — if you'd like to set up Joplin Server
-
Review any guidance messages, usually the README file, for any additional notes. This may include tasks like setting up environment variables, so don't overlook this!
-
Use Docker Compose to build the app:
docker compose up -d
These are the defining principles guiding the setup and maintenance of this home lab:
- Version pinning — where possible, pin to a specific version tag in preference to the
latesttag. This ensures consistency and prevents issues where newer versions may introduce breaking changes or instability. - Documented in public — any thoughts, experiences, and troubleshooting steps are documented in this repository in the form of README files or equivalent documentation.
Since the contents of this repo is meant for use in my home lab, this repo is not accepting contributions. You're welcome to contact me through other means though if you'd like to provide an input!
This repo is made open-source with the MIT Licence, meaning that you are allowed to modify and distribute the source code as well as use it for private and commercial use provided that the licence and copyright notices are retained. For more information, visit the link above to learn more about what is permitted by the licence.