Standartized docker-compose files. Added some documentation (AI generated)

This commit is contained in:
2025-08-23 23:18:02 +02:00
parent a0d5ffdd29
commit 2bb9e2541a
20 changed files with 550 additions and 304 deletions

18
Ansible/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Ansible Playbooks
This directory contains Ansible playbooks for automating server configuration and management tasks.
## Playbooks
- **apt_upgrade.yml**: This playbook updates all packages on a Debian/Ubuntu server.
- **zabbix_agent_upgrade.yml**: This playbook upgrades the Zabbix agent on a server.
## Usage
To use these playbooks, you will need to have Ansible installed on your control machine. You will also need to have an inventory file that defines the hosts you want to manage.
Once you have Ansible and an inventory file set up, you can run a playbook using the following command:
```
ansible-playbook -i <inventory_file> <playbook>.yml
```

View File

@@ -1 +1,38 @@
All yaml configs using stack.env variables, as they was designed to be used with Portainer # Docker Projects
This directory contains Docker Compose setups for various self-hosted applications. Each project is in its own directory and includes a `docker-compose.yaml` file and any other necessary configuration files.
Most of these configurations use `.env` files for environment variables. These were designed to be used with Portainer, but can be used with `docker-compose` as well.
## Projects
- [Bookstack](bookstack/README.md)
- [DDNS Cloudflare](ddns-cloudflare/README.md)
- [Garmin Grafana](garmin-grafana/README.md)
- [Guacamole](guacamole/README.md)
- [Heimdall](heimdall/README.md)
- [Homepage](homepage/README.md)
- [Immich](immich/README.md)
- [IT-Tools](it-tools/README.md)
- [Mealie](mealie/README.md)
- [n8n](n8n/README.md)
- [Nextcloud](nextcloud/README.md)
- [Nginx Proxy Manager](nginx-proxy-manager/README.md)
- [pgAdmin](pgadmin/README.md)
- [Portainer](portainer/README.md)
- [Seafile](seafile/README.md)
- [Transmission (haugene-openvpn)](transmission/haugene-openvpn/README.md)
- [Transmission (lscr.io)](transmission/lscr.io/README.md)
- [Vaultwarden](vaultwarden/README.md)
- [Webtop](webtop/README.md)
## Usage
To use these projects, you will need to have Docker and Docker Compose installed. You will also need to create a `.env` file in each project directory with the required environment variables.
Once you have Docker and Docker Compose set up and the `.env` file created, you can start a project using the following command:
```
cd <project_directory>
docker-compose up -d
```

View File

@@ -0,0 +1,47 @@
# Bookstack
[Bookstack](https://www.bookstackapp.com/) is a simple, self-hosted, easy-to-use platform for organizing and storing information.
## Docker Compose Setup
This directory contains a Docker Compose setup for Bookstack.
### Services
- **bookstack**: The Bookstack application itself.
- **bookstack_database**: A MariaDB database for Bookstack.
### Volumes
- `${PATH_TO_CONFIG}`: Stores the Bookstack configuration files.
- `${PATH_TO_DB}`: Stores the MariaDB database files.
### Ports
- `6875:80`: The Bookstack application is accessible on port 6875.
## Usage
1. Create a `.env` file with the following variables:
```
# Password for bookstack MySQL user
DB_USER_PASS=<your_strong_pass>
# Password for root MySQL user
DB_ROOT_PASS=<your_strongest_pass>
# Directory, where the bookstack itself will store the files
PATH_TO_CONFIG=/path/to/bookstack/config
# Directory, where MySQL data will be stored
PATH_TO_DB=/path/to/db/data
# Your timezone
TZ=Europe/Warsaw
# The IP:port or URL your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com
APP_URL=https://bookstack.example.com
```
2. Run `docker-compose up -d` to start the containers.

View File

@@ -0,0 +1,31 @@
# Cloudflare DDNS
This directory contains a Docker Compose setup for a Cloudflare DDNS client.
This service will automatically update your Cloudflare DNS records with your public IP address.
## Docker Compose Setup
### Services
- **cloudflare-ddns**: The Cloudflare DDNS client.
### Environment Variables
- `CLOUDFLARE_API_TOKEN`: Your Cloudflare API token.
- `DOMAINS`: A comma-separated list of domains to update.
- `PROXIED`: Whether or not to proxy the domains through Cloudflare.
## Usage
1. Create a `.env` file with the following variables:
```
# Cloudflare API key. User -> My Profile -> API tokens
CLOUDFLARE_API_TOKEN=your_api_key
# Cloudflare zone, which will be used. Dashboard -> Web Sites
DOMAINS=your_domains
```
2. Run `docker-compose up -d` to start the container.

View File

@@ -0,0 +1,41 @@
# Garmin Grafana
This directory contains a Docker Compose setup for a Garmin Grafana dashboard.
This setup will fetch your Garmin Connect data and store it in an InfluxDB database. You can then use Grafana to visualize the data.
## Docker Compose Setup
### Services
- **garmin-fetch-data**: Fetches your Garmin Connect data and stores it in InfluxDB.
- **influxdb**: An InfluxDB database for storing your Garmin Connect data.
- **grafana**: A Grafana instance for visualizing your Garmin Connect data.
### Volumes
- `${GARMINCONNECT_TOKENS}`: Stores the Garmin Connect tokens.
- `influxdb_data`: Stores the InfluxDB database files.
- `grafana_data`: Stores the Grafana configuration files.
### Ports
- `8086:8086`: The InfluxDB API is accessible on port 8086.
- `3000:3000`: The Grafana web interface is accessible on port 3000.
## Usage
1. Create a `.env` file with the following variables:
```
# Your Garmin Connect email address
GARMINCONNECT_EMAIL=<your_email>
# Your Garmin Connect password, base64 encoded
GARMINCONNECT_PASSWORD=<your_base64_encoded_password>
# Path to a directory where the Garmin Connect tokens will be stored
GARMINCONNECT_TOKENS=/path/to/garminconnect/tokens
```
2. Run `docker-compose up -d` to start the containers.

View File

@@ -0,0 +1,30 @@
# Guacamole
[Guacamole](https://guacamole.apache.org/) is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
This directory contains a Docker Compose setup for Guacamole.
## Docker Compose Setup
### Services
- **guacamole**: The Guacamole application.
### Volumes
- `${PATH_TO_CONFIG}`: Stores the Guacamole configuration files.
### Ports
- `8080:8080`: The Guacamole web interface is accessible on port 8080.
## Usage
1. Create a `.env` file with the following variables:
```
# Path to a directory where the Guacamole configuration files will be stored
PATH_TO_CONFIG=/path/to/guacamole/config
```
2. Run `docker-compose up -d` to start the container.

24
Docker/heimdall/README.md Normal file
View File

@@ -0,0 +1,24 @@
# Heimdall
[Heimdall](https://heimdall.site/) is a dashboard for all your web applications.
This directory contains a Docker Compose setup for Heimdall.
## Docker Compose Setup
### Services
- **heimdall**: The Heimdall application.
### Volumes
- `/home/mbuz/docker/heimdall/config:/config`: Stores the Heimdall configuration files. You should change this to a path on your own system.
### Ports
- `80:80`: The Heimdall web interface is accessible on port 80.
- `443:443`: The Heimdall web interface is accessible on port 443.
## Usage
1. Run `docker-compose up -d` to start the container.

View File

@@ -1,9 +1,27 @@
# Max's Homelab # Max's Homelab
Welcome to my personal Homelab repository! This repository contains various projects that I use, have used, or plan to use in my Homelab. Welcome to my personal Homelab repository! This repository contains various projects that I use, have used, or plan to use in my Homelab. At the moment I have a Lenovo P520 running as a server and I am experimenting a lot. Use with caution, I am not responsible for your data. But feel free to explore and use the resources provided to enhance your home lab setup.
At the moment I have a Lenovo P520 running as a server and I am experimenting a lot. Use with caution, I am not responsible for your data. But feel free to explore and use the resources provided to enhance your home lab setup.
- **Docker Projects**: Pre-configured Docker containers for different applications and services. Sample configuration files for this services. ## Overview
- **Scripting & Automation**: Useful scripts for automation and management tasks, Ansible playbooks.
Contributions and suggestions are always welcome! This repository is organized into the following directories:
- **Ansible**: Contains Ansible playbooks for automating server configuration and management tasks.
- **Docker**: Contains Docker Compose setups for various self-hosted applications.
- **Scripts**: Contains various scripts for system administration and automation.
## Docker Projects
This repository contains a collection of pre-configured Docker containers for different applications and services. Each Docker project is contained in its own directory and includes a `docker-compose.yaml` file and any other necessary configuration files.
For more information about the Docker projects, please see the [Docker README](Docker/README.md).
## Scripting & Automation
This repository also contains a collection of useful scripts for automation and management tasks, as well as Ansible playbooks.
For more information about the scripts and playbooks, please see the [Ansible README](Ansible/README.md) and the [Scripts README](Scripts/README.md).
## Contributions
Contributions and suggestions are always welcome! If you have any ideas for new projects or improvements to existing ones, please feel free to open an issue or submit a pull request.