Prevents the daily database backup cronjob from restarting automatically. This ensures that the backup process only runs according to the defined schedule, avoiding unintended backups outside of the scheduled time.
75 lines
2.4 KiB
Makefile
75 lines
2.4 KiB
Makefile
.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
|
|
|
|
DB_CONTAINER_NAME := database
|
|
DB_NAME := main
|
|
DB_USER := main
|
|
DB_PASSWORD := hHMP8cd^N3SnzGRR
|
|
DB_PORT := 5432
|
|
DB_VOLUME := postgres_data
|
|
PERSISTENT_DIR := $(HOME)/persistent/$(APP_NAME)
|
|
BACKUP_FILENAME := $(HOME)/backups/$(shell date +"%Y-%m-%d_%H-%M-%S").sql.gz
|
|
|
|
online-energieausweis:
|
|
NODE_ENV="development" bun run dev --host
|
|
|
|
dev: database online-energieausweis
|
|
|
|
database:
|
|
docker compose up
|
|
|
|
prisma-studio:
|
|
- pm2 delete prisma-studio
|
|
pm2 start --name "prisma-studio" bunx -- prisma studio
|
|
|
|
backup:
|
|
mkdir -p $(PERSISTENT_DIR)
|
|
- docker exec -t $(DB_CONTAINER_NAME) pg_dump --data-only -U $(DB_USER) $(DB_NAME) | gzip > $(BACKUP_FILENAME)
|
|
|
|
run-database: stop-database
|
|
docker volume rm -f $(DB_VOLUME)
|
|
docker volume create $(DB_VOLUME)
|
|
docker build -t $(DB_CONTAINER_NAME) .
|
|
docker run -d --name $(DB_CONTAINER_NAME) \
|
|
--restart=always \
|
|
-e POSTGRES_USER=$(DB_USER) \
|
|
-e POSTGRES_PASSWORD=$(DB_PASSWORD) \
|
|
-p $(DB_PORT):5432 \
|
|
-v $(DB_VOLUME):/var/lib/postgresql/data \
|
|
-v $(PERSISTENT_DIR):/persistent \
|
|
$(DB_CONTAINER_NAME)
|
|
|
|
stop-database:
|
|
- docker stop $(DB_CONTAINER_NAME)
|
|
- docker rm $(DB_CONTAINER_NAME)
|
|
|
|
wait-for-database:
|
|
@while ! docker exec $(DB_CONTAINER_NAME) pg_isready -U $(DB_USER) -h localhost -p $(DB_PORT) > /dev/null 2>&1; do \
|
|
sleep 1; \
|
|
done
|
|
|
|
restore-backup:
|
|
gunzip -c $(BACKUP_FILENAME) | docker exec -i $(DB_CONTAINER_NAME) psql -U $(DB_USER) -d postgres
|
|
|
|
install-dependencies:
|
|
bun install
|
|
bunx prisma generate
|
|
|
|
all:
|
|
mkdir -p ~/logs
|
|
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
|
|
|
|
update-dwd-klimafaktoren-cron:
|
|
pm2 start bun --name "update-dwd-klimafaktoren-cron" --cron "0 12 28 * *" -- src/cronjobs/update-dwd-klimafaktoren.ts
|
|
|
|
prod: install-dependencies prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
|
|
bun run build
|
|
mkdir -p ~/logs
|
|
mkdir -p ~/persistent/online-energieausweis
|
|
|
|
- pm2 delete online-energieausweis
|
|
NODE_ENV="production" pm2 start --name "online-energieausweis" --update-env --log ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log --time bun -- run ./server.ts
|
|
pm2 save
|
|
|
|
backup-database-cronjob:
|
|
- pm2 delete daily-db-backup
|
|
pm2 start bash --name "daily-db-backup" --no-autorestart --no-start --cron "0 0 * * *" -- backup-database.bash
|