-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
60 lines (46 loc) · 1.34 KB
/
Copy pathMakefile
File metadata and controls
60 lines (46 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.PHONY: up down logs status restart backup deploy all
SERVICES = actual backrest canvas-todoist immich media-stack nextcloud nginxproxymanager omniroute openwebui pihole portainer portainer-agent stirling upsnap vaultwarden wallos watchtower wg-easy
ifdef SERVICE
SERVICE_PATH = $(SERVICE)
else
SERVICE_PATH = .
endif
api-fix:
export DOCKER_API_VERSION=1.41
up:
cd $(SERVICE_PATH) && docker compose up -d
down:
cd $(SERVICE_PATH) && docker compose down
logs:
cd $(SERVICE_PATH) && docker compose logs -f
status:
cd $(SERVICE_PATH) && docker compose ps
restart:
cd $(SERVICE_PATH) && docker compose restart
backup:
mkdir -p backups && tar czf backups/homelab-$(shell date +%Y%m%d-%H%M%S).tar.gz $(SERVICE_PATH)
all-up:
@for service in $(SERVICES); do \
echo "Starting $$service..."; \
(cd $$service && docker compose up -d); \
done
all-down:
@for service in $(SERVICES); do \
echo "Stopping $$service..."; \
(cd $$service && docker compose down); \
done
all-status:
@for service in $(SERVICES); do \
echo "\n=== $$service ==="; \
(cd $$service && docker compose ps); \
done
all-restart:
@for service in $(SERVICES); do \
echo "Restarting $$service..."; \
(cd $$service && docker compose restart); \
done
clean:
@for service in $(SERVICES); do \
(cd $$service && docker compose down -v); \
done
docker system prune -f