-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.sh
More file actions
132 lines (92 loc) · 3.76 KB
/
Copy pathinit.sh
File metadata and controls
132 lines (92 loc) · 3.76 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# cloudflare https://www.smarthomebeginner.com/traefik-v3-docker-compose-guide-2024/
# https://github.com/offen/docker-volume-backup
# https://github.com/BeryJu/hass-auth-header ??
# mqqt: Mosquitto https://www.home-assistant.io/integrations/mqtt/
# https://github.com/Burningstone91/smart-home-setup?tab=readme-ov-file#history-databases
# https://github.com/marcus-grant/infra/tree/main/roles/restic_postgres
# https://github.com/djmaze/resticker
#read in env vars
set -o allexport && source .env && set +o allexport
#ensure data directories are available and writable
mkdir -p ./appdata
mkdir -p ./logs
mkdir -p ./secrets
sudo chown root:root ./secrets
sudo chmod 600 ./secrets
sudo chown root:root .env
#sudo chmod 600 .env
mkdir -p appdata/traefik3
mkdir -p appdata/traefik3/acme
mkdir -p appdata/traefik3/rules
mkdir -p appdata/traefik3/rules/$HOSTNAME
touch appdata/traefik3/acme/acme.json
chmod 600 appdata/traefik3/acme/acme.json
mkdir -p logs/$HOSTNAME
mkdir -p logs/$HOSTNAME/traefik
touch logs/$HOSTNAME/traefik/traefik.log
touch logs/$HOSTNAME/traefik/access.log
mkdir -p appdata/authentik/postgresql/data
mkdir -p appdata/authentik/redis/data
mkdir -p appdata/authentik/media
mkdir -p appdata/authentik/custom-templates
mkdir -p appdata/authentik/geoip/data:/geoip
mkdir -p appdata/homepage
mkdir -p appdata/uptime-kuma
mkdir -p appdata/docker-gc
mkdir -p appdata/node-red/data
mkdir -p appdata/node-red/log
mkdir -p appdata/mosquitto/config
mkdir -p appdata/frigate/config
touch appdata/frigate/config/config.yml
chmod a+w appdata/frigate/config/config.yml
mkdir -p appdata/ddns-updater/data/backups
touch appdata/ddns-updater/data/config.json
touch appdata/ddns-updater/data/updates.json
mkdir -p appdata/esphome/config
mkdir -p appdata/restic
touch appdata/restic/config.json
mkdir -p appdata/syncthing
mkdir -p appdata/crowdsec/data
mkdir -p appdata/crowdsec/config
#mkdir -p logs/$HOSTNAME/crowdsec
mkdir -p logs/$HOSTNAME/db-backup
mkdir -p logs/$HOSTNAME/db-offsite
mkdir -p appdata/whisper/data
mkdir -p piper/data
mkdir -p appdata/openwakeword/data
mkdir -p appdata/openwakeword/custom
mkdir -p appdata/mopidy
#Copy files / Create passwords
# #if not exists . .
touch appdata/mosquitto/config/passwd
chmod +x includes/db-backup/post-script.sh
mkdir -p app/datanavidrome
mkdir -p ./appdata/wekan-mongo/data
mkdir -p ./appdata/pgadmin/data
mkdir -p ./appdata/postgresql/data
chmod -R a+rw ./appdata/pgadmin
chmod -R a+rw ./appdata/postgresql
mkdir -p ./appdata/n8n/data
chmod -R a+rw ./appdata/n8n/
#compose needs to be running for this . . .
#docker compose exec mosquitto /bin/sh -> mosquitto_passwd -b /mosquitto/config/passwd username passwd
#docker compose exec mosquitto mosquitto_passwd -b /mosquitto/config/passwd $HTTP_USERNAME $HTTP_PASSWORD
#
#initially used to get started for traefik, but switched to authentik forwardauth
#htpasswd -cBb secrets/basic_auth_credentials "$HTTP_USERNAME" "$HTTP_PASSWORD"
#chown root:root /home/anand/docker/secrets/basic_auth_credentials
#Secrets
echo "$CF_DNS_API_TOKEN" > secrets/cf_dns_api_token
echo "$CF_EMAIL" > secrets/cf_email
echo "$POSTGRES_DB" > secrets/authentik_postgresql_db
echo "$POSTGRES_DB" > secrets/authentik_postgresql_user
echo "$POSTGRES_PASSWORD" > secrets/authentik_postgresql_password
echo "$AUTHENTIK_SECRET_KEY" > secrets/authentik_secret_key
echo "$GMAIL_SMTP_USERNAME" > secrets/gmail_smtp_username
echo "$GMAIL_SMTP_PASSWORD" > secrets/gmail_smtp_password
echo "$GEOIPUPDATE_ACCOUNT_ID" > secrets/geoip_account_id
echo "$GEOIPUPDATE_LICENSE_KEY" > secrets/geoip_license_key
echo "$MARIADB_ROOT_PASSWORD" > /secrets/mariadb_root_password
echo "$PGSHARED_DB" > secrets/shared_postgresql_db
echo "$PGSHARED_DB" > secrets/shared_postgresql_user
echo "$PGSHARED_PASSWORD" > secrets/shared_postgresql_password