mirror of
https://github.com/rodneyosodo/homelab.git
synced 2026-06-23 04:10:19 +00:00
Compare commits
12 Commits
822ca12660
...
59b699a1aa
| Author | SHA1 | Date | |
|---|---|---|---|
| 59b699a1aa | |||
| e5363fa04a | |||
| b4af95285d | |||
| 822db8d89f | |||
| 3cdc77ce8a | |||
| 27bd7e97fe | |||
| 81a35fd1c5 | |||
| 0ef4ea8c78 | |||
| c8d39b0c17 | |||
| 95e045c398 | |||
| b3ddfdbe7f | |||
| d8dd9f7afc |
+10
-24
@@ -1,28 +1,22 @@
|
||||
TEMPLATE_FILE = compose-template.yaml
|
||||
MAIN_COMPOSE = docker-compose.yaml
|
||||
|
||||
.PHONY: start
|
||||
start:
|
||||
start: ## Start docker compose services
|
||||
@docker compose -f $(MAIN_COMPOSE) --env-file .env up -d
|
||||
|
||||
.PHONY: restart
|
||||
restart:
|
||||
restart: ## Restart docker compose services
|
||||
@docker compose -f $(MAIN_COMPOSE) --env-file .env up -d --force-recreate
|
||||
|
||||
.PHONY: stop
|
||||
stop:
|
||||
stop: ## Stop docker compose services
|
||||
@docker compose -f $(MAIN_COMPOSE) --env-file .env down
|
||||
|
||||
.PHONY: pull
|
||||
pull:
|
||||
pull: ## Pull latest images needed by docker compose services
|
||||
@docker compose -f $(MAIN_COMPOSE) --env-file .env pull
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
clean: ## Stop docker composition and remove orphans
|
||||
@docker compose -f $(MAIN_COMPOSE) --env-file .env down --remove-orphans
|
||||
|
||||
.PHONY: generate
|
||||
generate:
|
||||
generate: ## Generate a compose file for new service
|
||||
@if [ -z "$(service)" ]; then \
|
||||
echo "Usage: make generate service=<service_name>"; \
|
||||
exit 1; \
|
||||
@@ -37,17 +31,9 @@ generate:
|
||||
@echo "" >> $(MAIN_COMPOSE)
|
||||
@echo "Docker-compose file for $(service) generated"
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
help: ## Show this help message
|
||||
@which awk > /dev/null || (echo "awk not found. Please install it from https://www.gnu.org/software/gawk/manual/gawk.html" && exit 1)
|
||||
@echo ""
|
||||
@echo "This Makefile provides a set of commands to manage Docker Compose services."
|
||||
@echo "It allows you to start, stop, restart, pull, and generate new services."
|
||||
@echo ""
|
||||
@echo "Usage: make [target]"
|
||||
@echo ""
|
||||
@echo "Targets:"
|
||||
@echo " start - Start the services"
|
||||
@echo " restart - Restart the services"
|
||||
@echo " stop - Stop the services"
|
||||
@echo " pull - Pull the latest images"
|
||||
@echo " generate service=<service_name> - Generate a new service eg: make generate service=demo"
|
||||
@echo " help - Display this help message"
|
||||
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[$$()% a-zA-Z_-]+:.*?##/ { printf " \033[36m%-28s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
services:
|
||||
atuin:
|
||||
container_name: atuin
|
||||
image: ghcr.io/atuinsh/atuin:18.15.2
|
||||
image: ghcr.io/atuinsh/atuin:18.16.1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
command: server start
|
||||
command: start
|
||||
volumes:
|
||||
- ~/docker-volumes/atuin/config:/config
|
||||
depends_on:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
dawarich-app:
|
||||
container_name: dawarich-app
|
||||
image: freikin/dawarich:1.6.1
|
||||
image: freikin/dawarich:1.7.7
|
||||
volumes:
|
||||
- ~/docker-volumes/dawarich/public:/var/app/public
|
||||
- ~/docker-volumes/dawarich/watched:/var/app/tmp/imports/watched
|
||||
@@ -45,7 +45,6 @@ services:
|
||||
- SMTP_USERNAME=${SMTP_NAME}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_FROM=${MAIL_FROM_ADDRESS}
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
@@ -71,7 +70,7 @@ services:
|
||||
|
||||
dawarich-sidekiq:
|
||||
container_name: dawarich-sidekiq
|
||||
image: freikin/dawarich:1.6.1
|
||||
image: freikin/dawarich:1.7.7
|
||||
volumes:
|
||||
- ~/docker-volumes/dawarich/public:/var/app/public
|
||||
- ~/docker-volumes/dawarich/watched:/var/app/tmp/imports/watched
|
||||
@@ -109,7 +108,6 @@ services:
|
||||
- SMTP_USERNAME=${SMTP_NAME}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_FROM=${MAIL_FROM_ADDRESS}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pgrep -f sidekiq"]
|
||||
interval: 10s
|
||||
@@ -161,11 +159,9 @@ services:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
command: /bin/sh -c "redis-server --requirepass ${DAWARICH_REDIS_PASSWORD}"
|
||||
command: /bin/sh -c "redis-server --save 900 1 --save 300 10 --appendonly no --requirepass ${DAWARICH_REDIS_PASSWORD}"
|
||||
volumes:
|
||||
- ~/docker-volumes/dawarich/redis:/data
|
||||
# ports:
|
||||
# - 5001:6379
|
||||
environment:
|
||||
- REDIS_PASSWORD=${DAWARICH_REDIS_PASSWORD}
|
||||
healthcheck:
|
||||
|
||||
@@ -21,6 +21,7 @@ DOCUSEAL_POSTGRES_URL=""
|
||||
GITEA_POSTGRES_DB=""
|
||||
GITEA_POSTGRES_USER=""
|
||||
GITEA_POSTGRES_PASSWORD=""
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN=""
|
||||
|
||||
## HEDGEDOC
|
||||
HEDGEDOC_ALLOW_EMAIL_REGISTER=""
|
||||
@@ -43,16 +44,6 @@ IMMICH_POSTGRES_USER=""
|
||||
IMMICH_POSTGRES_PASSWORD=""
|
||||
IMMICH_POSTGRES_DB=""
|
||||
|
||||
## LINKWARDEN
|
||||
LINKWARDEN_NEXTAUTH_SECRET=""
|
||||
LINKWARDEN_NEXTAUTH_URL=""
|
||||
|
||||
### LINKWARDEN DB
|
||||
LINKWARDEN_POSTGRES_USER=""
|
||||
LINKWARDEN_POSTGRES_PASSWORD=""
|
||||
LINKWARDEN_POSTGRES_DB=""
|
||||
LINKWARDEN_POSTGRES_URL=""
|
||||
|
||||
## MEALIE
|
||||
MEALIE_BASE_URL=""
|
||||
|
||||
|
||||
@@ -13,9 +13,6 @@ include:
|
||||
- path: ./portainer/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./uptime-kuma/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./heimdall/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
@@ -61,9 +58,6 @@ include:
|
||||
- path: ./hedgedoc/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./linkwarden/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./kener/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
docuseal:
|
||||
container_name: docuseal
|
||||
image: docuseal/docuseal:2.5.1
|
||||
image: docuseal/docuseal:2.5.3
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
dozzle:
|
||||
container_name: dozzle
|
||||
image: amir20/dozzle:v10.5.0
|
||||
image: amir20/dozzle:v10.5.3
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
@@ -9,7 +9,10 @@ services:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ~/docker-volumes/dozzle/data:/data
|
||||
ports:
|
||||
- 3070:8080
|
||||
environment:
|
||||
- DOZZLE_NO_ANALYTICS=true
|
||||
- DOZZLE_ENABLE_ACTIONS=true
|
||||
- DOZZLE_ENABLE_SHELL=true
|
||||
|
||||
@@ -22,6 +22,7 @@ services:
|
||||
- GITEA__mailer__USER=${SMTP_NAME}
|
||||
- GITEA__mailer__PASSWD="""${SMTP_PASSWORD}"""
|
||||
- GITEA__service__DISABLE_REGISTRATION=true
|
||||
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}
|
||||
volumes:
|
||||
- ~/docker-volumes/gitea/data:/data/
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
@@ -29,6 +30,12 @@ services:
|
||||
ports:
|
||||
- 4020:3000
|
||||
- 4021:22
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "https://git.rodneyosodo.com"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
timeout: 10s
|
||||
|
||||
gitea-db:
|
||||
container_name: gitea-db
|
||||
@@ -53,3 +60,22 @@ services:
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
gitea-runner:
|
||||
container_name: gitea-runner
|
||||
image: gitea/runner:1.0.3
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
environment:
|
||||
- GITEA_INSTANCE_URL=https://git.rodneyosodo.com
|
||||
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}
|
||||
volumes:
|
||||
- ~/docker-volumes/gitea/runner/data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
depends_on:
|
||||
gitea:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
karakeep-app:
|
||||
container_name: karakeep-app
|
||||
image: ghcr.io/karakeep-app/karakeep:0.31.0
|
||||
image: ghcr.io/karakeep-app/karakeep:0.32.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
@@ -44,7 +44,7 @@ services:
|
||||
|
||||
karakeep-meilisearch:
|
||||
container_name: karakeep-meilisearch
|
||||
image: getmeili/meilisearch:v1.41.0
|
||||
image: getmeili/meilisearch:v1.43.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
services:
|
||||
linkwarden:
|
||||
container_name: linkwarden
|
||||
image: ghcr.io/linkwarden/linkwarden:v2.14.0
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
environment:
|
||||
- NEXTAUTH_SECRET=${LINKWARDEN_NEXTAUTH_SECRET}
|
||||
- NEXTAUTH_URL=${LINKWARDEN_NEXTAUTH_URL}
|
||||
- DATABASE_URL=${LINKWARDEN_POSTGRES_URL}
|
||||
- PAGINATION_TAKE_COUNT=20
|
||||
- STORAGE_FOLDER=/data
|
||||
- AUTOSCROLL_TIMEOUT=60
|
||||
ports:
|
||||
- 4030:3000
|
||||
volumes:
|
||||
- ~/docker-volumes/linkwarden/data:/var/lib/postgresql/data
|
||||
depends_on:
|
||||
- linkwarden-db
|
||||
|
||||
linkwarden-db:
|
||||
container_name: linkwarden-db
|
||||
image: postgres:16.1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- ~/docker-volumes/linkwarden/db:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_USER=${LINKWARDEN_POSTGRES_USER}
|
||||
- POSTGRES_PASSWORD=${LINKWARDEN_POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=${LINKWARDEN_POSTGRES_DB}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"pg_isready -U '${LINKWARDEN_POSTGRES_USER}' -d '${LINKWARDEN_POSTGRES_DB}'",
|
||||
]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
opengist:
|
||||
container_name: opengist
|
||||
image: ghcr.io/thomiceli/opengist:1.12.1
|
||||
image: ghcr.io/thomiceli/opengist:1.12.2
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
portainer:
|
||||
container_name: portainer
|
||||
image: portainer/portainer-ce:2.40.0
|
||||
image: portainer/portainer-ce:2.41.1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
prometheus:
|
||||
container_name: prometheus
|
||||
image: prom/prometheus:v3.10.0
|
||||
image: prom/prometheus:v3.11.3
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
swagger-editor:
|
||||
container_name: swagger-editor
|
||||
image: swaggerapi/swagger-editor:v5.3.7
|
||||
image: swaggerapi/swagger-editor:v5.3.8
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
services:
|
||||
uptime-kuma:
|
||||
container_name: uptime-kuma
|
||||
image: louislam/uptime-kuma:2.2.1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
ports:
|
||||
- 3001:3001
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ~/docker-volumes/uptime-kuma-data:/app/data
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
Reference in New Issue
Block a user