Skip to content

alsd4git/dockerini

Repository files navigation

Dockerini - Docker Compose Stacks Collection

A comprehensive collection of Docker Compose stacks for various services and applications, designed for easy deployment and management using Portainer. All stacks in this repository are fully standardized and documented.

Table of Contents

Introduction

Dockerini provides a collection of Docker Compose stacks for various services and applications, making it easy to deploy and manage containers using Portainer. Each stack is carefully standardized with:

  • Consistent formatting and structure
  • Fallback values for environment variables
  • Standardized network naming
  • Comprehensive documentation
  • Security best practices

Getting Started

Prerequisites

  • Docker installed on your system
  • Portainer installed and configured
  • Basic understanding of Docker and Docker Compose

Installation

  1. Clone this repository:

    git clone https://github.com/alsd4git/dockerini.git
  2. Navigate to the repository:

    cd dockerini
  3. For each stack you want to deploy, configure its environment variables:

    cd <stack-name>
    cp .env.example .env
    # Edit .env with your stack-specific configuration
    cd ..

    Each stack has its own .env.example file in its directory with the required and optional variables for that service.

Available Stacks

Standardization Status

Each stack follows our standardization guidelines:

  • ✅ Consistent formatting
  • ✅ Environment variable fallbacks
  • ✅ Standardized network naming
  • ✅ Comprehensive documentation
  • ✅ Security best practices

Recommended Practices

  1. Critical Services (pin specific versions):

    • Databases (PostgreSQL, Redis, InfluxDB)
    • DNS services (Pi-hole, AdGuard)
    • Reverse proxies (Nginx Proxy Manager, Step CA)
    • Authentication services (Pocket ID)
  2. Non-Critical Services (use latest tag):

    • Media applications (Jellyfin, Immich)
    • Monitoring tools (Glances, Dozzle)
    • Utility services (File browsers, converters)
    • Automation services (Sonarr, Radarr)
  3. Update Strategy:

    • Enable Watchtower for automatic updates of latest-tagged services
    • Pin versions for critical infrastructure and manually test updates
    • Use a reverse proxy and monitoring to catch issues quickly

Container Restart Policies

This repository uses two restart policies strategically:

restart: unless-stopped (Default - 62% of services)

Used for services that can tolerate manual stops:

  • User-facing services: Dashboards, media servers, web interfaces
  • Non-critical services: Monitoring displays, file browsers, converters
  • Deployment tools: Allows graceful shutdown without auto-restart

Behavior: Container restarts automatically unless manually stopped

restart: always (Special Cases - 38% of services)

Used for critical background services that must stay running:

  • Automation services: Watchtower (automatic updates), DIUN (image monitoring)
  • Notification services: Telegram notifiers and alert delivery
  • Core infrastructure: Services critical for other containers to function
  • Monitoring agents: Services providing essential observability

Behavior: Container always restarts, even if manually stopped

Decision Matrix

Service Type Restart Policy Reason
Watchtower, DIUN, Telegram notifiers always Must stay running to function
Databases, DNS, Reverse proxies unless-stopped Allow graceful maintenance
Media servers, dashboards unless-stopped User-facing; allow manual stops
Monitoring displays unless-stopped Non-critical visualization
Utility services unless-stopped Safe to stop manually

Folder Structure

Each stack folder contains:

/stack-name
├── compose.yaml      # Docker Compose configuration
├── README.md         # Stack documentation
├── .env.example      # Example environment variables
└── /resources        # Additional resources

Usage

  1. Choose a stack from the Available Stacks section

  2. Review the stack's README.md for specific requirements

  3. Configure the environment variables

  4. Deploy using Docker Compose:

    docker compose up -d

Development

Pre-commit Hooks

  1. Install uv if you don't already have it.
  2. Install the hook runner: uv tool install pre-commit
  3. Install the repo hooks: uv run pre-commit install
  4. (Optional) Check the entire tree: uv run pre-commit run --all-files

The configuration keeps YAML consistent with yamllint, enforces common whitespace hygiene, and validates .env and .env.example files with dotenv-linter. uv run ensures pre-commit executes with the Python version and environment managed by uv.

Documentation

  • Individual stack READMEs for detailed documentation

About

A curated collection of Docker Compose configurations and resources for seamless deployment of diverse services and applications via Portainer.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages