Skip to content

kolasokol/salsa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Salsa

GitHub last commit GitHub repo size Docker Kubernetes Terraform Proxmox Prometheus

A collection of infrastructure-as-code configs, Docker Compose stacks, Kubernetes manifests, and automation scripts for a homelab environment.

Full documentation: doc.tkweb.site


Repository Structure

salsa/
├── Docker/                     # Docker Compose stacks
│   ├── Deluge/                 # BitTorrent client (web UI :8112)
│   ├── GitLab/
│   │   ├── gitlab-linux/       # GitLab CE for Linux with auto-registering runner
│   │   └── gitlab-macos/       # GitLab CE for macOS with SSL + setup scripts
│   ├── Gitea/                  # Lightweight Git service + PostgreSQL + Adminer
│   ├── HA/                     # Home Assistant dashboard config
│   ├── Mysql/                  # MySQL 8.0 + Adminer
│   ├── Mysql_wordpress/        # WordPress + MySQL 8.0 + Adminer
│   ├── Postgres/               # PostgreSQL + Adminer
│   ├── Prometheus/             # Prometheus server + node_exporter scraping
│   ├── build_image_wp_sql/     # Custom WordPress + MySQL Docker images
│   ├── flaresolverr/           # Cloudflare bypass proxy
│   ├── graylog_remote_mongodb/ # Graylog Enterprise 6.1 + Datanode (remote MongoDB)
│   ├── mongoDB/                # MongoDB + Mongo Express with auth
│   ├── nextjs_to_docker_container/  # Dockerfile for Next.js app deployment
│   ├── prowlarr/               # Indexer manager for Sonarr/Radarr
│   └── radarr/                 # Movie collection manager
│
├── Homepage/                   # Homepage dashboard (gethomepage.dev)
│   ├── docker.yaml             # Docker integration config
│   ├── services.yaml           # Monitored services definition
│   ├── settings.yaml           # Theme and layout settings
│   └── widgets.yaml            # Dashboard widgets (weather, system stats)
│
├── InfluxDB/                   # InfluxDB integrations
│   └── HA_integration_configuration.yaml  # Home Assistant → InfluxDB 2.0
│
├── Kubernetes/                 # Kubernetes manifests
│   ├── k3s/                    # K3s-specific deployments
│   │   ├── doc3.0/             # Next.js docs app (3 replicas, LB)
│   │   ├── graylog/            # Graylog Enterprise StatefulSet (2 replicas)
│   │   ├── mongodb/            # MongoDB with PVC (2Gi)
│   │   ├── mysql_single_pvc_lb/# MySQL 8.0 with tuned config (10Gi PVC)
│   │   └── postgres/           # PostgreSQL 17 with local-path storage
│   ├── mongodb/                # MongoDB deployment (3 replicas)
│   ├── mysql/                  # MySQL deployment (3 replicas)
│   ├── nextjs/                 # Next.js app (3 replicas)
│   ├── nginx/                  # Nginx examples (deployment, service, combined)
│   ├── services/               # Service type examples (MetalLB, NodePort)
│   └── wordpress_mysql/        # WordPress + MySQL full stack with PVCs
│
├── Prometheus/                 # Standalone Prometheus config
│   └── prometheus.yml          # Scrape config for node_exporters
│
├── Proxmox/                    # Proxmox VE automation
│   ├── create_template_cloud-init.sh  # Ubuntu cloud-init template creator
│   └── Read.me
│
├── Unbound/                    # DNS resolver config
│   └── conf.conf               # DNS-over-TLS to Cloudflare (1.1.1.1)
│
├── terraform/                 # Terraform infrastructure-as-code
│   ├── k3s.tf                  # Proxmox K3s cluster (3 masters + 3 workers)
│   └── wsl.tf                  # WSL2 instance management
│
└── .github/
    └── dependabot.yml          # Weekly npm dependency updates

Technologies

Category Tools
Containers Docker, Docker Compose, K3s
Databases MySQL 8.0, PostgreSQL, MongoDB, InfluxDB 2.0
CI/CD GitLab CE + Runner, Gitea, Dependabot
Monitoring Prometheus, Graylog Enterprise, Glances
Infrastructure Proxmox VE, Terraform, Cloud-init
Web WordPress, Next.js, Nginx
Networking Unbound DNS (DoT), MetalLB
Media Radarr, Prowlarr, Deluge, FlareSolverr
Smart Home Home Assistant, Homepage dashboard

Prerequisites

Getting Started

  1. Clone the repository:

    git clone https://github.com/dedkola/salsa.git
    cd salsa
  2. Navigate to the desired stack and deploy:

    # Example: start a MySQL + Adminer stack
    cd Docker/Mysql
    docker compose up -d
    
    # Example: deploy nginx to K3s
    kubectl apply -f Kubernetes/nginx/combined_app_and_service.yaml
    
    # Example: provision K3s cluster via Terraform
    cd terraform
    terraform init && terraform apply
  3. Check the full documentation for detailed guides.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/add-new-stack)
  3. Commit your changes (git commit -m 'Add new stack')
  4. Push to the branch (git push origin feature/add-new-stack)
  5. Open a Pull Request

License

This project is open source.

About

A collection of infrastructure-as-code configs, Docker Compose stacks, Kubernetes manifests, and automation scripts for a homelab environment.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors