diff --git a/.goreleaser.yml b/.goreleaser.yml index 005e159ce09fd7f59d455bb4b9099d4753eb96cc..64840b0067b07d9f86dd11230833a4b9d79e7d44 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -11,27 +11,169 @@ before: builds: - id: "soft-serve" binary: "soft-serve" - ldflags: -s -w -X main.Version={{ .Commit }}-snapshot -X main.CommitSHA={{ .Commit }} + ldflags: -s -w -X main.Version=v{{ .Version }} -X main.CommitSHA={{ .Commit }} goos: - linux + # - darwin + # - windows goarch: - amd64 + - arm64 + - "386" + - arm + goarm: + - "6" + - "7" dockers: - image_templates: - - "ghcr.io/charmbracelet/soft-serve-internal:snapshot" - - "ghcr.io/charmbracelet/soft-serve-internal:{{ .Commit }}-snapshot" + - "charmcli/soft-serve:latest-amd64" + - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64" + - "charmcli/soft-serve:v{{ .Version }}-amd64" + - "ghcr.io/charmbracelet/soft-serve:latest-amd64" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64" ids: [soft-serve] goarch: amd64 build_flag_templates: - --platform=linux/amd64 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve-internal - - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve-internal - - --label=org.opencontainers.image.version={{ .Commit }}-snapshot + - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.version=v{{ .Version }} - --label=org.opencontainers.image.created={{ .Date }} - --label=org.opencontainers.image.revision={{ .FullCommit }} - --label=org.opencontainers.image.licenses=MIT dockerfile: Dockerfile use: buildx + - image_templates: + - "charmcli/soft-serve:latest-i386" + - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386" + - "charmcli/soft-serve:v{{ .Version }}-i386" + - "ghcr.io/charmbracelet/soft-serve:latest-i386" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386" + ids: [soft-serve] + goarch: "386" + build_flag_templates: + - --platform=linux/i386 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.version=v{{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=MIT + dockerfile: Dockerfile + use: buildx + - image_templates: + - "charmcli/soft-serve:latest-arm64" + - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64" + - "charmcli/soft-serve:v{{ .Version }}-arm64" + - "ghcr.io/charmbracelet/soft-serve:latest-arm64" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64" + ids: [soft-serve] + goarch: arm64 + build_flag_templates: + - --platform=linux/arm64 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.version=v{{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=MIT + dockerfile: Dockerfile + use: buildx + - image_templates: + - "charmcli/soft-serve:latest-armv6" + - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6" + - "charmcli/soft-serve:v{{ .Version }}-armv6" + - "ghcr.io/charmbracelet/soft-serve:latest-armv6" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv6" + ids: [soft-serve] + goarch: arm + goarm: "6" + build_flag_templates: + - --platform=linux/arm/v6 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.version=v{{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=MIT + dockerfile: Dockerfile + use: buildx + - image_templates: + - "charmcli/soft-serve:latest-armv7" + - "charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7" + - "charmcli/soft-serve:v{{ .Version }}-armv7" + - "ghcr.io/charmbracelet/soft-serve:latest-armv7" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7" + - "ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7" + ids: [soft-serve] + goarch: arm + goarm: "7" + build_flag_templates: + - --platform=linux/arm/v7 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.source=https://github.com/charmbracelet/soft-serve + - --label=org.opencontainers.image.version=v{{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=MIT + dockerfile: Dockerfile + use: buildx + +docker_manifests: + - name_template: charmcli/soft-serve:latest + image_templates: + - charmcli/soft-serve:latest-amd64 + - charmcli/soft-serve:latest-arm64 + - charmcli/soft-serve:latest-armv6 + - charmcli/soft-serve:latest-armv7 + - charmcli/soft-serve:latest-i386 + - name_template: ghcr.io/charmbracelet/soft-serve:latest + image_templates: + - ghcr.io/charmbracelet/soft-serve:latest-amd64 + - ghcr.io/charmbracelet/soft-serve:latest-arm64 + - ghcr.io/charmbracelet/soft-serve:latest-armv6 + - ghcr.io/charmbracelet/soft-serve:latest-armv7 + - ghcr.io/charmbracelet/soft-serve:latest-i386 + - name_template: charmcli/soft-serve:v{{ .Major }} + image_templates: + - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64 + - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64 + - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6 + - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7 + - charmcli/soft-serve:v{{ .Major }}.{{ .Minor }}-i386 + - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }} + image_templates: + - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-amd64 + - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-arm64 + - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv6 + - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-armv7 + - ghcr.io/charmbracelet/soft-serve:v{{ .Major }}.{{ .Minor }}-i386 + - name_template: charmcli/soft-serve:v{{ .Version }} + image_templates: + - charmcli/soft-serve:v{{ .Version }}-amd64 + - charmcli/soft-serve:v{{ .Version }}-arm64 + - charmcli/soft-serve:v{{ .Version }}-armv6 + - charmcli/soft-serve:v{{ .Version }}-armv7 + - charmcli/soft-serve:v{{ .Version }}-i386 + - name_template: ghcr.io/charmbracelet/soft-serve:v{{ .Version }} + image_templates: + - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-amd64 + - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-arm64 + - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv6 + - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-armv7 + - ghcr.io/charmbracelet/soft-serve:v{{ .Version }}-i386 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c1925dcdd73d000a514273a693c803fbc999a310 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM alpine:latest + +RUN apk update && apk add --update git && rm -rf /var/cache/apk/* + +COPY soft-serve /usr/local/bin/soft-serve + +# Create directories +WORKDIR /soft-serve +# Expose data volume +VOLUME /soft-serve + +# Environment variables +ENV SOFT_SERVE_KEY_PATH "/soft-serve/ssh/soft_serve_server_ed25519" +ENV SOFT_SERVE_INITIAL_ADMIN_KEY "" +ENV SOFT_SERVE_REPO_PATH "/soft-serve/repos" + +# Expose ports +# SSH +EXPOSE 23231/tcp + +# Set the default command +ENTRYPOINT [ "/usr/local/bin/soft-serve" ]