feat: aplicação inicial — gerenciador de notas web estilo Mousepad
- Backend Go: API REST, auth por token (Bearer + cookie HttpOnly), storage em disco com revisões content-addressed (estilo Git: hash, autor, data, diff, restauração) - Editor txt/md/html com preview, tags #tag, categorias, painel de histórico - Preferências: números de linha, marcador de coluna (padrão 80), quebra de linha, fonte/tamanho, 4 temas e colorização de sintaxe (overlay no textarea) - Frontend vanilla embutido via go:embed; Dockerfile multi-stage + docker-compose
This commit is contained in:
commit
9bc5de4c56
22 files changed
+4239
No files matched your search
+33
@@ -0,0 +1,33 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
# ---------------------------------------------------------------------------
|
||||
# Estágio 1: compila o binário estático (sem CGO) com o frontend embutido.
|
||||
# ---------------------------------------------------------------------------
|
||||
FROM golang:1.24-alpine AS build
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
# Dependências primeiro, para aproveitar o cache de camadas.
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/notas ./cmd/notas \
|
||||
&& mkdir -p /out/data \
|
||||
&& chown -R 65534:65534 /out/data
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Estágio 2: imagem final mínima (scratch), apenas o binário + diretório de dados.
|
||||
# ---------------------------------------------------------------------------
|
||||
FROM scratch
|
||||
|
||||
COPY --from=build /out/notas /notas
|
||||
COPY --from=build --chown=65534:65534 /out/data /data
|
||||
|
||||
USER 65534:65534
|
||||
EXPOSE 8080
|
||||
ENV NOTES_DATA_DIR=/data \
|
||||
NOTES_ADDR=:8080
|
||||
|
||||
VOLUME /data
|
||||
|
||||
ENTRYPOINT ["/notas"]
|
||||
Reference in new issue
Block a user