2024-02-10 17:05:11 +00:00
|
|
|
# Always use devbox environment to run commands.
|
|
|
|
set shell := ["devbox", "run"]
|
2024-02-11 19:28:00 +00:00
|
|
|
# Load dotenv
|
|
|
|
set dotenv-load
|
2024-02-10 17:05:11 +00:00
|
|
|
|
2024-02-18 21:37:17 +00:00
|
|
|
# Load public and private keys
|
2024-02-18 21:42:47 +00:00
|
|
|
export JWT_PRIVATE_KEY := `cat jwt.private.pem || echo ""`
|
|
|
|
export JWT_PUBLIC_KEY := `cat jwt.public.pem || echo ""`
|
2024-02-18 21:37:17 +00:00
|
|
|
|
2024-02-18 07:51:05 +00:00
|
|
|
GIT_SHA := `git rev-parse --short HEAD`
|
|
|
|
DOCKER_IMAGE := "ghcr.io/mentos1386/zdravko:sha-"+GIT_SHA
|
2024-02-12 08:25:11 +00:00
|
|
|
STATIC_DIR := "./web/static"
|
2024-02-10 11:59:58 +00:00
|
|
|
|
2024-02-19 09:09:30 +00:00
|
|
|
_default:
|
|
|
|
@just --list
|
2024-02-18 10:34:03 +00:00
|
|
|
|
2024-02-11 10:56:21 +00:00
|
|
|
# Run full development environment
|
|
|
|
run:
|
|
|
|
devbox services up
|
2024-02-10 11:59:58 +00:00
|
|
|
|
2024-02-19 09:09:30 +00:00
|
|
|
# Start worker
|
2024-02-18 21:37:17 +00:00
|
|
|
run-worker:
|
|
|
|
go build -o dist/zdravko cmd/zdravko/main.go
|
2024-02-18 21:41:40 +00:00
|
|
|
./dist/zdravko --worker
|
|
|
|
|
2024-02-19 09:09:30 +00:00
|
|
|
# Start server
|
|
|
|
run-server:
|
2024-02-18 21:41:40 +00:00
|
|
|
go build -o dist/zdravko cmd/zdravko/main.go
|
|
|
|
./dist/zdravko --server --temporal
|
2024-02-18 21:37:17 +00:00
|
|
|
|
|
|
|
# Generates new jwt key pair
|
|
|
|
generate-jwt-key:
|
|
|
|
openssl genrsa -out jwt.private.pem 2048
|
|
|
|
openssl rsa -pubout -in jwt.private.pem -out jwt.public.pem
|
|
|
|
|
2024-02-11 09:15:00 +00:00
|
|
|
# Deploy the application to fly.io
|
|
|
|
deploy:
|
2024-02-18 09:54:01 +00:00
|
|
|
fly deploy --ha=false -c deploy/fly.toml -i {{DOCKER_IMAGE}}
|
2024-02-11 10:56:21 +00:00
|
|
|
|
2024-02-19 09:09:30 +00:00
|
|
|
# Read local jwt key and set it as fly secret
|
2024-02-18 22:11:42 +00:00
|
|
|
deploy-set-jwt-key-secrets:
|
2024-02-19 09:09:30 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# https://github.com/superfly/flyctl/issues/589
|
|
|
|
cat <<EOF | fly secrets import -c deploy/fly.toml
|
|
|
|
JWT_PRIVATE_KEY="""{{JWT_PRIVATE_KEY}}"""
|
|
|
|
JWT_PUBLIC_KEY="""{{JWT_PUBLIC_KEY}}"""
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Build the application
|
|
|
|
build:
|
|
|
|
docker build -f build/Dockerfile -t {{DOCKER_IMAGE}} .
|
|
|
|
|
|
|
|
# Run Docker application.
|
|
|
|
run-docker:
|
|
|
|
docker run -p 8080:8080 \
|
|
|
|
-it --rm \
|
|
|
|
-e SESSION_SECRET \
|
|
|
|
-e OAUTH2_CLIENT_ID \
|
|
|
|
-e OAUTH2_CLIENT_SECRET \
|
|
|
|
-e OAUTH2_ENDPOINT_TOKEN_URL \
|
|
|
|
-e OAUTH2_ENDPOINT_AUTH_URL \
|
|
|
|
-e OAUTH2_ENDPOINT_USER_INFO_URL \
|
|
|
|
-e OAUTH2_ENDPOINT_LOGOUT_URL \
|
|
|
|
-e JWT_PRIVATE_KEY \
|
|
|
|
-e JWT_PUBLIC_KEY \
|
|
|
|
-e WORKER_TOKEN \
|
|
|
|
{{DOCKER_IMAGE}} --server --temporal --worker
|
2024-02-18 22:11:42 +00:00
|
|
|
|
2024-02-11 10:56:21 +00:00
|
|
|
# Start devbox shell
|
|
|
|
shell:
|
|
|
|
devbox shell
|
|
|
|
|
|
|
|
# Generate and download all external dependencies.
|
|
|
|
generate:
|
2024-02-15 22:47:56 +00:00
|
|
|
rm -rf internal/models/query/*
|
2024-02-11 10:56:21 +00:00
|
|
|
go generate ./...
|
|
|
|
|
|
|
|
_tailwindcss-build:
|
2024-02-16 21:31:00 +00:00
|
|
|
tailwindcss build -c build/tailwind.config.js -i {{STATIC_DIR}}/css/main.css -o {{STATIC_DIR}}/css/tailwind.css
|
2024-02-11 10:56:21 +00:00
|
|
|
|
|
|
|
_htmx-download:
|
|
|
|
mkdir -p {{STATIC_DIR}}/js
|
|
|
|
curl -sLo {{STATIC_DIR}}/js/htmx.min.js https://unpkg.com/htmx.org/dist/htmx.min.js
|
|
|
|
|
|
|
|
_feather-icons-download:
|
|
|
|
mkdir -p {{STATIC_DIR}}/icons
|
|
|
|
curl -sLo {{STATIC_DIR}}/icons/feather-sprite.svg https://unpkg.com/feather-icons/dist/feather-sprite.svg
|
|
|
|
|
|
|
|
_generate-gorm:
|
2024-02-11 19:28:00 +00:00
|
|
|
go run tools/generate/main.go
|