Compare commits
10 Commits
12f661980e
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 11e96df3eb | |||
| c8cf83a1c9 | |||
| ec828c185d | |||
| 8309328890 | |||
| 1b1d058ded | |||
| 472a09ea5c | |||
| 068ccd6b4d | |||
| 44c1de67cd | |||
| 80f173ebc5 | |||
| a4ec975fff |
@@ -0,0 +1,40 @@
|
|||||||
|
# Mealie Docker Compose (NFS) - Environment Variables
|
||||||
|
# Copy this file to .env and fill in your values
|
||||||
|
|
||||||
|
# --- Image ---
|
||||||
|
|
||||||
|
# Mealie image tag (use a specific version for stability, or 'latest')
|
||||||
|
MEALIE_VERSION=latest
|
||||||
|
|
||||||
|
# --- Permissions ---
|
||||||
|
|
||||||
|
# User and group ID that Mealie runs as (match your host user to avoid permission issues)
|
||||||
|
MEALIE_PUID=1000
|
||||||
|
MEALIE_PGID=1000
|
||||||
|
|
||||||
|
# --- Network ---
|
||||||
|
|
||||||
|
# Host port to expose the Mealie web UI on
|
||||||
|
MEALIE_PORT=9000
|
||||||
|
|
||||||
|
# --- Application ---
|
||||||
|
|
||||||
|
# Full public URL where Mealie is accessible (used for links in emails and API responses)
|
||||||
|
MEALIE_BASE_URL=https://mealie.yourdomain.com
|
||||||
|
|
||||||
|
# Timezone for the container (affects scheduled tasks and timestamps)
|
||||||
|
MEALIE_TZ=America/Los_Angeles
|
||||||
|
|
||||||
|
# Allow new users to self-register (true/false)
|
||||||
|
MEALIE_ALLOW_SIGNUP=false
|
||||||
|
|
||||||
|
# Number of concurrent worker processes for the API server (tune to available CPU cores)
|
||||||
|
MEALIE_UVICORN_WORKERS=4
|
||||||
|
|
||||||
|
# --- NFS Volume ---
|
||||||
|
|
||||||
|
# IP address or hostname of the NFS server
|
||||||
|
MEALIE_NFS_SERVER=192.168.1.x
|
||||||
|
|
||||||
|
# NFS export path on the server (e.g. /mnt/pool/mealie)
|
||||||
|
MEALIE_NFS_DEVICE=:/path/to/nfs/export
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: ghcr.io/mealie-recipes/mealie:${MEALIE_VERSION:-latest}
|
||||||
|
container_name: mealie-app
|
||||||
|
ports:
|
||||||
|
- ${MEALIE_PORT:-9000}:9000
|
||||||
|
volumes:
|
||||||
|
- mealie-app:/app/data/
|
||||||
|
environment:
|
||||||
|
- ALLOW_SIGNUP=${MEALIE_ALLOW_SIGNUP:-false}
|
||||||
|
- PUID=${MEALIE_PUID:-1000}
|
||||||
|
- PGID=${MEALIE_PGID:-1000}
|
||||||
|
- TZ=${MEALIE_TZ:-America/Los_Angeles}
|
||||||
|
- BASE_URL=${MEALIE_BASE_URL}
|
||||||
|
- UVICORN_WORKERS=${MEALIE_UVICORN_WORKERS:-4}
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1000M
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mealie-app:
|
||||||
|
name: mealie-app
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
type: nfs
|
||||||
|
o: "addr=${MEALIE_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4"
|
||||||
|
device: "${MEALIE_NFS_DEVICE}"
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# MeTube Docker Compose - Environment Variables
|
||||||
|
# Copy this file to .env and fill in your values
|
||||||
|
|
||||||
|
# --- Image ---
|
||||||
|
|
||||||
|
# MeTube image tag (use a specific version for stability, or 'latest')
|
||||||
|
METUBE_VERSION=latest
|
||||||
|
|
||||||
|
# --- Permissions ---
|
||||||
|
|
||||||
|
# User and group ID that MeTube runs as (match your host user to avoid permission issues)
|
||||||
|
METUBE_PUID=1000
|
||||||
|
METUBE_PGID=1000
|
||||||
|
|
||||||
|
# File permission mask applied to downloaded files (022 = owner rw, group/others r)
|
||||||
|
METUBE_UMASK=022
|
||||||
|
|
||||||
|
# --- Storage ---
|
||||||
|
|
||||||
|
# Host path where downloaded files will be saved
|
||||||
|
METUBE_DOWNLOAD=/path/to/downloads
|
||||||
|
|
||||||
|
# --- Network ---
|
||||||
|
|
||||||
|
# Host port to expose the MeTube web UI on
|
||||||
|
METUBE_PORT=8081
|
||||||
|
|
||||||
|
# --- Download Behavior ---
|
||||||
|
|
||||||
|
# Delete the file from disk when trashed in the UI (true/false)
|
||||||
|
METUBE_DELETE_FILE_ON_TRASHCAN=true
|
||||||
|
|
||||||
|
# Seconds after completion before a finished download is removed from the queue (3600 = 1 hour, 0 = disabled)
|
||||||
|
METUBE_CLEAR_COMPLETED_AFTER=3600
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: alexta69/metube:${METUBE_VERSION:-latest}
|
||||||
|
container_name: metube-app
|
||||||
|
environment:
|
||||||
|
- PUID=${METUBE_PUID:-1000}
|
||||||
|
- PGID=${METUBE_PGID:-1000}
|
||||||
|
- UMASK=${METUBE_UMASK:-022}
|
||||||
|
- DELETE_FILE_ON_TRASHCAN=${METUBE_DELETE_FILE_ON_TRASHCAN:-true}
|
||||||
|
- CLEAR_COMPLETED_AFTER=${METUBE_CLEAR_COMPLETED_AFTER:-3600}
|
||||||
|
volumes:
|
||||||
|
- ${METUBE_DOWNLOAD}:/downloads
|
||||||
|
ports:
|
||||||
|
- ${METUBE_PORT}:8081
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8081/"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 10s
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 512m
|
||||||
|
restart: unless-stopped
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# Pinchflat
|
||||||
|
|
||||||
|
# Docker image tag to use (e.g. "latest" or a pinned version like "v2024.5.30")
|
||||||
|
PINCHFLAT_VERSION=latest
|
||||||
|
|
||||||
|
# IANA timezone name for the container (e.g. America/Chicago, America/New_York)
|
||||||
|
PINCHFLAT_TZ=America/Los_Angeles
|
||||||
|
|
||||||
|
# Host port to expose the Pinchflat web UI on
|
||||||
|
PINCHFLAT_PORT=8945
|
||||||
|
|
||||||
|
# Host path where downloaded media will be stored
|
||||||
|
PINCHFLAT_DOWNLOAD=/path/to/downloads
|
||||||
|
|
||||||
|
# Auth - required for production
|
||||||
|
|
||||||
|
# Username for HTTP basic auth on the web UI
|
||||||
|
PINCHFLAT_AUTH_USER=admin
|
||||||
|
|
||||||
|
# Password for HTTP basic auth — use a strong random value
|
||||||
|
PINCHFLAT_AUTH_PASS=changeme
|
||||||
|
|
||||||
|
# Secret used to sign/encrypt session cookies — generate with: openssl rand -hex 64
|
||||||
|
# Changing this will invalidate all active sessions
|
||||||
|
PINCHFLAT_SECRET_KEY=
|
||||||
|
|
||||||
|
# Controls default permissions on created files (022 = owner rw, group/other r)
|
||||||
|
PINCHFLAT_UMASK=022
|
||||||
|
|
||||||
|
# Bind mount only
|
||||||
|
|
||||||
|
# Host path for the config directory (SQLite DB, logs, metadata)
|
||||||
|
PINCHFLAT_CONFIG=/path/to/config
|
||||||
|
|
||||||
|
# NFS only
|
||||||
|
|
||||||
|
# IP address or hostname of the NFS server
|
||||||
|
PINCHFLAT_NFS_SERVER=192.168.1.x
|
||||||
|
|
||||||
|
# NFS export path on the server (e.g. :/mnt/pool/pinchflat)
|
||||||
|
PINCHFLAT_NFS_DEVICE=:/path/to/nfs/share
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: keglin/pinchflat:${PINCHFLAT_VERSION:-latest}
|
||||||
|
container_name: pinchflat-app
|
||||||
|
environment:
|
||||||
|
- TZ=${PINCHFLAT_TZ:-America/Los_Angeles}
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- YT_DLP_WORKER_CONCURRENCY=1
|
||||||
|
- BASIC_AUTH_USERNAME=${PINCHFLAT_AUTH_USER:-admin}
|
||||||
|
- BASIC_AUTH_PASSWORD=${PINCHFLAT_AUTH_PASS:-changeme}
|
||||||
|
- SECRET_KEY_BASE=${PINCHFLAT_SECRET_KEY}
|
||||||
|
- UMASK=${PINCHFLAT_UMASK:-022}
|
||||||
|
ports:
|
||||||
|
- ${PINCHFLAT_PORT:-8945}:8945
|
||||||
|
volumes:
|
||||||
|
- ${PINCHFLAT_CONFIG}:/config
|
||||||
|
- ${PINCHFLAT_DOWNLOAD}:/downloads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl --fail http://localhost:8945/healthcheck || exit 1"]
|
||||||
|
interval: 30s
|
||||||
|
start_period: 15s
|
||||||
|
restart: unless-stopped
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: keglin/pinchflat:${PINCHFLAT_VERSION:-latest}
|
||||||
|
container_name: pinchflat-app
|
||||||
|
environment:
|
||||||
|
- TZ=${PINCHFLAT_TZ:-America/Los_Angeles}
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- JOURNAL_MODE=delete
|
||||||
|
- YT_DLP_WORKER_CONCURRENCY=1
|
||||||
|
- BASIC_AUTH_USERNAME=${PINCHFLAT_AUTH_USER:-admin}
|
||||||
|
- BASIC_AUTH_PASSWORD=${PINCHFLAT_AUTH_PASS:-changeme}
|
||||||
|
- SECRET_KEY_BASE=${PINCHFLAT_SECRET_KEY}
|
||||||
|
- UMASK=${PINCHFLAT_UMASK:-022}
|
||||||
|
ports:
|
||||||
|
- ${PINCHFLAT_PORT:-8945}:8945
|
||||||
|
volumes:
|
||||||
|
- pinchflat-app:/config
|
||||||
|
- ${PINCHFLAT_DOWNLOAD}:/downloads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl --fail http://localhost:8945/healthcheck || exit 1"]
|
||||||
|
interval: 30s
|
||||||
|
start_period: 15s
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1G
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pinchflat-app:
|
||||||
|
name: pinchflat-app
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
type: nfs
|
||||||
|
o: "addr=${PINCHFLAT_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4"
|
||||||
|
device: "${PINCHFLAT_NFS_DEVICE}"
|
||||||
@@ -26,8 +26,11 @@ Feel free to use any of these as a starting point for your own setup. Each appli
|
|||||||
| IT-Tools | Collection of handy tools for developers and sysadmins | [Compose](./IT-Tools/docker-compose.yaml) | [Read the article](https://chns.tech/posts/2023/10-22-it-tools-handy-tools-for-developers/) |
|
| IT-Tools | Collection of handy tools for developers and sysadmins | [Compose](./IT-Tools/docker-compose.yaml) | [Read the article](https://chns.tech/posts/2023/10-22-it-tools-handy-tools-for-developers/) |
|
||||||
| Kanboard | Self-hosted Kanban project management board | [NFS](./Kanboard/docker-compose-nfs.yaml) | [Read the article](https://chns.tech/posts/2024/04-28-kanboard-project-management-software/) |
|
| Kanboard | Self-hosted Kanban project management board | [NFS](./Kanboard/docker-compose-nfs.yaml) | [Read the article](https://chns.tech/posts/2024/04-28-kanboard-project-management-software/) |
|
||||||
| LinkStack | Self-hosted link-in-bio page builder | [NFS](./LinkStack/docker-compose-nfs.yaml) | [Read the article](https://chns.tech/posts/2024/02-04-linkstack-social-media-link-page/) |
|
| LinkStack | Self-hosted link-in-bio page builder | [NFS](./LinkStack/docker-compose-nfs.yaml) | [Read the article](https://chns.tech/posts/2024/02-04-linkstack-social-media-link-page/) |
|
||||||
|
| MeTube | Self-hosted web UI for yt-dlp — download video and audio from YouTube and hundreds of other sites | [Compose](./Metube/docker-compose.yaml) | [Read the article](https://chns.tech/posts/2024/01-14-metube-youtube-downloader/) |
|
||||||
|
| n8n | Open-source workflow automation platform with a visual node-based editor | [Volume](./n8n/docker-compose-volume.yaml) | [Read the article](#) |
|
||||||
| Ntfy | Self-hosted push notification service via HTTP | [Bind](./Ntfy/docker-compose-bind.yaml) | [Read the article](https://chns.tech/posts/2026/05-08-ntfy-self-hosted-push-notifications/) |
|
| Ntfy | Self-hosted push notification service via HTTP | [Bind](./Ntfy/docker-compose-bind.yaml) | [Read the article](https://chns.tech/posts/2026/05-08-ntfy-self-hosted-push-notifications/) |
|
||||||
| OmniTools | Self-hosted collection of web-based utility tools | [Compose](./OmniTools/docker-compose.yaml) | [Read the article](#) |
|
| OmniTools | Self-hosted collection of web-based utility tools | [Compose](./OmniTools/docker-compose.yaml) | [Read the article](#) |
|
||||||
|
| Pinchflat | Self-hosted YouTube subscription manager that downloads content automatically like a podcast feed | [NFS](./Pinchflat/docker-compose-nfs.yaml) · [Bind](./Pinchflat/docker-compose-bind.yaml) | [Read the article](https://chns.tech/posts/2024/06-30-pinchflat-channel-monitoring-youtube-downloader/) |
|
||||||
| Seerr | Media request management tool for self-hosted media servers | [Compose](./Seerr/docker-compose.yaml) · [NFS](./Seerr/docker-compose-nfs.yaml) | [Read the article](#) |
|
| Seerr | Media request management tool for self-hosted media servers | [Compose](./Seerr/docker-compose.yaml) · [NFS](./Seerr/docker-compose-nfs.yaml) | [Read the article](#) |
|
||||||
| SearXNG | Privacy-respecting, self-hosted metasearch engine | [Bind](./SearXNG/docker-compose-bind.yaml) | [Read the article](https://chns.tech/posts/2024/06-23-searxng-internet-metasearch-engine/) |
|
| SearXNG | Privacy-respecting, self-hosted metasearch engine | [Bind](./SearXNG/docker-compose-bind.yaml) | [Read the article](https://chns.tech/posts/2024/06-23-searxng-internet-metasearch-engine/) |
|
||||||
| Unifi-Network-Application | UniFi Network controller for managing Ubiquiti network devices | [NFS](./Unifi-Network-Application/docker-compose-nfs.yaml) | [Read the article](#) |
|
| Unifi-Network-Application | UniFi Network controller for managing Ubiquiti network devices | [NFS](./Unifi-Network-Application/docker-compose-nfs.yaml) | [Read the article](#) |
|
||||||
|
|||||||
@@ -54,4 +54,6 @@ services:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
n8n-app:
|
n8n-app:
|
||||||
|
name: n8n-app
|
||||||
n8n-db:
|
n8n-db:
|
||||||
|
name: n8n-db
|
||||||
Reference in New Issue
Block a user