Skip to content

Add docs on docker integration? #65

@BerkeleyTrue

Description

@BerkeleyTrue

Hello,

I recently got gotas running in my homelab user docker and traefik as a proxy. There was a lot that is left out of the readme that is required to get this working.

Would you be interested in a PR adding my docker files to this repo?

Here is my current work:

Role: https://github.com/BerkeleyTrue/homelab/tree/archive-ansible/roles/taskserver
Dockerfile:

FROM golang:1.20-alpine AS taskserver-builder

RUN go install github.com/szaffarano/gotas@latest

FROM alpine:latest AS taskserver
ENV TASKDDATA=/var/taskd
WORKDIR /app
COPY --from=taskserver-builder /go/bin/gotas /usr/local/bin/gotas
EXPOSE 53589
CMD ["gotas", "server"]

Compose:

---
version: '3'

networks:
  web:
    external: true

services:
  taskserver:
    container_name: taskserver
    build:
      context: ./
      dockerfile: ./Dockerfile
    restart: unless-stopped
    volumes:
      - ./data:/var/taskd
      - ./certs:/etc/ssl/certs
    environment:
      TASKDDATA: /var/taskd
    networks:
      - web
    labels:
      - traefik.enable=true
      # service
      - traefik.tcp.services.taskserver-service.loadbalancer.server.port=53589

      # web - taskwarrior does it's own validation against ca certs
      # so we don't need https here?
      - traefik.tcp.routers.taskserver-web.entrypoints=web
      - traefik.tcp.routers.taskserver-web.rule=HostSNI(`taskwarrior.{{ traefik_public_url }}`)
      - traefik.tcp.routers.taskserver-web.service=taskserver-service
      - traefik.tcp.routers.taskserver-web.tls.passthrough=true

This could help future users get started much quicker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions