Mirror of
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #15 from trueberryless-org/netlify

authored by

Felix Schneider and committed by
GitHub
c3caa08a 8d6b3ba3

+8 -230
-7
.dockerignore
··· 1 - Dockerfile 2 - .dockerignore 3 - node_modules 4 - npm-debug.log 5 - README.md 6 - .next 7 - .git
-1
.github/artifacts/version.json
··· 1 - { "major": 28, "minor": 1, "patch": 1 }
-74
.github/workflows/docker-hub.yaml
··· 1 - name: Deployment 2 - 3 - on: 4 - push: 5 - branches: [main] 6 - merge_group: 7 - pull_request: 8 - branches: [main] 9 - # Allows you to run this workflow manually from the Actions tab 10 - workflow_dispatch: 11 - 12 - # Automatically cancel in-progress actions on the same branch 13 - concurrency: 14 - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} 15 - cancel-in-progress: true 16 - 17 - env: 18 - REGISTRY: docker.io 19 - IMAGE_NAME: trueberryless/true-tracker 20 - NODE_VERSION: 20 21 - 22 - jobs: 23 - deployment: 24 - if: contains(github.event.head_commit.message, 'deploy') || github.event_name == 'workflow_dispatch' 25 - runs-on: ubuntu-latest 26 - permissions: 27 - contents: write 28 - steps: 29 - - name: Check out the repo 30 - uses: actions/checkout@v4 31 - with: 32 - fetch-depth: 0 33 - 34 - - name: Create tag 35 - run: echo "IMAGE_TAG=$(echo $GITHUB_REF_NAME-$GITHUB_SHA)" >> $GITHUB_ENV 36 - 37 - - name: Set up Docker Buildx 38 - uses: docker/setup-buildx-action@v2 39 - 40 - - name: Log in to Docker Hub 41 - uses: docker/login-action@v2 42 - with: 43 - username: ${{ secrets.DOCKER_USERNAME }} 44 - password: ${{ secrets.DOCKER_PASSWORD }} 45 - 46 - - name: Extract metadata (tags, labels) for Docker 47 - id: meta 48 - uses: docker/metadata-action@v4 49 - with: 50 - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 51 - 52 - - name: Build and push Docker image 53 - uses: docker/build-push-action@v5 54 - with: 55 - context: . 56 - push: true 57 - tags: | 58 - ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} 59 - ${{ env.IMAGE_NAME }}:latest 60 - labels: ${{ steps.meta.outputs.labels }} 61 - 62 - - name: Update deployment.yaml file 63 - run: | 64 - yq eval '.spec.template.spec.containers[0].image = "${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}"' -i manifest/deployment.yaml 65 - 66 - - uses: stefanzweifel/git-auto-commit-action@v4 67 - with: 68 - commit_message: update deployment.json container image (automated) 69 - 70 - - uses: ncipollo/release-action@v1 71 - with: 72 - tag: ${{ env.IMAGE_TAG }} 73 - makeLatest: true 74 - body: "A docker image has been deployed to [Docker Hub](https://hub.docker.com/r/${{ env.IMAGE_NAME }}/tags)."
-67
Dockerfile
··· 1 - FROM node:18-alpine AS base 2 - 3 - # Install dependencies only when needed 4 - FROM base AS deps 5 - # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. 6 - RUN apk add --no-cache libc6-compat 7 - WORKDIR /app 8 - 9 - # Install dependencies based on the preferred package manager 10 - COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ 11 - RUN \ 12 - if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ 13 - elif [ -f package-lock.json ]; then npm ci; \ 14 - elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \ 15 - else echo "Lockfile not found." && exit 1; \ 16 - fi 17 - 18 - 19 - # Rebuild the source code only when needed 20 - FROM base AS builder 21 - WORKDIR /app 22 - COPY --from=deps /app/node_modules ./node_modules 23 - COPY . . 24 - 25 - # Next.js collects completely anonymous telemetry data about general usage. 26 - # Learn more here: https://nextjs.org/telemetry 27 - # Uncomment the following line in case you want to disable telemetry during the build. 28 - # ENV NEXT_TELEMETRY_DISABLED 1 29 - 30 - RUN \ 31 - if [ -f yarn.lock ]; then yarn run build; \ 32 - elif [ -f package-lock.json ]; then npm run build; \ 33 - elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \ 34 - else echo "Lockfile not found." && exit 1; \ 35 - fi 36 - 37 - # Production image, copy all the files and run next 38 - FROM base AS runner 39 - WORKDIR /app 40 - 41 - ENV NODE_ENV production 42 - # Uncomment the following line in case you want to disable telemetry during runtime. 43 - # ENV NEXT_TELEMETRY_DISABLED 1 44 - 45 - RUN addgroup --system --gid 1001 nodejs 46 - RUN adduser --system --uid 1001 nextjs 47 - 48 - COPY --from=builder /app/public ./public 49 - 50 - # Set the correct permission for prerender cache 51 - RUN mkdir .next 52 - RUN chown nextjs:nodejs .next 53 - 54 - # Automatically leverage output traces to reduce image size 55 - # https://nextjs.org/docs/advanced-features/output-file-tracing 56 - COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ 57 - COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static 58 - 59 - USER nextjs 60 - 61 - EXPOSE 3000 62 - 63 - ENV PORT 3000 64 - 65 - # server.js is created by next build from the standalone output 66 - # https://nextjs.org/docs/pages/api-reference/next-config-js/output 67 - CMD HOSTNAME="0.0.0.0" node server.js
+8 -6
README.md
··· 1 1 ## True Tracker 2 2 3 + [![Netlify Status](https://api.netlify.com/api/v1/badges/d0f3fc08-770b-47a2-a25d-49286fbfb12d/deploy-status)](https://app.netlify.com/projects/true-tracker/deploys) 4 + 3 5 The website [true-tracker](https://true-tracker.trueberryless.org) allows you to track your time spent on different projects. To further organize your projects there are also this thing called "tasks" which are basically subfolders of projects with extra features. 4 6 5 7 ## Features 6 8 7 9 The key features of this software are listed below: 8 10 9 - - **Privacy**: 10 - All data is only stored locally, which means that nothing is shared via the internet which makes using the app 100% safe (as long as your own computer isn't hacked of course). 11 + - **Privacy**: 12 + All data is only stored locally, which means that nothing is shared via the internet which makes using the app 100% safe (as long as your own computer isn't hacked of course). 11 13 12 - - **OSS**: 13 - The whole source code is completely open source which means that everybody can look into and improve the code we are developing. Furthermore, the GPL-3.0 licence ensures that every fork of this code must also be open source forever. Nice! 14 + - **OSS**: 15 + The whole source code is completely open source which means that everybody can look into and improve the code we are developing. Furthermore, the GPL-3.0 licence ensures that every fork of this code must also be open source forever. Nice! 14 16 15 - - **Clean design**: 16 - Thanks to the wonderful [shadcn/ui](https://ui.shadcn.com/) the website looks clean and minimalistic with consistent design through and through. 17 + - **Clean design**: 18 + Thanks to the wonderful [shadcn/ui](https://ui.shadcn.com/) the website looks clean and minimalistic with consistent design through and through. 17 19 18 20 ## Star History 19 21
-12
manifest/certificate.yaml
··· 1 - apiVersion: cert-manager.io/v1 2 - kind: Certificate 3 - metadata: 4 - name: true-tracker 5 - namespace: true-tracker 6 - spec: 7 - secretName: true-tracker 8 - issuerRef: 9 - name: acme-issuer 10 - kind: ClusterIssuer 11 - dnsNames: 12 - - "true-tracker.trueberryless.org"
-23
manifest/deployment.yaml
··· 1 - apiVersion: apps/v1 2 - kind: Deployment 3 - metadata: 4 - name: true-tracker 5 - namespace: true-tracker 6 - labels: 7 - app: true-tracker 8 - spec: 9 - replicas: 3 10 - selector: 11 - matchLabels: 12 - app: true-tracker 13 - template: 14 - metadata: 15 - labels: 16 - app: true-tracker 17 - spec: 18 - containers: 19 - - name: true-tracker 20 - image: "trueberryless/true-tracker:main-a78b58fafb622b7794138d0e397976d46f3cf103" 21 - imagePullPolicy: Always 22 - ports: 23 - - containerPort: 3000
-22
manifest/ingress.yaml
··· 1 - apiVersion: networking.k8s.io/v1 2 - kind: Ingress 3 - metadata: 4 - name: true-tracker 5 - namespace: true-tracker 6 - spec: 7 - rules: 8 - - host: true-tracker.trueberryless.org 9 - http: 10 - paths: 11 - - path: / 12 - pathType: Prefix 13 - backend: 14 - service: 15 - name: true-tracker 16 - port: 17 - number: 80 18 - 19 - tls: 20 - - hosts: 21 - - true-tracker.trueberryless.org 22 - secretName: true-tracker
-4
manifest/namespace.yaml
··· 1 - apiVersion: v1 2 - kind: Namespace 3 - metadata: 4 - name: true-tracker
-14
manifest/service.yaml
··· 1 - apiVersion: v1 2 - kind: Service 3 - metadata: 4 - name: true-tracker 5 - namespace: true-tracker 6 - annotations: 7 - cert-manager.io/issuer: acme-issuer 8 - spec: 9 - selector: 10 - app: true-tracker 11 - ports: 12 - - name: http 13 - port: 80 14 - targetPort: 3000