Creation of repo
commit
d838f6f2bb
@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
@ -0,0 +1,11 @@
|
||||
# Biulerplates
|
||||
|
||||
> **Thank you for visiting!** If you are viewing this repo on GitHub or GitLab, please note that this is just a mirror. Please visit the [originating repo](https://tacksupport.net/git/capntack/Boilerplates) for any comments, issues, pull requests, etc. You can sign in with your GitHub or GitLab account via Oauth2.
|
||||
|
||||
<br>
|
||||
|
||||
This repository is my personal collection of templates and configurations for various services and tools.
|
||||
|
||||
<br>
|
||||
|
||||
> **Disclaimer:** While I will try my best to keep these updated to both what I run in production as well as with the services themselves as they update, I cannot garauntee that they will be. As always, perform your own due dilligence. And never run code that you don't understand.
|
@ -0,0 +1,4 @@
|
||||
# Roadmap
|
||||
|
||||
- Flesh out READMEs for each image
|
||||
- Remove variables to an .env file
|
@ -0,0 +1,34 @@
|
||||
# README
|
||||
|
||||
### Style Guide
|
||||
|
||||
I like consistency and readability/understandability. As such, I've defined myself a Boilerplate Style Guide for when creating new docker compose files. On a case by case basis, I may go against this template if it makes sense.
|
||||
|
||||
The official documentation for how the Docker Compose specification works can be found [here](https://docs.docker.com/compose/compose-file/).
|
||||
|
||||
Note that, [starting with Docker Compose 1.27.0+](https://docs.docker.com/compose/compose-file/compose-versioning/), it is no longer necessary to specify the Docker Compose version (i.e. `version: "3.1`) as this option has been deprecated.
|
||||
|
||||
The order of operations for how the `cap_add` and `cap_drop` options can be found [here](https://stackoverflow.com/questions/63162665/docker-compose-order-of-cap-drop-and-cap-add/63219871#63219871) or reference the image below:
|
||||
|
||||
![cap_add and cap_drop matrix](https://i.imgur.com/rDhRS4U.jpg)
|
||||
|
||||
You can name Docker Compose files hower you like as long as it has a .yml or .yaml extension. However, if you name it anything other than `docker-compose.yml` or `docker-compose.yaml`, you must pass the filename in the docker compose command. i.e. `docker compose <DOCKER_COMPOSE_FILE> up -d`
|
||||
|
||||
I've left the default host side ports in these boilerplates. Which means several of them would conflict with each other. Please update accordingly to your setup.
|
||||
|
||||
I use [custom networks](https://docs.docker.com/compose/networking/#specify-custom-networks) for all of my containers that are able to utilize them. Feel free to adjust to your own setup.
|
||||
|
||||
```yaml
|
||||
# <FILE_NAME>.yml
|
||||
# Docker Hub: <LINK_TO_IMAGE(S)_HUB_PAGE(S)>
|
||||
# Documentation: <LINK_TO_DOCUMENTATION_IF_NEEDED>
|
||||
# <ANY_EXTRA_NOTES>
|
||||
|
||||
volumes:
|
||||
|
||||
networks:
|
||||
|
||||
services:
|
||||
<LIST_SERVICES_AS_MAKES_SENSE>:
|
||||
<LIST_RUNTIME_ARGUEMENTS_ALPHABETICALLY>
|
||||
```
|
@ -0,0 +1,26 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/checkmk/check-mk-raw
|
||||
# Documentation: https://docs.checkmk.com/latest/en/
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
checkmk:
|
||||
container_name: checkmk
|
||||
image: checkmk/check-mk-raw:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "5000:5000" # WebUI Port
|
||||
- "8000:8000" # Checkmk Agent Port
|
||||
restart: unless-stopped
|
||||
tmpfs:
|
||||
- /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
|
||||
ulimits:
|
||||
nofile: 1024
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./sites:/omd/sites
|
@ -0,0 +1,24 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/freshrss/freshrss
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
freshrss:
|
||||
container_name: freshrss
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
image: lscr.io/linuxserver/freshrss:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "80:80" # WebUI Port
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- ./config:/config
|
@ -0,0 +1,39 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/_/ghost
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
# Ghost is very particular about it's variables, hence the odd format
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
ghost:
|
||||
container_name: ghost
|
||||
depends_on:
|
||||
- ghost-db
|
||||
environment:
|
||||
database__client: mysql
|
||||
database__connection__host: ghost-db
|
||||
database__connection__user: root
|
||||
database__connection__database: ghost
|
||||
database__connection__password: <PASSWORD>
|
||||
url: <URL>
|
||||
image: ghost:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "2368:2368"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./ghost:/var/lib/ghost/content
|
||||
ghost-db:
|
||||
container_name: ghost-db
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=<PASSWORD>
|
||||
image: mysql:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./ghost-db:/var/lib/mysql
|
@ -0,0 +1,26 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/gitea/gitea
|
||||
# Documentation: https://docs.gitea.io/en-us/
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
gitea:
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
image: gitea/gitea:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "3000:3000" # WebUI Port
|
||||
- "22:22" # SSH Port
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
@ -0,0 +1,17 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/corentinth/it-tools
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
it-tools:
|
||||
container_name: it-tools
|
||||
image: corentinth/it-tools:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "80:80" # WebUI PORT
|
||||
restart: unless-stopped
|
@ -0,0 +1,42 @@
|
||||
# docker-compose.yml
|
||||
# linkding Docker Hub: https://hub.docker.com/r/sissbruecker/linkding
|
||||
# The linkding WebUI can be found at http://<HOST_IP>:<LINKDING_WEBUI_PORT>
|
||||
# postgres Docker Hub: https://hub.docker.com/_/postgres
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: yes
|
||||
|
||||
services:
|
||||
linkding:
|
||||
container_name: linkding
|
||||
depends_on:
|
||||
- linkding-db
|
||||
environment:
|
||||
- LD_DB_ENGINE=postgres
|
||||
- LD_DB_DATABASE=linkding
|
||||
- LD_DB_USER=linkding
|
||||
- LD_DB_PASSWORD=<PASSWORD>
|
||||
- LD_DB_HOST=linkding-db
|
||||
image: sissbruecker/linkding:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "9090:9090" # linkding WebUI Port
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./linkding/data:/etc/linkding/data
|
||||
linkding-db:
|
||||
container_name: linkding-db
|
||||
environment:
|
||||
- POSTGRES_DB=linkding
|
||||
- POSTGRES_USER=linkding
|
||||
- POSTGRES_PASSWORD=<PASSWORD>
|
||||
image: postgres:<VERISON_TAG>
|
||||
logging:
|
||||
driver: "none"
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./linkding-db/data:/var/lib/postgresql/data
|
@ -0,0 +1,22 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/timothystewart6/littlelink-server
|
||||
# Documentation: https://github.com/techno-tim/littlelink-server
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
littlelink-server:
|
||||
container_name: littleLink-server
|
||||
environment:
|
||||
- <SEE_DOCUMENTATION>
|
||||
image: timothystewart6/littlelink-server:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "3000:3000" # WebUI Port
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
@ -0,0 +1,23 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/jlesage/nginx-proxy-manager
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
# Default credentials are admin@example.com \ changeme
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
nginx-proxy-manager:
|
||||
container_name: nginx-proxy-manager
|
||||
image: jc21/nginx-proxy-manager:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "80:80" # HTTP Port
|
||||
- "81:81" # WebUI Port
|
||||
- "443:443" # HTTPS Port
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
@ -0,0 +1,17 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/openspeedtest/latest
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
openspeedtest:
|
||||
container_name: openspeedtest
|
||||
image: openspeedtest/latest:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "3000:3000" # WebUI Port
|
||||
restart: unless-stopped
|
@ -0,0 +1,22 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/organizr/organizr/
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
organizr:
|
||||
container_name: organizr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
image: organizr/organizr:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "80:80" # WebUI Port
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./config:/config
|
@ -0,0 +1,16 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/pihole/pihole
|
||||
# The WebUI can be found at http://<HOST_IP>/admin
|
||||
|
||||
services:
|
||||
pi-hole:
|
||||
container_name: pi-hole
|
||||
environment:
|
||||
- TZ=<TZ>
|
||||
- WEBPASSWORD=<PASSWORD>
|
||||
image: pihole/pihole:<VERSION_TAG>
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./pihole:/etc/pihole
|
||||
- ./dnsmasq.d:/etc/dnsmasq.d
|
@ -0,0 +1,20 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/portainer/agent
|
||||
# Documentation: https://docs.portainer.io/admin/environments/add/docker#connecting-via-the-portainer-agent
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
portainer-agent:
|
||||
container_name: portainer-agent
|
||||
image: portainer/agent:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "9001:9001" # Portainer Agent Port
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /var/lib/docker/volumes:/var/lib/docker/volumes
|
@ -0,0 +1,26 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/portainer/portainer-ce
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
# I would suggest unchecking the data checkbox during setup
|
||||
# Then navigating to the Users tab, selecting the admin user, and renaming
|
||||
# Then navigating to the Settins tab, check Force HTTPS only, then Apply Changes
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
portainer-ce:
|
||||
container_name: portainer-ce
|
||||
image: portainer/portainer-ce:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "9443:9443" # WebUI Port
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./data:/data
|
@ -0,0 +1,19 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/louislam/uptime-kuma
|
||||
# The WebUI can be found at http://<HOST_IP>:<WEBUI_PORT>
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
uptime-kuma:
|
||||
container_name: uptime-kuma
|
||||
image: louislam/uptime-kuma:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "3001:3001" # WebUI Port
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/app/data
|
@ -0,0 +1,21 @@
|
||||
# docker-compose.yml
|
||||
# Docker Hub: https://hub.docker.com/r/containrrr/watchtower
|
||||
# Documentation: https://containrrr.dev/watchtower/
|
||||
# Watchtower is very particular about it's variables, hence the odd format
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
watchtower:
|
||||
container_name: watchtower
|
||||
environment:
|
||||
TZ: <TZ>
|
||||
<SEE_DOCUMENTATION>: <FOR_VARIABLES>
|
||||
image: containrrr/watchtower:<VERSION>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
@ -0,0 +1,44 @@
|
||||
# docker-compose.yml
|
||||
# Wiki.js Docker Hub: https://hub.docker.com/r/requarks/wiki
|
||||
# The Wiki.js WebUI can be found at http://<HOST_IP>:<WIKIJS_WEBUI_PORT>
|
||||
# postgres Docker Hub: https://hub.docker.com/_/postgres
|
||||
|
||||
volumes:
|
||||
db:
|
||||
|
||||
networks:
|
||||
<NETWORK_NAME>:
|
||||
external: true
|
||||
|
||||
services:
|
||||
wikijs:
|
||||
container_name: wikijs
|
||||
depends_on:
|
||||
- wikijs-db
|
||||
environment:
|
||||
- DB_TYPE=postgres
|
||||
- DB_HOST=Wikijs-db
|
||||
- DB_PORT=5432
|
||||
- DB_USER=wikijs
|
||||
- DB_NAME=wiki
|
||||
- DB_PASS=<PASSWORD>
|
||||
image: requarks/wiki:<VERSION_TAG>
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
ports:
|
||||
- "3000:3000" # Wiki.js WebUI Port
|
||||
restart: unless-stopped
|
||||
wikijs-db:
|
||||
container_name: wikijs-db
|
||||
environment:
|
||||
- POSTGRES_USER=wikijs
|
||||
- POSTGRES_DB=wiki
|
||||
- POSTGRES_PASSWORD=<PASSWORD>
|
||||
image: postgres:<VERSION_TAG>
|
||||
logging:
|
||||
driver: "none"
|
||||
networks:
|
||||
- <NETWORK_NAME>
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- db:/var/lib/postgresql/data
|
Loading…
Reference in New Issue