From 4bde51cb96d6e74071bbd0b34096740c031d8e3f Mon Sep 17 00:00:00 2001 From: Maksym Buz Date: Sat, 23 Aug 2025 23:18:02 +0200 Subject: [PATCH] Standartized docker-compose files. Added some documentation (AI generated) --- README.md | 39 ++++++- bookstack/README.md | 47 ++++++++ ddns-cloudflare/README.md | 31 ++++++ .../{compose.yaml => docker-compose.yml} | 72 ++++++------- garmin-grafana/README.md | 41 +++++++ .../{compose.yaml => docker-compose.yml} | 102 +++++++++--------- guacamole/README.md | 30 ++++++ heimdall/README.md | 24 +++++ heimdall/{compose.yaml => docker-compose.yml} | 30 +++--- it-tools/{compose.yml => docker-compose.yml} | 12 +-- ...ld.compose.yaml => docker-compose.old.yml} | 64 +++++------ mealie/{compose.yaml => docker-compose.yml} | 42 ++++---- ...compose_old.yml => docker-compose.old.yml} | 40 +++---- .../{compose.yaml => docker-compose.yml} | 94 ++++++++-------- .../{compose.yml => docker-compose.yml} | 72 ++++++------- .../{compose.yml => docker-compose.yml} | 48 ++++----- .../{compose.yml => docker-compose.yml} | 20 ++-- ...docker-compose.yaml => docker-compose.yml} | 0 18 files changed, 509 insertions(+), 299 deletions(-) create mode 100644 bookstack/README.md create mode 100644 ddns-cloudflare/README.md rename ddns-cloudflare/{compose.yaml => docker-compose.yml} (97%) create mode 100644 garmin-grafana/README.md rename garmin-grafana/{compose.yaml => docker-compose.yml} (96%) create mode 100644 guacamole/README.md create mode 100644 heimdall/README.md rename heimdall/{compose.yaml => docker-compose.yml} (95%) rename it-tools/{compose.yml => docker-compose.yml} (96%) rename mealie/{old.compose.yaml => docker-compose.old.yml} (96%) rename mealie/{compose.yaml => docker-compose.yml} (96%) rename n8n/{compose_old.yml => docker-compose.old.yml} (96%) rename nextcloud/{compose.yaml => docker-compose.yml} (95%) rename transmission/haugene-openvpn/{compose.yml => docker-compose.yml} (97%) rename transmission/lscr.io/{compose.yml => docker-compose.yml} (96%) rename vaultwarden/{compose.yml => docker-compose.yml} (95%) rename webtop/{docker-compose.yaml => docker-compose.yml} (100%) diff --git a/README.md b/README.md index bba5b42..4306448 100644 --- a/README.md +++ b/README.md @@ -1 +1,38 @@ -All yaml configs using stack.env variables, as they was designed to be used with Portainer \ No newline at end of file +# 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 +docker-compose up -d +``` diff --git a/bookstack/README.md b/bookstack/README.md new file mode 100644 index 0000000..bfdc8cb --- /dev/null +++ b/bookstack/README.md @@ -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= + +# Password for root MySQL user +DB_ROOT_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. diff --git a/ddns-cloudflare/README.md b/ddns-cloudflare/README.md new file mode 100644 index 0000000..316eb34 --- /dev/null +++ b/ddns-cloudflare/README.md @@ -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. diff --git a/ddns-cloudflare/compose.yaml b/ddns-cloudflare/docker-compose.yml similarity index 97% rename from ddns-cloudflare/compose.yaml rename to ddns-cloudflare/docker-compose.yml index 348726f..f5af128 100644 --- a/ddns-cloudflare/compose.yaml +++ b/ddns-cloudflare/docker-compose.yml @@ -1,37 +1,37 @@ -services: - cloudflare-ddns: - image: favonia/cloudflare-ddns:latest - container_name: cloudflare-ddns - env_file: .env - # Choose the appropriate tag based on your need: - # - "latest" for the latest stable version (which could become 2.x.y - # in the future and break things) - # - "1" for the latest stable version whose major version is 1 - # - "1.x.y" to pin the specific version 1.x.y - network_mode: host - # This bypasses network isolation and makes IPv6 easier (optional; see below) - restart: always - # Restart the updater after reboot - user: "1000:1000" - # Run the updater with specific user and group IDs (in that order). - # You can change the two numbers based on your need. - read_only: true - # Make the container filesystem read-only (optional but recommended) - cap_drop: [all] - # Drop all Linux capabilities (optional but recommended) - security_opt: [no-new-privileges:true] - # Another protection to restrict superuser privileges (optional but recommended) - environment: - - CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN} - # Your Cloudflare API token - - DOMAINS=${DOMAINS} - # Your domains (separated by commas) - - PROXIED=true - # Tell Cloudflare to cache webpages and hide your IP (optional) -#networks: -# LAN0: -# external: true -# name: LAN0 -# Introduce custom Docker networks to the 'services' in this file. A common use case -# for this is binding one of the 'services' to a specific network interface available at +services: + cloudflare-ddns: + image: favonia/cloudflare-ddns:latest + container_name: cloudflare-ddns + env_file: .env + # Choose the appropriate tag based on your need: + # - "latest" for the latest stable version (which could become 2.x.y + # in the future and break things) + # - "1" for the latest stable version whose major version is 1 + # - "1.x.y" to pin the specific version 1.x.y + network_mode: host + # This bypasses network isolation and makes IPv6 easier (optional; see below) + restart: always + # Restart the updater after reboot + user: "1000:1000" + # Run the updater with specific user and group IDs (in that order). + # You can change the two numbers based on your need. + read_only: true + # Make the container filesystem read-only (optional but recommended) + cap_drop: [all] + # Drop all Linux capabilities (optional but recommended) + security_opt: [no-new-privileges:true] + # Another protection to restrict superuser privileges (optional but recommended) + environment: + - CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN} + # Your Cloudflare API token + - DOMAINS=${DOMAINS} + # Your domains (separated by commas) + - PROXIED=true + # Tell Cloudflare to cache webpages and hide your IP (optional) +#networks: +# LAN0: +# external: true +# name: LAN0 +# Introduce custom Docker networks to the 'services' in this file. A common use case +# for this is binding one of the 'services' to a specific network interface available at # Docker's host. This section is required for the 'networks' section of each 'services'. \ No newline at end of file diff --git a/garmin-grafana/README.md b/garmin-grafana/README.md new file mode 100644 index 0000000..dc70c17 --- /dev/null +++ b/garmin-grafana/README.md @@ -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 Garmin Connect password, base64 encoded +GARMINCONNECT_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. diff --git a/garmin-grafana/compose.yaml b/garmin-grafana/docker-compose.yml similarity index 96% rename from garmin-grafana/compose.yaml rename to garmin-grafana/docker-compose.yml index 8cc811b..ce53bf8 100644 --- a/garmin-grafana/compose.yaml +++ b/garmin-grafana/docker-compose.yml @@ -1,52 +1,52 @@ -services: - garmin-fetch-data: - restart: unless-stopped - image: thisisarpanghosh/garmin-fetch-data:latest - container_name: garmin-fetch-data - depends_on: - - influxdb - volumes: - - ${GARMINCONNECT_TOKENS}:/home/appuser/.garminconnect # (persistant tokens storage - garminconnect-tokens folder must be owned by 1000:1000) - environment: - - INFLUXDB_HOST=influxdb - - INFLUXDB_PORT=8086 - - INFLUXDB_USERNAME=influxdb_user - - INFLUXDB_PASSWORD=influxdb_secret_password - - INFLUXDB_DATABASE=GarminStats - - UPDATE_INTERVAL_SECONDS=300 - - LOG_LEVEL=INFO - - GARMINCONNECT_EMAIL=${GARMINCONNECT_EMAIL} - - GARMINCONNECT_BASE64_PASSWORD=${GARMINCONNECT_PASSWORD} # (must be base64 encoded) - - - influxdb: - restart: unless-stopped - container_name: influxdb - hostname: influxdb - environment: - - INFLUXDB_DB=GarminStats - - INFLUXDB_USER=influxdb_user - - INFLUXDB_USER_PASSWORD=influxdb_secret_password - - INFLUXDB_DATA_INDEX_VERSION=tsi1 - ports: - - '8086:8086' - volumes: - - influxdb_data:/var/lib/influxdb - image: 'influxdb:1.11' - - grafana: - restart: unless-stopped - container_name: grafana - hostname: grafana - environment: - - GF_SECURITY_ADMIN_USER=admin - - GF_SECURITY_ADMIN_PASSWORD=admin - volumes: - - grafana_data:/var/lib/grafana - ports: - - '3000:3000' - image: 'grafana/grafana:latest' - -volumes: - influxdb_data: +services: + garmin-fetch-data: + restart: unless-stopped + image: thisisarpanghosh/garmin-fetch-data:latest + container_name: garmin-fetch-data + depends_on: + - influxdb + volumes: + - ${GARMINCONNECT_TOKENS}:/home/appuser/.garminconnect # (persistant tokens storage - garminconnect-tokens folder must be owned by 1000:1000) + environment: + - INFLUXDB_HOST=influxdb + - INFLUXDB_PORT=8086 + - INFLUXDB_USERNAME=influxdb_user + - INFLUXDB_PASSWORD=influxdb_secret_password + - INFLUXDB_DATABASE=GarminStats + - UPDATE_INTERVAL_SECONDS=300 + - LOG_LEVEL=INFO + - GARMINCONNECT_EMAIL=${GARMINCONNECT_EMAIL} + - GARMINCONNECT_BASE64_PASSWORD=${GARMINCONNECT_PASSWORD} # (must be base64 encoded) + + + influxdb: + restart: unless-stopped + container_name: influxdb + hostname: influxdb + environment: + - INFLUXDB_DB=GarminStats + - INFLUXDB_USER=influxdb_user + - INFLUXDB_USER_PASSWORD=influxdb_secret_password + - INFLUXDB_DATA_INDEX_VERSION=tsi1 + ports: + - '8086:8086' + volumes: + - influxdb_data:/var/lib/influxdb + image: 'influxdb:1.11' + + grafana: + restart: unless-stopped + container_name: grafana + hostname: grafana + environment: + - GF_SECURITY_ADMIN_USER=admin + - GF_SECURITY_ADMIN_PASSWORD=admin + volumes: + - grafana_data:/var/lib/grafana + ports: + - '3000:3000' + image: 'grafana/grafana:latest' + +volumes: + influxdb_data: grafana_data: \ No newline at end of file diff --git a/guacamole/README.md b/guacamole/README.md new file mode 100644 index 0000000..81d5301 --- /dev/null +++ b/guacamole/README.md @@ -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. diff --git a/heimdall/README.md b/heimdall/README.md new file mode 100644 index 0000000..8daa251 --- /dev/null +++ b/heimdall/README.md @@ -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. diff --git a/heimdall/compose.yaml b/heimdall/docker-compose.yml similarity index 95% rename from heimdall/compose.yaml rename to heimdall/docker-compose.yml index 74e1811..65a4b9e 100644 --- a/heimdall/compose.yaml +++ b/heimdall/docker-compose.yml @@ -1,16 +1,16 @@ -version: "2.1" - -services: - heimdall: - image: lscr.io/linuxserver/heimdall:latest - container_name: heimdall - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Warsaw - volumes: - - /home/mbuz/docker/heimdall/config:/config - ports: - - 80:80 - - 443:443 +version: "2.1" + +services: + heimdall: + image: lscr.io/linuxserver/heimdall:latest + container_name: heimdall + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Warsaw + volumes: + - /home/mbuz/docker/heimdall/config:/config + ports: + - 80:80 + - 443:443 restart: unless-stopped \ No newline at end of file diff --git a/it-tools/compose.yml b/it-tools/docker-compose.yml similarity index 96% rename from it-tools/compose.yml rename to it-tools/docker-compose.yml index 3b17aab..30aacf0 100644 --- a/it-tools/compose.yml +++ b/it-tools/docker-compose.yml @@ -1,7 +1,7 @@ -services: - it-tools: - image: 'corentinth/it-tools:latest' - ports: - - '8182:80' # change if needed - restart: unless-stopped +services: + it-tools: + image: 'corentinth/it-tools:latest' + ports: + - '8182:80' # change if needed + restart: unless-stopped container_name: it-tools \ No newline at end of file diff --git a/mealie/old.compose.yaml b/mealie/docker-compose.old.yml similarity index 96% rename from mealie/old.compose.yaml rename to mealie/docker-compose.old.yml index 1d14a56..1fdcd87 100644 --- a/mealie/old.compose.yaml +++ b/mealie/docker-compose.old.yml @@ -1,33 +1,33 @@ -services: - mealie-frontend: - image: hkotel/mealie:latest - container_name: mealie-frontend - env_file: - - .env - environment: - # Set Frontend ENV Variables Here - - API_URL=http://mealie-api:9000 - restart: unless-stopped - ports: - - "9925:3000" - volumes: - - ${DATA_FOLDER}/mealie:/app/data/ - mealie-api: - image: hkotel/mealie:api-v1.0.0beta-5 - container_name: mealie-api - deploy: - resources: - limits: - memory: 1024M - volumes: - - ${DATA_FOLDER}/mealie:/app/data/ - environment: - # Set Backend ENV Variables Here - - ALLOW_SIGNUP=true - - PUID=1000 - - PGID=1000 - - TZ=Europe/Warsaw - - MAX_WORKERS=1 - - WEB_CONCURRENCY=1 - - BASE_URL=${BASE_URL} +services: + mealie-frontend: + image: hkotel/mealie:latest + container_name: mealie-frontend + env_file: + - .env + environment: + # Set Frontend ENV Variables Here + - API_URL=http://mealie-api:9000 + restart: unless-stopped + ports: + - "9925:3000" + volumes: + - ${DATA_FOLDER}/mealie:/app/data/ + mealie-api: + image: hkotel/mealie:api-v1.0.0beta-5 + container_name: mealie-api + deploy: + resources: + limits: + memory: 1024M + volumes: + - ${DATA_FOLDER}/mealie:/app/data/ + environment: + # Set Backend ENV Variables Here + - ALLOW_SIGNUP=true + - PUID=1000 + - PGID=1000 + - TZ=Europe/Warsaw + - MAX_WORKERS=1 + - WEB_CONCURRENCY=1 + - BASE_URL=${BASE_URL} restart: unless-stopped \ No newline at end of file diff --git a/mealie/compose.yaml b/mealie/docker-compose.yml similarity index 96% rename from mealie/compose.yaml rename to mealie/docker-compose.yml index a3a3bd0..e854e37 100644 --- a/mealie/compose.yaml +++ b/mealie/docker-compose.yml @@ -1,22 +1,22 @@ -services: - mealie: - image: ghcr.io/mealie-recipes/mealie:latest # - container_name: mealie - env_file: - - .env - restart: unless-stopped - ports: - - "9925:9000" # - deploy: - resources: - limits: - memory: 1000M # - volumes: - - ${DATA_FOLDER}:/app/data/ - environment: - # Set Backend ENV Variables Here - ALLOW_SIGNUP: "false" - PUID: 1000 - PGID: 1000 - TZ: Europe/Warsaw +services: + mealie: + image: ghcr.io/mealie-recipes/mealie:latest # + container_name: mealie + env_file: + - .env + restart: unless-stopped + ports: + - "9925:9000" # + deploy: + resources: + limits: + memory: 1000M # + volumes: + - ${DATA_FOLDER}:/app/data/ + environment: + # Set Backend ENV Variables Here + ALLOW_SIGNUP: "false" + PUID: 1000 + PGID: 1000 + TZ: Europe/Warsaw BASE_URL: ${YOUR_DOMAIN:-https://mealie.yourdomain.com} \ No newline at end of file diff --git a/n8n/compose_old.yml b/n8n/docker-compose.old.yml similarity index 96% rename from n8n/compose_old.yml rename to n8n/docker-compose.old.yml index e7be1a0..65e85eb 100644 --- a/n8n/compose_old.yml +++ b/n8n/docker-compose.old.yml @@ -1,21 +1,21 @@ -services: - n8n: - image: docker.n8n.io/n8nio/n8n - container_name: n8n - restart: unless-stopped - ports: - - 5678:5678 - environment: - - N8N_HOST=${DOMAIN} - - N8N_PORT=5678 - - N8N_PROTOCOL=https - - NODE_ENV=production - - WEBHOOK_URL=https://${DOMAIN}/ - - GENERIC_TIMEZONE=${GENERIC_TIMEZONE} - - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - - N8N_RUNNERS_ENABLED=true - volumes: - - n8n_data:/home/node/.n8n - - ${PATH_TO_FILES}:/files -volumes: +services: + n8n: + image: docker.n8n.io/n8nio/n8n + container_name: n8n + restart: unless-stopped + ports: + - 5678:5678 + environment: + - N8N_HOST=${DOMAIN} + - N8N_PORT=5678 + - N8N_PROTOCOL=https + - NODE_ENV=production + - WEBHOOK_URL=https://${DOMAIN}/ + - GENERIC_TIMEZONE=${GENERIC_TIMEZONE} + - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true + - N8N_RUNNERS_ENABLED=true + volumes: + - n8n_data:/home/node/.n8n + - ${PATH_TO_FILES}:/files +volumes: n8n_data: \ No newline at end of file diff --git a/nextcloud/compose.yaml b/nextcloud/docker-compose.yml similarity index 95% rename from nextcloud/compose.yaml rename to nextcloud/docker-compose.yml index 1f73bc7..340c2a6 100644 --- a/nextcloud/compose.yaml +++ b/nextcloud/docker-compose.yml @@ -1,48 +1,48 @@ -version: '3.3' -services: - nextcloud: - image: lscr.io/linuxserver/nextcloud:latest - container_name: nextcloud - env_file: - - stack.env - environment: - - PUID=1000 - - PGID=1000 - - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT} - - PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT} - - TZ=${TZ} - - volumes: - - ${CONFIG}:/config - - ${DATA}:/data - ports: - - 5443:443 - restart: unless-stopped - links: - - nextcloud-mariadb - depends_on: - - nextcloud-mariadb - - nextcloud-mariadb: - image: lscr.io/linuxserver/mariadb:latest - container_name: nextloud-mariadb - environment: - - PUID=1000 - - PGID=1000 - - TZ=${TZ} - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - MYSQL_DATABASE=nextcloud - - MYSQL_USER=nextcloud - - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - volumes: - - ${MARIADB}:/config - ports: - - 5306:3306 - restart: unless-stopped - - -networks: - default: - name: nextcloud +version: '3.3' +services: + nextcloud: + image: lscr.io/linuxserver/nextcloud:latest + container_name: nextcloud + env_file: + - stack.env + environment: + - PUID=1000 + - PGID=1000 + - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT} + - PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT} + - TZ=${TZ} + + volumes: + - ${CONFIG}:/config + - ${DATA}:/data + ports: + - 5443:443 + restart: unless-stopped + links: + - nextcloud-mariadb + depends_on: + - nextcloud-mariadb + + nextcloud-mariadb: + image: lscr.io/linuxserver/mariadb:latest + container_name: nextloud-mariadb + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + + volumes: + - ${MARIADB}:/config + ports: + - 5306:3306 + restart: unless-stopped + + +networks: + default: + name: nextcloud driver: bridge \ No newline at end of file diff --git a/transmission/haugene-openvpn/compose.yml b/transmission/haugene-openvpn/docker-compose.yml similarity index 97% rename from transmission/haugene-openvpn/compose.yml rename to transmission/haugene-openvpn/docker-compose.yml index 2de1b11..338e18b 100644 --- a/transmission/haugene-openvpn/compose.yml +++ b/transmission/haugene-openvpn/docker-compose.yml @@ -1,37 +1,37 @@ -services: - transmission-openvpn: - image: haugene/transmission-openvpn - container_name: transmission-openvpn - restart: unless-stopped - deploy: - resources: - limits: - memory: 2G # adjust to your needs - cap_add: - - NET_ADMIN - volumes: - - ${PATH_TO_CONFIG}:/config - - ${PATH_TO_DOWNLOADS}:/data # optional - - ${PATH_TO_WATCH_FOLDER}:/data/watch # optional - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Warsaw - - OPENVPN_PROVIDER=${OPENVPN_PROVIDER} - - NORDVPN_COUNTRY=${NORDVPN_COUNTRY} -# - OPENVPN_CONFIG=${OPENVPN_CONFIG} -# Do not use NordVPN username! -# To obtain the credentials proceed with the manual configuration in NordVPN account. - - OPENVPN_USERNAME=${OPENVPN_USERNAME} - - OPENVPN_PASSWORD=${OPENVPN_PASSWORD} - - LOCAL_NETWORK=${LOCAL_NETWORK} # see .env file for comments - - TRANSMISSION_WEB_UI=${TRANSMISSION_WEB_UI} # optional - logging: - driver: json-file - options: - max-size: 10m - ports: - - '9091:9091' - -# Not all the countries and servers are supporting p2p, so you need to choose the right server. Here's the hint: +services: + transmission-openvpn: + image: haugene/transmission-openvpn + container_name: transmission-openvpn + restart: unless-stopped + deploy: + resources: + limits: + memory: 2G # adjust to your needs + cap_add: + - NET_ADMIN + volumes: + - ${PATH_TO_CONFIG}:/config + - ${PATH_TO_DOWNLOADS}:/data # optional + - ${PATH_TO_WATCH_FOLDER}:/data/watch # optional + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Warsaw + - OPENVPN_PROVIDER=${OPENVPN_PROVIDER} + - NORDVPN_COUNTRY=${NORDVPN_COUNTRY} +# - OPENVPN_CONFIG=${OPENVPN_CONFIG} +# Do not use NordVPN username! +# To obtain the credentials proceed with the manual configuration in NordVPN account. + - OPENVPN_USERNAME=${OPENVPN_USERNAME} + - OPENVPN_PASSWORD=${OPENVPN_PASSWORD} + - LOCAL_NETWORK=${LOCAL_NETWORK} # see .env file for comments + - TRANSMISSION_WEB_UI=${TRANSMISSION_WEB_UI} # optional + logging: + driver: json-file + options: + max-size: 10m + ports: + - '9091:9091' + +# Not all the countries and servers are supporting p2p, so you need to choose the right server. Here's the hint: # https://support.nordvpn.com/hc/en-us/articles/20465085067665-NordVPN-proxy-setup-for-BitTorrent \ No newline at end of file diff --git a/transmission/lscr.io/compose.yml b/transmission/lscr.io/docker-compose.yml similarity index 96% rename from transmission/lscr.io/compose.yml rename to transmission/lscr.io/docker-compose.yml index 11aedb8..c33acb5 100644 --- a/transmission/lscr.io/compose.yml +++ b/transmission/lscr.io/docker-compose.yml @@ -1,24 +1,24 @@ ---- -services: - transmission: - image: lscr.io/linuxserver/transmission:latest - container_name: transmission - environment: - - PUID=1000 - - PGID=1000 - - TZ=Europe/Warsaw - - TRANSMISSION_WEB_HOME= #optional - - USER=${USERNAME} #optional - - PASS=${PASSWORD} #optional - - WHITELIST= #optional - - PEERPORT= #optional - - HOST_WHITELIST= #optional - volumes: - - ${PATH_TO_CONFIG}:/config - - ${PATH_TO_DOWNLOADS}:/downloads #optional - - ${PATH_TO_WATCH_FOLDER}:/watch #optional - ports: - - 9091:9091 - - 51413:51413 - - 51413:51413/udp - restart: unless-stopped +--- +services: + transmission: + image: lscr.io/linuxserver/transmission:latest + container_name: transmission + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Warsaw + - TRANSMISSION_WEB_HOME= #optional + - USER=${USERNAME} #optional + - PASS=${PASSWORD} #optional + - WHITELIST= #optional + - PEERPORT= #optional + - HOST_WHITELIST= #optional + volumes: + - ${PATH_TO_CONFIG}:/config + - ${PATH_TO_DOWNLOADS}:/downloads #optional + - ${PATH_TO_WATCH_FOLDER}:/watch #optional + ports: + - 9091:9091 + - 51413:51413 + - 51413:51413/udp + restart: unless-stopped diff --git a/vaultwarden/compose.yml b/vaultwarden/docker-compose.yml similarity index 95% rename from vaultwarden/compose.yml rename to vaultwarden/docker-compose.yml index 982de96..5a7b411 100644 --- a/vaultwarden/compose.yml +++ b/vaultwarden/docker-compose.yml @@ -1,11 +1,11 @@ -services: - vaultwarden: - image: vaultwarden/server:latest - container_name: vaultwarden - restart: unless-stopped - environment: - DOMAIN: "${DOMAIN}" - volumes: - - ${PATH_TO_DATA}:/data - ports: +services: + vaultwarden: + image: vaultwarden/server:latest + container_name: vaultwarden + restart: unless-stopped + environment: + DOMAIN: "${DOMAIN}" + volumes: + - ${PATH_TO_DATA}:/data + ports: - 8033:80 \ No newline at end of file diff --git a/webtop/docker-compose.yaml b/webtop/docker-compose.yml similarity index 100% rename from webtop/docker-compose.yaml rename to webtop/docker-compose.yml