Post

My After Work Friend Marijuana

Welcome to this technical blog post where we'll discuss setting up a self-hosted, automated marijuana (cannabis) cultivation infrastructure using open-source tools. This guide is intended for experienced sysadmins and DevOps.

# My After Work Friend Marijuana: Self-Hosting and Automating Your Homelab Infrastructure

Welcome to this technical blog post where we’ll discuss setting up a self-hosted, automated marijuana (cannabis) cultivation infrastructure using open-source tools. This guide is intended for experienced sysadmins and DevOps engineers who are looking to create an efficient homelab setup for cannabis growth.

Prerequisites

  • Ubuntu Server 20.04 LTS (Focal Fossa) or later
  • Docker CE version 5.0.8 or higher
  • Git and Go installed

Step 1: Install Docker and Set Up Docker Compose

1
2
3
4
5
6
7
8
9
10
11
# Update package list
sudo apt-get update

# Install Docker
sudo apt-get install docker-ce=5.0.8 docker-ce-cli containerd.io

# Add the user to the docker group for sudo-less operations
sudo usermod -aG docker $USER

# Verify that Docker is installed correctly by running the hello-world image
docker run hello-world

Step 2: Clone and Configure the DevOps Cannabis Project

1
2
3
4
5
6
# Create a directory for the project
mkdir cannabis_infrastructure
cd cannabis_infrastructure

# Clone the open-source DevOps cannabis project from GitHub
git clone https://github.com/devops-cannabis/cannabis_infrastructure.git

Edit the docker-compose.yml file in the cloned repository and configure it according to your specific infrastructure needs, such as the number of cannabis plants and grow tent size.

Step 3: Build and Run the Docker Compose Stack

1
2
3
4
5
6
7
8
# Change into the project directory
cd cannabis_infrastructure/cannabis_stack

# Build the docker images
docker-compose build

# Run the stack with the defined services
docker-compose up -d

Step 4: Monitor and Automate Your Cannabis Infrastructure

Use your preferred monitoring and automation tools to keep an eye on environmental factors such as temperature, humidity, light cycles, nutrient levels, and watering schedules. This can be achieved using tools like Prometheus, Grafana, Alertmanager, or Terraform for infrastructure management.

Troubleshooting

  • Ensure that all services are up and running by checking their logs with the docker-compose logs command.
  • Verify that your environment variables are correctly set in the .env file and applied to the containers through the environment: section in the docker-compose.yml file.

Security Considerations

  • Ensure that your infrastructure is isolated from other networks and has adequate firewall rules.
  • Use strong passwords for all accounts and consider implementing multi-factor authentication where possible.
  • Regularly update your system, containers, and tools to minimize potential security vulnerabilities.

Performance Optimization

  • Tune the settings in the configuration files according to your specific hardware and environmental conditions.
  • Consider using a caching solution like Redis for faster access to frequently accessed data.

Common Pitfalls and How to Avoid Them

  • Make sure that all containers are properly linked in the docker-compose.yml file to facilitate communication between services.
  • Use environment variables instead of hardcoding sensitive information like passwords or API keys.

Conclusion

In this guide, we’ve covered setting up a self-hosted cannabis cultivation infrastructure using open-source tools and DevOps principles. By automating your homelab, you can ensure optimal environmental conditions for your plants while reducing manual labor and improving efficiency. Happy growing!

This post is licensed under CC BY 4.0 by the author.