chore: docker compose, mise.toml, updated toolchain
- Dockerfile: updated to serve mode with web/ embed, expose 8080 - docker-compose.yml: new, maps :8080 and output volume - Makefile: added serve, akaiutil, electron-* targets - mise.toml: new, go 1.26 + node 22, all build/run tasks - .gitignore: exclude built akaiutil binary
This commit is contained in:
@@ -10,6 +10,7 @@ akaiutil-4.6.7/
|
||||
# Build artifacts
|
||||
*.o
|
||||
*.obj
|
||||
third_party/akaiutil/akaiutil
|
||||
|
||||
# Data
|
||||
*.iso
|
||||
|
||||
+6
-2
@@ -13,7 +13,8 @@ RUN make
|
||||
FROM golang:1.26-alpine AS fetch-builder
|
||||
|
||||
WORKDIR /src
|
||||
COPY go.mod main.go /src/
|
||||
COPY go.mod main.go serve.go /src/
|
||||
COPY web/ /src/web/
|
||||
RUN CGO_ENABLED=0 go build -o /fetch .
|
||||
|
||||
# Stage 3: Runtime image
|
||||
@@ -24,10 +25,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir -p /data/output/isos /data/output/wavs
|
||||
|
||||
COPY --from=akaiutil-builder /src/akaiutil/akaiutil /usr/local/bin/
|
||||
COPY --from=fetch-builder /fetch /usr/local/bin/fetch
|
||||
COPY scripts/extract_wavs.sh /usr/local/bin/
|
||||
|
||||
WORKDIR /data
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["fetch"]
|
||||
CMD ["--help"]
|
||||
CMD ["serve", "-p", "8080"]
|
||||
|
||||
@@ -1,21 +1,60 @@
|
||||
BIN := fetch
|
||||
IMAGE := akai-fetch
|
||||
REMOTE := dhg.lol
|
||||
ELECTRON_DIR := electron
|
||||
|
||||
build:
|
||||
CGO_ENABLED=0 go build -buildvcs=false -o $(BIN) .
|
||||
|
||||
akaiutil:
|
||||
$(MAKE) -C third_party/akaiutil
|
||||
|
||||
all: build akaiutil
|
||||
|
||||
docker:
|
||||
docker build -t $(IMAGE) .
|
||||
|
||||
docker-run:
|
||||
docker run --rm -v "$(PWD)/output:/data" $(IMAGE) $(ARGS)
|
||||
|
||||
docker-up:
|
||||
docker compose up --build
|
||||
|
||||
docker-down:
|
||||
docker compose down
|
||||
|
||||
serve: build
|
||||
./$(BIN) serve
|
||||
|
||||
# ─── Electron targets ──────────────────────────────────────
|
||||
|
||||
electron-deps:
|
||||
cd $(ELECTRON_DIR) && npm install
|
||||
|
||||
electron-dev: build
|
||||
cd $(ELECTRON_DIR) && npx electron .
|
||||
|
||||
electron-build: build akaiutil
|
||||
cd $(ELECTRON_DIR) && npx electron-builder --dir
|
||||
|
||||
electron-build-mac: build akaiutil
|
||||
cd $(ELECTRON_DIR) && npx electron-builder --mac --dir
|
||||
|
||||
electron-build-linux: build akaiutil
|
||||
cd $(ELECTRON_DIR) && npx electron-builder --linux --dir
|
||||
|
||||
# ─── Server / remote ───────────────────────────────────────
|
||||
|
||||
install: build
|
||||
scp $(BIN) $(REMOTE):/tmp/$(BIN) && \
|
||||
ssh $(REMOTE) "sudo mv /tmp/$(BIN) /DATA/Downloads/akai/$(BIN) && sudo chmod +x /DATA/Downloads/akai/$(BIN)"
|
||||
|
||||
clean:
|
||||
rm -f $(BIN)
|
||||
rm -rf $(ELECTRON_DIR)/dist
|
||||
rm -rf $(ELECTRON_DIR)/node_modules
|
||||
$(MAKE) -C third_party/akaiutil clean
|
||||
|
||||
.PHONY: build docker docker-run install clean
|
||||
.PHONY: build akaiutil all docker docker-run docker-up docker-down serve \
|
||||
electron-deps electron-dev electron-build electron-build-mac electron-build-linux \
|
||||
install clean
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
services:
|
||||
akai-utils:
|
||||
build: .
|
||||
ports:
|
||||
- "8080:8080"
|
||||
volumes:
|
||||
- ./output:/data/output
|
||||
environment:
|
||||
- AKAIUTIL=/usr/local/bin/akaiutil
|
||||
@@ -0,0 +1,19 @@
|
||||
[tools]
|
||||
go = "1.26"
|
||||
node = "22"
|
||||
|
||||
[env]
|
||||
CGO_ENABLED = "0"
|
||||
|
||||
[tasks]
|
||||
build = "go build -buildvcs=false -o fetch ."
|
||||
akaiutil = "make -C third_party/akaiutil"
|
||||
all = { run = "go build -buildvcs=false -o fetch . && make -C third_party/akaiutil" }
|
||||
serve = { run = "go build -buildvcs=false -o fetch . && ./fetch serve" }
|
||||
lint = "go vet ./..."
|
||||
electron-deps = "cd electron && npm install"
|
||||
electron-dev = { run = "go build -buildvcs=false -o fetch . && cd electron && npx electron ." }
|
||||
electron-build = { run = "go build -buildvcs=false -o fetch . && make -C third_party/akaiutil && cd electron && npx electron-builder --dir" }
|
||||
electron-build-mac = { run = "go build -buildvcs=false -o fetch . && make -C third_party/akaiutil && cd electron && npx electron-builder --mac --dir" }
|
||||
docker-up = "docker compose up --build"
|
||||
docker-build = "docker build -t akai-fetch ."
|
||||
Reference in New Issue
Block a user