Skip to content

jmpa-io/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

88 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

homelab

+ ๐Ÿ  A collection of "things" that manage my homelab.

! PLEASE NOTE:
! This repository is a work-in-progress. Use at your own risk!

GitHub License CI/CD Codecov

๐Ÿค” Why set up this homelab?

After moving to the other side of the world, I found myself in a job market where higher-level roles require different skills than Iโ€™m used to. To adapt to this change, I've created this homelab setup to expand my knowledge from the cloud to on-prem.

I'm primarly a DevOps Engineer who has been focused on the cloud, but this setup gives me the option to easily run my own services, written in various languages, that I'd like to try out.

This is my first time setting up a homelab, so any feedback would be greatly appreciated!

๐Ÿ–ผ๏ธ Architecture

โœ‹๐Ÿผ Click here to hide.

๐Ÿ“„ Prerequisites

This repository needs a few values stored in AWS SSM Parameter Store to function properly.

Generate an API token for Proxmox.

  1. Login to Proxmox UI.
  2. Navigate to Datacentre -> Permissions -> API Tokens -> Add.
  3. Create a new token with the name proxmox-api-token; Ensure Privilage Separation, if using the root@pam user.
  4. Copy the token value.
  5. Run the following, replacing <token> with the token value you've copied:
aws ssm put-parameter --name /homelab/proxmox/api-token --type SecureString --overwrite --value <token>

๐Ÿ—๏ธ Getting started

To get started with this repository, you need a Proxmox host. If you're unsure how to do this, click here.

This setup uses 3 Proxmox hosts, as of writing, which is dynamically configured in the inventory/main.py. You would need to configure this file to match the number of servers you're running. See the inventory/README.md for more information.

This repository also uses Ansible - you can see a collection of custom roles under ./roles/ that are used in both the ./proxmox-hosts/ & ./proxmox-services/ directories.

Once this all makes sense, and you've configured the inventory/main.py for your needs, using a terminal, you can run:

make run-playbook

And this repository should do the rest.

# You can also run:
make
# or
make help
# To see a list of available commands in this repository.

Setting up k3s:

๐Ÿ“– References

Check out ./docs/references.md for the list of references I've used to create and setup this repository - there's a lot.

๐Ÿชช License

This work is published under the MIT license.

Please see the LICENSE file for details.

About

๐Ÿ  A collection of "things" that manage my homelab.

Topics

Resources

License

Stars

Watchers

Forks