Fügt einen Mechanismus zur Nutzerverifizierung per E-Mail ein. Nach der Registrierung wird eine E-Mail mit einem zeitbasierten Verifizierungscode versandt. Der Nutzer muss diesen Code eingeben, um sein Konto zu aktivieren. Die Methode zur Erstellung des Codes ist zeitbasiert und ändert sich alle 15 Minuten.
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" --no-autorestart --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 --cron "0 0 * * *" -- backup-database.bash
|