initial commit. Cloned timetracker repository
This commit is contained in:
11
taskfiles/build.yml
Normal file
11
taskfiles/build.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
prod:
|
||||
desc: Production build
|
||||
aliases: [b]
|
||||
cmds:
|
||||
- bun --cwd=./bo run build
|
||||
- templ generate
|
||||
- go build -tags embed -o {{.BUILD_DIR}}/{{.PROJECT}} ./app/cmd/main.go
|
||||
41
taskfiles/db.yml
Normal file
41
taskfiles/db.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
reset:
|
||||
desc: Drop and recreate database
|
||||
cmds:
|
||||
- |
|
||||
docker compose -p {{.PROJECT}} exec -T {{.DB_SERVICE_NAME}} sh -c "PGPASSWORD='{{.DB_PASSWORD}}' psql -U {{.DB_USER}} -d postgres -c \
|
||||
\"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='{{.DB_NAME}}' AND pid<>pg_backend_pid();\""
|
||||
- |
|
||||
docker compose -p {{.PROJECT}} exec -T {{.DB_SERVICE_NAME}} sh -c "PGPASSWORD='{{.DB_PASSWORD}}' psql -U {{.DB_USER}} -d postgres -c \"DROP DATABASE IF EXISTS {{.DB_NAME}};\""
|
||||
- |
|
||||
docker compose -p {{.PROJECT}} exec -T {{.DB_SERVICE_NAME}} sh -c "PGPASSWORD='{{.DB_PASSWORD}}' psql -U {{.DB_USER}} -d postgres -c \"CREATE DATABASE {{.DB_NAME}};\""
|
||||
|
||||
|
||||
restore:
|
||||
desc: Restore DB from file
|
||||
aliases: [r]
|
||||
preconditions:
|
||||
- sh: '[ -n "{{index .CLI_ARGS_LIST 0}}" ]'
|
||||
msg: "Usage: task db:restore -- dump.sql"
|
||||
cmds:
|
||||
- task db:reset
|
||||
- |
|
||||
cat {{index .CLI_ARGS_LIST 0}} | docker compose -p {{.PROJECT}} exec -T {{.DB_SERVICE_NAME}} sh -c "PGPASSWORD='{{.DB_PASSWORD}}' psql -U {{.DB_USER}} -d {{.DB_NAME}}"
|
||||
- task db:migrate
|
||||
|
||||
|
||||
migrate:
|
||||
desc: Apply SQL migrations
|
||||
aliases: [m]
|
||||
cmds:
|
||||
- |
|
||||
sed '/-- +goose Down/,$d' i18n/migrations/20260302163100_routes.sql | docker compose -p {{.PROJECT}} exec -T -e PGPASSWORD={{.DB_PASSWORD}} {{.DB_SERVICE_NAME}} psql -U {{.DB_USER}} -d {{.DB_NAME}}
|
||||
sed '/-- +goose Down/,$d' i18n/migrations/20260302163122_create_tables.sql | docker compose -p {{.PROJECT}} exec -T -e PGPASSWORD={{.DB_PASSWORD}} {{.DB_SERVICE_NAME}} psql -U {{.DB_USER}} -d {{.DB_NAME}}
|
||||
sed '/-- +goose Down/,$d' i18n/migrations/20260302163152_translations_backoffice.sql | docker compose -p {{.PROJECT}} exec -T -e PGPASSWORD={{.DB_PASSWORD}} {{.DB_SERVICE_NAME}} psql -U {{.DB_USER}} -d {{.DB_NAME}}
|
||||
sed '/-- +goose Down/,$d' i18n/migrations/20260302163157_translations_backend.sql | docker compose -p {{.PROJECT}} exec -T -e PGPASSWORD={{.DB_PASSWORD}} {{.DB_SERVICE_NAME}} psql -U {{.DB_USER}} -d {{.DB_NAME}}
|
||||
|
||||
|
||||
|
||||
17
taskfiles/dev.yml
Normal file
17
taskfiles/dev.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
run:
|
||||
desc: Run frontend + backend in watch mode
|
||||
aliases: [d]
|
||||
cmds:
|
||||
- task --parallel dev:bo dev:go
|
||||
|
||||
bo:
|
||||
cmds:
|
||||
- cd bo && bun run dev
|
||||
|
||||
go:
|
||||
cmds:
|
||||
- EMAIL_SMTP_PORT={{.EMAIL_SMTP_PORT}} EMAIL_SMTP_HOST={{.EMAIL_SMTP_HOST}} air
|
||||
33
taskfiles/docker.yml
Normal file
33
taskfiles/docker.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
up:
|
||||
desc: Start containers
|
||||
aliases: [du]
|
||||
cmds:
|
||||
- printf "%s\n" "{{.DOCKER_CONFIG}}" | docker-compose -f - -p {{.PROJECT}} up -d
|
||||
|
||||
down:
|
||||
desc: Stop containers
|
||||
aliases: [dd]
|
||||
cmds:
|
||||
- docker compose -p {{.PROJECT}} down
|
||||
|
||||
restart:
|
||||
desc: Restart containers
|
||||
aliases: [dr]
|
||||
cmds:
|
||||
- docker compose -p {{.PROJECT}} restart
|
||||
|
||||
logs:
|
||||
desc: Tail logs
|
||||
aliases: [dl]
|
||||
cmds:
|
||||
- docker compose -p {{.PROJECT}} logs -f
|
||||
|
||||
clean:
|
||||
desc: Remove containers and volumes
|
||||
aliases: [dc]
|
||||
cmds:
|
||||
- docker compose -p {{.PROJECT}} down -v
|
||||
47
taskfiles/gitea.yml
Normal file
47
taskfiles/gitea.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
pull:
|
||||
desc: Pull remote Gitea DB into local DB
|
||||
aliases: [gp]
|
||||
silent: true
|
||||
cmds:
|
||||
- task db:reset
|
||||
- |
|
||||
ssh {{.REMOTE_USER}}@{{.REMOTE_HOST}} \
|
||||
"docker exec {{.GITEA_SERVICE}} pg_dump -U {{.GITEA_USER}} {{.GITEA_DB}}" | docker compose -p {{.PROJECT}} exec -T {{.DB_SERVICE_NAME}} sh -c "PGPASSWORD='{{.DB_PASSWORD}}' psql -U {{.DB_USER}} -d {{.DB_NAME}}"
|
||||
|
||||
|
||||
dump:
|
||||
desc: Dump remote Gitea DB to file
|
||||
aliases: [gd]
|
||||
silent: true
|
||||
cmds:
|
||||
- |
|
||||
ssh {{.REMOTE_USER}}@{{.REMOTE_HOST}} "docker exec {{.GITEA_SERVICE}} pg_dump -U {{.GITEA_USER}} {{.GITEA_DB}}" > {{.DUMP_FILE_NAME}}
|
||||
|
||||
|
||||
gitea_pull_db_to_file_ma_al_pl:
|
||||
desc: Pull remote Gitea DB and upload to file.ma-al.pl
|
||||
aliases: [rdbtfmpl]
|
||||
silent: true
|
||||
vars:
|
||||
SERVER: https://file.ma-al.pl
|
||||
TARGET_DIR: maal_internal/timetracker/dumps
|
||||
TMP_DIR: /tmp
|
||||
TOKEN:
|
||||
sh: |
|
||||
curl -s -u "{{.FILE_MAAL_PL_USER}}:{{.FILE_MAAL_PL_PASSWORD}}" "{{.SERVER}}/api/v2/user/token" | jq -r .access_token
|
||||
preconditions:
|
||||
- sh: '[ -n "{{.FILE_MAAL_PL_USER}}" ]'
|
||||
msg: "Missing FILE_MAAL_PL_USER in .env"
|
||||
- sh: '[ -n "{{.FILE_MAAL_PL_PASSWORD}}" ]'
|
||||
msg: "Missing FILE_MAAL_PL_PASSWORD in .env"
|
||||
cmds:
|
||||
- |
|
||||
ssh {{.REMOTE_USER}}@{{.REMOTE_HOST}} "docker exec {{.GITEA_REMOTE_SERVICE}} pg_dump -U {{.GITEA_REMOTE_DB_USER}} {{.GITEA_REMOTE_DB_NAME}}" > {{.TMP_DIR}}/{{.DUMP_FILE_NAME}}
|
||||
- >
|
||||
curl -X POST "{{.SERVER}}/api/v2/user/files/upload?path={{.TARGET_DIR}}/{{.DUMP_FILE_NAME}}&mkdir_parents=true" -H "Authorization: Bearer {{.TOKEN}}" -H "Content-Type: application/x-tar" --data-binary "@{{.TMP_DIR}}/{{.DUMP_FILE_NAME}}"
|
||||
- |
|
||||
rm -f {{.TMP_DIR}}/{{.DUMP_FILE_NAME}}
|
||||
19
taskfiles/i18n.yml
Normal file
19
taskfiles/i18n.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
collect:
|
||||
desc: Collect translation keys
|
||||
aliases: [c]
|
||||
cmds:
|
||||
- cd i18n && go-extractor -input ../app -config config_i18n.yaml -save-db
|
||||
- cd i18n && vue-extractor -input ../bo/src -config config_i18n.yaml -save-db
|
||||
|
||||
|
||||
dump:
|
||||
desc: Dump translations
|
||||
aliases: [d]
|
||||
cmds:
|
||||
- cd i18n && go-extractor -input ../app -config config_i18n.yaml -dump ./migrations/20260302163157_translations_backend.sql
|
||||
- cd i18n && vue-extractor -input ../bo/src -config config_i18n.yaml -dump ./migrations/20260302163152_translations_backoffice.sql
|
||||
|
||||
16
taskfiles/templates.yml
Normal file
16
taskfiles/templates.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
|
||||
watch:
|
||||
desc: Watch and compile templates
|
||||
aliases: [w]
|
||||
cmds:
|
||||
- templ generate -path app/templ -watch
|
||||
|
||||
build:
|
||||
desc: Compile templates
|
||||
aliases: [b]
|
||||
cmds:
|
||||
- templ generate -path app/templ
|
||||
|
||||
Reference in New Issue
Block a user