saltyorg / Sandbox

Saltbox Sandbox
GNU General Public License v3.0
70 stars 97 forks source link

App Request: Linkwarden #324

Closed inject3d closed 8 months ago

inject3d commented 8 months ago

Bookmark manager: https://github.com/linkwarden/linkwarden

In my opinion a nicer approach as the other bookmark managers which are available here. There is also a mobile app in the works.

Linkwarden is a self-hosted, open-source collaborative bookmark manager to collect, organize and archive webpages.

The objective is to organize useful webpages and articles you find across the web in one place, and since useful webpages can go away (see the inevitability of Link Rot), Linkwarden also saves a copy of each webpage as a Screenshot and PDF, ensuring accessibility even if the original content is no longer available.

Additionally, Linkwarden is designed with collaboration in mind, sharing links with the public and/or allowing multiple users to work together seamlessly.

RaneyDazed commented 8 months ago

might fuck around and make the linkwarden role. looks really nice! I'll keep using it for a bit before I make the role. heres a usable compose if anyone wants to give it a whirl. will need to install postgres tho. It expects pg:16. just install postgres from saltbox and use inventory to specify the docker image.

version: '3.8'
services:
  linkwarden:
    env_file: .env
    container_name: linkwarden
    environment: # Change this as needed for your image
      # PUID: "1000"
      # PGID: "1000"
      TZ: "America/Chicago"
      DATABASE_URL: "postgresql://your_saltbox_username:password4321@postgres:5432/saltbox"
    hostname: linkwarden
    image: ghcr.io/linkwarden/linkwarden:latest
    labels:
      com.github.saltbox.saltbox_managed: true
      diun.enable: true
      autoheal: true
      autoheal.stop.timeout: 10
      traefik.enable: true
      traefik.http.routers.linkwarden-http.entrypoints: web
      traefik.http.routers.linkwarden-http.service: linkwarden-http
      traefik.http.routers.linkwarden-http.rule: Host(`linkwarden.domain.tld`)
      traefik.http.routers.linkwarden-http.priority: 20
      traefik.http.routers.linkwarden-http.middlewares: globalHeaders@file,redirect-to-https@docker,cloudflarewarp@docker,authelia@docker
      traefik.http.routers.linkwarden.entrypoints: websecure
      traefik.http.routers.linkwarden.service: linkwarden
      traefik.http.routers.linkwarden.rule: Host(`linkwarden.domain.tld`)
      traefik.http.routers.linkwarden.priority: 20
      traefik.http.routers.linkwarden.tls.certresolver: cfdns
      traefik.http.routers.linkwarden.tls.options: securetls@file
      traefik.http.routers.linkwarden.middlewares: globalHeaders@file,secureHeaders@file,cloudflarewarp@docker,authelia@docker
      traefik.http.services.linkwarden-http.loadbalancer.server.port: 3000
      traefik.http.services.linkwarden.loadbalancer.server.port: 3000
      traefik.http.routers.linkwarden-api-http.entrypoints: web
      traefik.http.routers.linkwarden-api-http.service: linkwarden
      traefik.http.routers.linkwarden-api-http.rule: (Host(`linkwarden.domain.tld`)) && (PathPrefix(`/api`))
      traefik.http.routers.linkwarden-api-http.priority: 30
      traefik.http.routers.linkwarden-api-http.middlewares: globalHeaders@file,redirect-to-https@docker,cloudflarewarp@docker
      traefik.http.routers.linkwarden-api.entrypoints: websecure
      traefik.http.routers.linkwarden-api.service: linkwarden
      traefik.http.routers.linkwarden-api.rule: (Host(`linkwarden.domain.tld`)) && (PathPrefix(`/api`))
      traefik.http.routers.linkwarden-api.priority: 30
      traefik.http.routers.linkwarden-api.tls.certresolver: cfdns
      traefik.http.routers.linkwarden-api.tls.options: securetls@file
      traefik.http.routers.linkwarden-api.middlewares: globalHeaders@file,secureHeaders@file,cloudflarewarp@docker
    networks:
      - saltbox
    restart: unless-stopped
    volumes: # Change this as needed for your image
      - /opt/linkwarden:/data/data
      - /etc/localtime:/etc/localtime:ro

networks:
  saltbox:
    external: true

grab their .env file and good for go.

https://github.com/linkwarden/linkwarden/blob/047e156cfbe9a0794287ebac1768e1677470f94c/.env.sample

inject3d commented 8 months ago

Thanks for your work!

Did you test already the new role? After creating a new user the login does not work. There is not really an error message, only in the dev tools it shows 304 forbidden.