diff --git a/README.md b/README.md index afb1148..21a68da 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,8 @@ Multiple --env-file flags are supported and applied in order. These are projects that are not supported in these cookbooks and the alternative that is: +- Dockge - I like dockhand better +- Portainer - I like dockhand better - UptimeKuma - Gatus is used over uptimekuma. - upscayl - Invokeai is used over upscayl. diff --git a/_assets/heading.svg b/_assets/heading.svg deleted file mode 100644 index 25b65c4..0000000 --- a/_assets/heading.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - Docker Compose Cookbooks - - - - - - - - - - - - - - - - - diff --git a/cookbook.env b/cookbook.env deleted file mode 100644 index 0211301..0000000 --- a/cookbook.env +++ /dev/null @@ -1,15 +0,0 @@ -# Cookbook environment overrides -# Generated/Updated: 2025-10-24 14:30:00 -# Universal defaults (applies to all cookbooks) - -# Volumes base path (all mounts under here, e.g., ${VOL_PATH}/project_data) -VOL_PATH=/var/lib/docker/volumes - -# Timezone for all containers -TZ=America/Vancouver - -# Project name for unique container/network names (default: myProject; override to basename of dir) -COMPOSE_PROJECT_NAME=myProject - -# Instance identifier (for multi-run prefixes, e.g., DB_PASSWORD_${INSTANCE_NAME}) -INSTANCE_NAME=project-prod \ No newline at end of file diff --git a/dockge_dev/README.md b/dockge_dev/README.md deleted file mode 100644 index 40ac4b8..0000000 --- a/dockge_dev/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Dockge - -https://dockge.kuma.pet/ - -# Stacks Directory - -⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH. - -1. FULL path only. No relative path (MUST) -2. Left Stacks Path === Right Stacks Path (MUST) - -Therefore: -```bash -sudo mkdir -p /data/dockge/data /data/dockge/stacks -``` - diff --git a/dockge_dev/docker-compose.yml b/dockge_dev/docker-compose.yml deleted file mode 100644 index 6e5149d..0000000 --- a/dockge_dev/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -services: - dockge: - image: louislam/dockge:latest - restart: unless-stopped - ports: - - 5001:5001 - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - /data/dockge/data:/app/data - - /opt/stacks:/opt/stacks - environment: - - DOCKGE_STACKS_DIR=/opt/stacks \ No newline at end of file diff --git a/dockge_dev/sample.env b/dockge_dev/sample.env deleted file mode 100644 index 994d2c6..0000000 --- a/dockge_dev/sample.env +++ /dev/null @@ -1 +0,0 @@ -# Intentionally Blank \ No newline at end of file diff --git a/portainer_notes/README.md b/portainer_notes/README.md deleted file mode 100644 index 18ed6dc..0000000 --- a/portainer_notes/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Portainer - -## Ports - -Portainer: 9000 -Portainer Agent: 9001 - -## Network - -Create a private network for portainer: ```sudo podman network create portainer-net``` - -## env config - -You must set an agent secret ```openssl rand -base64 32``` - -``` -# Portainer -PORTAINER_IMAGE=portainer/portainer-ce:latest -PORTAINER_AGENT_IMAGE=portainer/agent:latest -AGENT_SECRET=01234567890132456789012345678912 #HELP: gen32 -VOL_PATH=/docker/vol/portainer-data #HELP: volpath -COOKBOOK=/home/user/git/docker-compose-cookbooks #HELP: cookbooks -``` - -### Docker Compose Extend - -Now using extend you can call the service: - -```yaml -version: '3.4' - -networks: - portainer-net: - external: true - -services: - portainer-agent: - extends: - file: ${COOKBOOK}/portainer/docker-compose.yml - service: portainer-agent - env_file: - - .env - - portainer: - extends: - file: ${COOKBOOK}/portainer/docker-compose.yml - service: portainer - env_file: - - .env -``` - -You will likely want to spit up the agent and GUI in your projects. - -## Gotchas - -### Podman - -Make sure podman-docker is installed. -```sudo dnf install podman-docker``` - -Create the necessary directory for Podman -```bash -sudo mkdir -p /run/podman -sudo chmod 755 /run/podman -# Restart Podman socket service -sudo systemctl restart podman.socket -# Check the status of the Podman socket -sudo systemctl status podman.socket -``` \ No newline at end of file diff --git a/portainer_notes/docker-compose.yml b/portainer_notes/docker-compose.yml deleted file mode 100644 index fdcd0c3..0000000 --- a/portainer_notes/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - portainer: - image: ${PORTAINER_IMAGE:-portainer/portainer-ce:latest} - ports: - - 9000:9000 - environment: - - AGENT_SECRET=${AGENT_SECRET} - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - "${VOL_PATH:-./config}/portainer:/data" - restart: always - - portainer-agent: - image: ${PORTAINER_AGENT_IMAGE:-portainer/agent:latest} - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - /var/lib/docker/volumes:/var/lib/docker/volumes - environment: - - AGENT_SECRET=${AGENT_SECRET} - ports: - - 9001:9001 - restart: always - diff --git a/portainer_notes/sample.env b/portainer_notes/sample.env deleted file mode 100644 index 28740be..0000000 --- a/portainer_notes/sample.env +++ /dev/null @@ -1,6 +0,0 @@ -# Portainer -PORTAINER_IMAGE=portainer/portainer-ce:latest -PORTAINER_AGENT_IMAGE=portainer/agent:latest -AGENT_SECRET=01234567890132456789012345678912 #HELP: gen32 -VOL_PATH=/docker/vol/portainer-data #HELP: volpath -COOKBOOK=/home/user/git/docker-compose-cookbooks #HELP: cookbooks \ No newline at end of file diff --git a/portainer_notes/templates/templates.json b/portainer_notes/templates/templates.json deleted file mode 100644 index 81a37fa..0000000 --- a/portainer_notes/templates/templates.json +++ /dev/null @@ -1,396 +0,0 @@ -[ - { - "type": 1, - "title": "Nix Registry", - "description": "Docker image registry by nick 20", - "categories": ["docker"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/registry.png", - "image": "registry:latest", - "ports": [ - "5000/tcp" - ], - "volumes": [{ "container": "/var/lib/registry"}] - }, - { - "type": 1, - "title": "Nix MariaDB", - "description": "Performance beyond MySQL", - "categories": ["database"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/mariadb.png", - "image": "mariadb:latest", - "env": [ - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "Root password" - } - ], - "ports": [ - "3306/tcp" - ], - "volumes": [{"container": "/var/lib/mysql"}] - }, - { - "type": 1, - "title": "Nix PostgreSQL", - "description": "The most advanced open-source database", - "categories": ["database"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/postgres.png", - "image": "postgres:latest", - "env": [ - { - "name": "POSTGRES_USER", - "label": "Superuser" - }, - { - "name": "POSTGRES_PASSWORD", - "label": "Superuser password" - } - ], - "ports": [ - "5432/tcp" - ], - "volumes": [{"container": "/var/lib/postgresql/data"}] - }, - { - "type": 1, - "title": "Gitlab CE", - "description": "Nix Open-source end-to-end software development platform", - "note": "Default username is root. Check the Gitlab documentation to get started.", - "categories": ["development", "project-management"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/gitlab_ce.png", - "image": "gitlab/gitlab-ce:latest", - "ports": [ - "80/tcp", - "443/tcp", - "22/tcp" - ], - "volumes": [ - { "container": "/etc/gitlab" }, - { "container": "/var/log/gitlab" }, - { "container": "/var/opt/gitlab" } - ] - }, - { - "type": 1, - "title": "Redis", - "description": "Open-source in-memory data structure store", - "categories": ["database"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redis.png", - "image": "redis:latest", - "ports": [ - "6379/tcp" - ], - "volumes": [{"container": "/data"}] - }, - { - "type": 1, - "title": "RabbitMQ", - "description": "Highly reliable enterprise messaging system", - "categories": ["messaging"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/rabbitmq.png", - "image": "rabbitmq:latest", - "ports": [ - "5671/tcp", - "5672/tcp" - ], - "volumes": [{"container": "/var/lib/rabbitmq"}] - }, - { - "type": 1, - "title": "Ghost", - "description": "Free and open-source blogging platform", - "categories": ["blog"], - "note": "Access the blog management interface under /ghost/.", - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ghost.png", - "image": "ghost:latest", - "ports": [ - "2368/tcp" - ], - "volumes": [{"container": "/var/lib/ghost/content"}] - }, - { - "type": 1, - "title": "Joomla", - "description": "Another free and open-source CMS", - "categories": ["CMS"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/joomla.png", - "image": "joomla:latest", - "env": [ - { - "name": "JOOMLA_DB_HOST", - "label": "MySQL database host", - "type": "container" - }, - { - "name": "JOOMLA_DB_PASSWORD", - "label": "Database password" - } - ], - "ports": [ - "80/tcp" - ], - "volumes": [{"container": "/var/www/html"}] - }, - { - "type": 1, - "title": "Wowza", - "description": "Streaming media server", - "categories": ["streaming"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wowza.png", - "image": "sameersbn/wowza:4.1.2-8", - "env": [ - { - "name": "WOWZA_ACCEPT_LICENSE", - "label": "Agree to Wowza EULA", - "set": "yes" - }, - { - "name": "WOWZA_KEY", - "label": "License key" - } - ], - "ports": [ - "1935/tcp", - "8086/tcp", - "8087/tcp", - "8088/tcp" - ], - "volumes": [{"container": "/var/lib/wowza"}] - }, - { - "type": 1, - "title": "Redmine", - "description": "Open-source project management tool", - "categories": ["project-management"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/redmine.png", - "image": "redmine:latest", - "ports": [ - "3000/tcp" - ], - "volumes": [{"container": "/usr/src/redmine/files"}] - }, - { - "type": 1, - "title": "Odoo", - "description": "Open-source business apps", - "categories": ["project-management"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/odoo.png", - "image": "odoo:latest", - "env": [ - { - "name": "HOST", - "label": "PostgreSQL database host", - "type": "container" - }, - { - "name": "USER", - "label": "Database user" - }, - { - "name": "PASSWORD", - "label": "Database password" - } - ], - "ports": [ - "8069/tcp" - ], - "volumes": [{"container": "/var/lib/odoo"}, {"container": "/mnt/extra-addons"}] - }, - { - "type": 1, - "title": "Urbackup", - "description": "Open-source network backup", - "categories": ["backup"], - "platform": "linux", - "note": "This application web interface is exposed on the port 55414 inside the container.", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/urbackup.png", - "image": "cfstras/urbackup", - "ports": [ - "55413/tcp", "55414/tcp", "55415/tcp", "35622/tcp" - ], - "volumes": [{"container": "/var/urbackup"}] - }, - { - "type": 1, - "title": "File browser", - "description": "A web file manager", - "note": "Default credentials: admin/admin", - "categories": ["filesystem", "storage"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/filebrowser.png", - "image": "filebrowser/filebrowser:latest", - "ports": [ - "80/tcp" - ], - "volumes": [{"container": "/data"}, {"container": "/srv"}], - "command": "--port 80 --database /data/database.db --scope /srv" - }, - { - "type": 2, - "title": "Portainer Agent", - "description": "Manage all the resources in your Swarm cluster", - "note": "The agent will be deployed globally inside your cluster and available on port 9001.", - "categories": ["portainer"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/portainer.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/portainer-agent/docker-stack.yml" - } - }, - { - "type": 2, - "title": "OpenFaaS", - "name": "func", - "description": "Serverless functions made simple", - "note": "Deploys the API gateway and sample functions. You can access the UI on port 8080. Warning: the name of the stack must be 'func'.", - "categories": ["serverless"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/openfaas.png", - "repository": { - "url": "https://github.com/openfaas/faas", - "stackfile": "docker-compose.yml" - } - }, - { - "type": 2, - "title": "IronFunctions", - "description": "Open-source serverless computing platform", - "note": "Deploys the IronFunctions API and UI.", - "categories": ["serverless"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/ironfunctions.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/ironfunctions/docker-stack.yml" - } - }, - { - "type": 2, - "title": "CockroachDB", - "description": "CockroachDB cluster", - "note": "Deploys an insecure CockroachDB cluster, please refer to CockroachDB documentation for production deployments.", - "categories": ["database"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/cockroachdb.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/cockroachdb/docker-stack.yml" - } - }, - { - "type": 2, - "title": "Wordpress", - "description": "Wordpress setup with a MySQL database", - "note": "Deploys a Wordpress instance connected to a MySQL database.", - "categories": ["CMS"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/wordpress/docker-stack.yml" - }, - "env": [ - { - "name": "MYSQL_DATABASE_PASSWORD", - "label": "Database root password", - "description": "Password used by the MySQL root user." - } - ] - }, - { - "type": 3, - "title": "Wordpress", - "description": "Wordpress setup with a MySQL database", - "note": "Deploys a Wordpress instance connected to a MySQL database.", - "categories": ["CMS"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/wordpress.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/wordpress/docker-compose.yml" - }, - "env": [ - { - "name": "MYSQL_DATABASE_PASSWORD", - "label": "Database root password", - "description": "Password used by the MySQL root user." - } - ] - }, - { - "type": 2, - "title": "Microsoft OMS Agent", - "description": "Microsoft Operations Management Suite Linux agent.", - "categories": ["OPS"], - "platform": "linux", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/microsoft.png", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/microsoft-oms/docker-stack.yml" - }, - "env": [ - { - "name": "AZURE_WORKSPACE_ID", - "label": "Workspace ID", - "description": "Azure Workspace ID" - }, - { - "name": "AZURE_PRIMARY_KEY", - "label": "Primary key", - "description": "Azure primary key" - } - ] - }, - { - "title": "Sematext Docker Agent", - "type": 2, - "categories": ["Log Management", "Monitoring"], - "description": "Collect logs, metrics and docker events", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/sematext_agent.png", - "platform": "linux", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/sematext-agent-docker/docker-stack.yml" - }, - "env": [ - { - "name": "LOGSENE_TOKEN", - "label": "Logs token" - }, - { - "name": "SPM_TOKEN", - "label": "SPM monitoring token" - } - ] - }, - { - "title": "Datadog agent", - "type": 2, - "categories": ["Monitoring"], - "description": "Collect events and metrics", - "logo": "https://portainer-io-assets.sfo2.digitaloceanspaces.com/logos/datadog_agent.png", - "platform": "linux", - "repository": { - "url": "https://github.com/portainer/templates", - "stackfile": "stacks/datadog-agent/docker-stack.yml" - }, - "env": [ - { - "name": "API_KEY", - "label": "Datadog API key" - } - ] - } -]