getumbrel / umbrel-apps

The official app repository of the Umbrel App Store. Submit apps and updates here. Learn how → https://github.com/getumbrel/umbrel-apps#readme
https://apps.umbrel.com
536 stars 395 forks source link

[App Request] - Planka (kanban board) #925

Open johnpc opened 11 months ago

johnpc commented 11 months ago

Planka is a self-hosted kanban board application that I use. Think self-hosted Trello. See https://planka.app for a demo / more information.

It is already dockerized (see https://github.com/plankanban/planka/blob/master/docker-compose.yml and installation documentation).

smolgrrr commented 11 months ago

Thanks for the suggestion. I will check this out now :)

w0aw commented 9 months ago

hey @smolgrrr, it would be better if try to add plane instead of this one. checkout plane

i have tried to run it locally but there is an routing issue. (they have seprate ui & apis container) and paths starting with /api and /space need to be routed on diff containers, i dont know how can i resolve this.

in their official docs they also provide another container called plane-proxy but it support to be run on host OS port 80 and we cant have multiple nginx reverse proxies together.

host: {{ .Values.ingress.appHost }}

http:
  paths:
    - backend:
        service:
          port: 3000
          name: {{ .Release.Name }}-web
        path: /
        pathType: Prefix
    - backend:
        service:
          port: 8000
          name: {{ .Release.Name }}-api
        path: /api
        pathType: Prefix
    - backend:
        service:
          port: 3000
          name: {{ .Release.Name }}-space
        path: /spaces
        pathType: Prefix
    - backend:
        service:
          port: 9000
          name: {{ .Release.Name }}-minio
        path: /{{ .Values.env.docstore_bucket }}
        pathType: Prefix
      {{- if .Values.minio.local_setup }}

i have tried this compose file (minio/s3 keys are missing but for testing i skipped it)

version: "3.8"

x-app-env: &app-env
    APP_RELEASE: latest
    WEB_URL: http://localhost:3000
    CORS_ALLOWED_ORIGINS: http://localhost:3000,http://localhost:3001,http://localhost:8000
    DEBUG: 1
    SENTRY_ENVIRONMENT: production
    NEXT_PUBLIC_DEPLOY_URL: http://localhost:3001
    NEXT_PUBLIC_API_BASE_URL: http://localhost:8000
    # Gunicorn Workers
    GUNICORN_WORKERS: 2
    #DB SETTINGS
    PGHOST: postgres
    PGDATABASE: plane
    POSTGRES_USER: plane
    POSTGRES_PASSWORD: moneyprintergobrr
    POSTGRES_DB: plane
    PGDATA: /var/lib/postgresql/data
    DATABASE_URL: postgresql://plane:moneyprintergobrr@postgres/plane
    # REDIS SETTINGS
    REDIS_HOST: redis
    REDIS_PORT: 6379
    REDIS_URL: redis://redis:6379/
    # Application secret
    SECRET_KEY: 60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5
    # DATA STORE SETTINGS
    # USE_MINIO: 1
    # AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-"access-key"}
    # AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-"secret-key"}
    # AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL:-http://plane-minio:9000}
    # AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-uploads}
    # MINIO_ROOT_USER: ${MINIO_ROOT_USER:-"access-key"}
    # MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-"secret-key"}
    # BUCKET_NAME: ${BUCKET_NAME:-uploads}
    # FILE_SIZE_LIMIT: 5242880

services:
    web:
        image: makeplane/plane-frontend:latest
        container_name: web
        restart: on-failure
        command: /usr/local/bin/start.sh web/server.js web
        environment:
            <<: *app-env
        ports:
            - "3000:3000"
        depends_on:
            - api
            - worker

    space:
        image: makeplane/plane-space:latest
        container_name: space
        restart: on-failure
        command: /usr/local/bin/start.sh space/server.js space
        ports:
            - "3001:3000"
        environment:
            <<: *app-env
        depends_on:
            - api
            - worker
            - web

    worker:
        image: makeplane/plane-backend:latest
        container_name: worker
        restart: on-failure
        command: ./bin/worker
        environment:
            <<: *app-env
        depends_on:
            - api
            - postgres
            - redis

    beat-worker:
        image: makeplane/plane-backend:latest
        container_name: beat-worker
        restart: on-failure
        command: ./bin/beat
        environment:
            <<: *app-env
        depends_on:
            - api
            - postgres
            - redis

    api:
        image: makeplane/plane-backend:latest
        container_name: api
        restart: on-failure
        stop_grace_period: 1m
        command: ./bin/takeoff
        ports:
            - "8000:8000"
        environment:
            <<: *app-env
        depends_on:
            - postgres
            - redis

    migrator:
        image: makeplane/plane-backend:latest
        container_name: migrator
        restart: on-failure
        stop_grace_period: 1m
        command: >
            sh -c "python manage.py wait_for_db &&
                python manage.py migrate"
        environment:
            <<: *app-env
        depends_on:
            - postgres
            - redis

    redis:
        image: redis:7.2.4-alpine
        container_name: redis
        restart: on-failure
        stop_grace_period: 1m
        environment:
            <<: *app-env
        # volumes:
        #     - ${APP_DATA_DIR}/data/redis:/data

    postgres:
        image: postgres:16.2-alpine
        container_name: postgres
        restart: on-failure
        stop_grace_period: 1m
        environment:
            <<: *app-env
        command: postgres -c 'max_connections=1000'
        # volumes:
        #     - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data

i Hope it'll helpfull in future for someone. it would be great to have apps like it on umbrel

highghlow commented 7 months ago

I have started working on this request