2 Commits

Author SHA1 Message Date
64aa000323 build(dev): use air for backend live reload
Some checks failed
continuous-integration/drone/pr Build is failing
2026-05-02 15:39:28 -04:00
a865457bbf build(dev): split frontend and backend dev targets 2026-05-02 15:36:04 -04:00
6 changed files with 58 additions and 20 deletions

17
.air.toml Normal file
View File

@@ -0,0 +1,17 @@
root = "."
tmp_dir = "_scratch/air"
[build]
cmd = "go build -o ./_scratch/air/antholume ."
full_bin = "./_scratch/air/antholume serve"
delay = 1000
include_ext = ["go", "tpl", "tmpl", "html", "css", "js", "yaml", "yml"]
exclude_dir = ["_scratch", "build", "data", "frontend", "node_modules"]
exclude_file = ["assets/style.css"]
stop_on_error = true
[log]
time = true
[misc]
clean_on_exit = true

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@ TODO.md
.DS_Store
data/
build/
tmp/
.direnv/
cover.html
node_modules

View File

@@ -41,11 +41,13 @@ Regenerate:
## 4) Backend / Assets
### Common commands
- Dev server: `make dev`
- Direct dev run: `CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true go run main.go serve`
- Full dev stack: `make dev` (backend on `:8585` + Vite frontend on `:5173`)
- Backend only: `make dev_backend` (live-reloads with Air)
- Frontend only: `make dev_frontend`
- Direct backend run: `CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true go run main.go serve`
- No-auth dev run: `CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true DISABLE_AUTH=true DISABLE_AUTH_USER=evan go run main.go serve`
- Tests: `make tests`
- Tailwind asset build: `make build_tailwind`
- Legacy server-rendered Tailwind asset build: `make legacy_tailwind`
### Notes
- The Go server embeds `templates/*` and `assets/*`.

View File

@@ -1,4 +1,15 @@
build_local: build_tailwind
.PHONY: build_local docker_build_local docker_build_release_dev docker_build_release_latest build_tailwind legacy_tailwind dev dev_backend dev_frontend clean tests
DEV_ENV = GIN_MODE=release \
CONFIG_PATH=./data \
DATA_PATH=./data \
SEARCH_ENABLED=true \
REGISTRATION_ENABLED=true \
COOKIE_SECURE=false \
COOKIE_AUTH_KEY=1234 \
LOG_LEVEL=debug
build_local: legacy_tailwind
go mod download
rm -r ./build || true
mkdir -p ./build
@@ -8,17 +19,17 @@ build_local: build_tailwind
env GOOS=darwin GOARCH=arm64 go build -ldflags "-X reichard.io/antholume/config.version=`git describe --tags`" -o ./build/server_darwin_arm64
env GOOS=darwin GOARCH=amd64 go build -ldflags "-X reichard.io/antholume/config.version=`git describe --tags`" -o ./build/server_darwin_amd64
docker_build_local: build_tailwind
docker_build_local: legacy_tailwind
docker build -t antholume:latest .
docker_build_release_dev: build_tailwind
docker_build_release_dev: legacy_tailwind
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t gitea.va.reichard.io/evan/antholume:dev \
-f Dockerfile-BuildKit \
--push .
docker_build_release_latest: build_tailwind
docker_build_release_latest: legacy_tailwind
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t gitea.va.reichard.io/evan/antholume:latest \
@@ -26,18 +37,19 @@ docker_build_release_latest: build_tailwind
-f Dockerfile-BuildKit \
--push .
build_tailwind:
build_tailwind: legacy_tailwind
legacy_tailwind:
tailwindcss build -o ./assets/style.css --minify
dev: build_tailwind
GIN_MODE=release \
CONFIG_PATH=./data \
DATA_PATH=./data \
SEARCH_ENABLED=true \
REGISTRATION_ENABLED=true \
COOKIE_SECURE=false \
COOKIE_AUTH_KEY=1234 \
LOG_LEVEL=debug go run main.go serve
dev:
$(MAKE) -j2 dev_backend dev_frontend
dev_backend:
$(DEV_ENV) air
dev_frontend:
cd frontend && bun run dev
clean:
rm -rf ./build

View File

@@ -134,7 +134,12 @@ go install github.com/pressly/goose/v3/cmd/goose@latest
Run Development:
```bash
CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true go run main.go serve
# Backend API/server on :8585 plus Vite frontend on :5173
make dev
# Or run one side only
make dev_backend # live-reloads with air
make dev_frontend
```
## Building
@@ -152,8 +157,8 @@ make docker_build_local
make docker_build_release_latest
make docker_build_release_dev
# Generate Tailwind CSS
make build_tailwind
# Generate legacy Tailwind CSS for server-rendered templates
make legacy_tailwind
# Clean Local Build
make clean

View File

@@ -20,6 +20,7 @@
{
devShells.default = pkgs.mkShell {
packages = with pkgs; [
air
go
golangci-lint
gopls