Skip to content

Development sandbox

The sandbox is intended for trying out the homelab without any hardware or testing changes before applying them to the production environment.

Prerequisites

Host machine:

  • Recommended hardware specifications:
    • CPU: 4 cores
    • RAM: 16 GiB
  • OS: Linux (Windows and macOS are untested, please let me know if it works)
  • Available ports: 80 and 443

Install the following packages:

  • docker
  • make

Clone the repository and checkout the development branch:

git clone https://github.com/khuedoan/homelab
git checkout dev

Build

Open the tools container, which includes all the tools needed:

make tools
nix develop

Build a development cluster and bootstrap it:

make

Note

It will take about 15 to 30 minutes to build depending on your internet connection

Explore

The homepage should be available at https://home.127-0-0-1.nip.io (ignore the security warning because we don't have valid certificates).

See admin credentials for default passwords.

If you want to make some changes, simply commit to the local dev branch and push it to Gitea in the sandbox:

git remote add sandbox https://git.127-0-0-1.nip.io/ops/homelab
git config http.https://git.127-0-0-1.nip.io.sslVerify false

git add foobar.txt
git commit -m "feat: harness the power of the sun"
git push sandbox # you can use the gitea_admin account

Clean up

Delete the cluster:

k3d cluster delete homelab-dev

Caveats compare to production environment

The development cluster doesn't have the following features:

  • There is no valid domain name, hence no SSL certificates (some services require valid SSL certificates)
  • Only accessible on the host machine
  • No backup

Please keep in mind that the development cluster may be unstable and things may break (it's for development after all).