Skip to content

ebaldebo/dockge-gitops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dockge-gitops

Add gitops functionality to Dockge

Background

Switching from Portainer to Dockge I was missing the ability to have a gitops workflow. I wanted to be able to make changes to my compose.yml files and have them automatically imported to my Dockge stacks. This project is a simple temporary solution to that problem.

Features

  • Clone repo into Dockge stacks directory
    • Access private repos using PAT
  • Automatically poll for changes on a configurable interval
  • Use global .env file to set environment variables for all stacks

Usage

Environment Variables

Variable Description Default Required
REPO_URL URL of the git repo to clone Yes
PAT Personal Access Token for private repos No
POLLING_RATE How often to poll for changes 5m No
DOCKGE_STACKS_DIR Path to Dockge stacks directory /opt/stacks No

Volumes

Host Example Container Description
/opt/stacks /opt/stacks dockge stacks dir, host must match container
/opt/env /env place .env file here to be copied to all stacks

Example compose.yml:

version: '3.8'

services:
  dockge-gitops:
    image: ghcr.io/ebaldebo/dockge-gitops:latest
    container_name: dockge-gitops
    restart: unless-stopped
    environment:
      - REPO_URL=https://github.com/author/example.git # required
      - PAT=ghp_iamapat123 # optional
      - POLLING_RATE=10m # optional
      # Needs to be the same as the stacks directory in the dockge container
      - DOCKGE_STACKS_DIR=/opt/stacks 
    volumes:
      # Needs to be the same as the stacks directory in the dockge container
      - /opt/stacks:/opt/stacks
      - /opt/env:/env # optional path to .env file

  dockge:
    image: louislam/dockge:1
    container_name: dockge
    restart: unless-stopped
    ports:
      - 5001:5001
    environment:
      - DOCKGE_STACKS_DIR=/opt/stacks
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /opt/stacks:/opt/stacks

How to run

# Create directories
mkdir -p /opt/stacks /opt/dockge

# Create .env file (optional)
mkdir -p /opt/env && echo "TEST_VAR=TEST" > /opt/env/.env

# Place compose.yml in /opt/dockge
cd /opt/dockge
nano compose.yml

# Run
docker compose up -d

Update Stacks

Dockge does not automatically update stacks when changes are made, a rescan is needed. This can be done by:

  1. Click your user icon in the top right
  2. Click "Scan Stacks Folder"

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages