main
Portainer Stacks
My personal collection of Docker Compose stacks for Portainer.
This repository is the single source of truth for all my self-hosted services.
Folder Structure
portainer-stacks/
├── gitea/
├── portainer/
├── pihole/
├── homeassistant/
├── homepage/
├── ... (additional services)
└── README.md
Each service folder contains its own docker-compose.yml (or docker-compose.yaml) file.
How to Work with This Repo
- Clone the Repository (first time only)
git clone http://192.168.1.46:3131/kdouglas011/portainer-stacks.git ~/portainer-stacks cd ~/portainer-stacks
-
Daily Workflow (pull → edit → push) Always start here cd ~/portainer-stacks git pull origin main
-
Make your changes to any docker-compose.yml file Stage, commit, and push git add . git commit -m "Updated pihole stack - changed ports and password" git push origin main
-
Deploy / Update the Stack in Portainer
- Open Portainer → Stacks
- Click Add stack (or edit an existing one)
- Choose Repository as the build method
- Fill in the following:
Field Value Repository URL http://192.168.1.46:3131/kdouglas011/portainer-stacks.git Repository reference refs/heads/main Compose path pihole/docker-compose.yml (use exact relative path) - (Optional) Enable Automatic updates
- Click Deploy the stack (or Update the stack)
Tips & Best Practices
- Always run git pull origin main before editing anything.
- Use clear, descriptive commit messages.
- Test changes locally first: docker compose up -d
- Never commit real passwords or secrets. Use Portainer environment variables instead (highly recommended for security).
- Keep stacks modular — one service per folder keeps everything clean and easy to maintain.
Description